diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2013-01-18 10:57:58 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2013-01-18 10:57:58 +0000 |
commit | 7ff37ffa0865c4c7c5610009916d66927d14c258 (patch) | |
tree | 81e9ccfc327c31e42b2fe6f6932003e7cdd0ee28 /gcc | |
parent | 3aa035178c7bdfa0929bbb9f19ba0e8a9257cd1e (diff) | |
download | gcc-7ff37ffa0865c4c7c5610009916d66927d14c258.zip gcc-7ff37ffa0865c4c7c5610009916d66927d14c258.tar.gz gcc-7ff37ffa0865c4c7c5610009916d66927d14c258.tar.bz2 |
re PR libmudflap/53359 (undefined reference to `__gnu_cxx::__numeric_traits_integer<int>::__min')
PR libmudflap/53359
* tree-mudflap.c (mudflap_finish_file): Skip deferred decls
not found in the symtab.
From-SVN: r195290
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-mudflap.c | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6eff629..9763bca 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2013-01-18 Alexandre Oliva <aoliva@redhat.com> + PR libmudflap/53359 + * tree-mudflap.c (mudflap_finish_file): Skip deferred decls + not found in the symtab. + +2013-01-18 Alexandre Oliva <aoliva@redhat.com> + PR rtl-optimization/55547 PR rtl-optimization/53827 PR debug/53671 diff --git a/gcc/tree-mudflap.c b/gcc/tree-mudflap.c index 3c866bc..b250bfe 100644 --- a/gcc/tree-mudflap.c +++ b/gcc/tree-mudflap.c @@ -1334,6 +1334,16 @@ mudflap_finish_file (void) if (! TREE_PUBLIC (obj) && ! TREE_ADDRESSABLE (obj)) continue; + /* If we're neither emitting nor referencing the symbol, + don't register it. We have to register external symbols + if they happen to be in other files not compiled with + mudflap (say system libraries), and we must not register + internal symbols that we don't emit or they'll become + dangling references or force symbols to be emitted that + didn't have to. */ + if (!symtab_get_node (obj)) + continue; + if (! COMPLETE_TYPE_P (TREE_TYPE (obj))) { warning (OPT_Wmudflap, |