diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-04-30 11:24:16 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-04-30 11:24:16 +0000 |
commit | 877fe38069155cb84a4b8a32e6245039c6c58248 (patch) | |
tree | 405dc4fd0a04c0f1b2d7e856cea8e3c6e0ab4102 /gcc/tree.c | |
parent | e9a18cbf81d93f5cc3b1f74cef9711e1a5a54f0e (diff) | |
download | gcc-877fe38069155cb84a4b8a32e6245039c6c58248.tar.gz |
PR debug/43942
* tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
* c-c++-common/pr43942.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158931 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree.c b/gcc/tree.c index 8eeecff7122..24482af95d8 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -7936,7 +7936,8 @@ bool auto_var_in_fn_p (const_tree var, const_tree fn) { return (DECL_P (var) && DECL_CONTEXT (var) == fn - && (((TREE_CODE (var) == VAR_DECL || TREE_CODE (var) == PARM_DECL) + && ((((TREE_CODE (var) == VAR_DECL && ! DECL_EXTERNAL (var)) + || TREE_CODE (var) == PARM_DECL) && ! TREE_STATIC (var)) || TREE_CODE (var) == LABEL_DECL || TREE_CODE (var) == RESULT_DECL)); |