diff options
author | Richard Guenther <rguenther@suse.de> | 2011-04-19 13:04:57 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2011-04-19 13:04:57 +0000 |
commit | d39132ea9b9d1a740bfc169326020fc28d78ba81 (patch) | |
tree | f30df465089719f0701bf423def34ac4666e3877 /gcc | |
parent | ff7037dca85dfd00c909950750137edae9963e12 (diff) | |
download | gcc-d39132ea9b9d1a740bfc169326020fc28d78ba81.zip gcc-d39132ea9b9d1a740bfc169326020fc28d78ba81.tar.gz gcc-d39132ea9b9d1a740bfc169326020fc28d78ba81.tar.bz2 |
re PR debug/48207 (ICE in lhd_set_decl_assembler_name, at langhooks.c:158)
2011-04-19 Richard Guenther <rguenther@suse.de>
PR lto/48207
* tree.c (free_lang_data): Do not reset the decl-assembler-name
langhook.
* g++.dg/lto/pr48207_0.C: New testcase.
From-SVN: r172708
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/lto/pr48207_0.C | 13 | ||||
-rw-r--r-- | gcc/tree.c | 7 |
4 files changed, 30 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b119fa7..14ed707 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-04-19 Richard Guenther <rguenther@suse.de> + + PR lto/48207 + * tree.c (free_lang_data): Do not reset the decl-assembler-name + langhook. + 2011-04-19 Eric Botcazou <ebotcazou@adacore.com> * tree-inline.c (expand_call_inline): Do not issue a -Winline warning diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 497fd4d..6973723 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-04-19 Richard Guenther <rguenther@suse.de> + + PR lto/48207 + * g++.dg/lto/pr48207_0.C: New testcase. + 2011-04-18 Jason Merrill <jason@redhat.com> * g++.dg/init/void1.C: New. diff --git a/gcc/testsuite/g++.dg/lto/pr48207_0.C b/gcc/testsuite/g++.dg/lto/pr48207_0.C new file mode 100644 index 0000000..e66cb49 --- /dev/null +++ b/gcc/testsuite/g++.dg/lto/pr48207_0.C @@ -0,0 +1,13 @@ +// { dg-lto-do link } +// { dg-lto-options { { -flto -g } } } + +void bar(int) {} + +void foo(void) +{ + typedef enum { ABC } DEF; + DEF a; + bar((int)a); +} + +int main() {} @@ -5176,7 +5176,12 @@ free_lang_data (void) lang_hooks.callgraph.analyze_expr = NULL; lang_hooks.dwarf_name = lhd_dwarf_name; lang_hooks.decl_printable_name = gimple_decl_printable_name; - lang_hooks.set_decl_assembler_name = lhd_set_decl_assembler_name; + /* We do not want the default decl_assembler_name implementation, + rather if we have fixed everything we want a wrapper around it + asserting that all non-local symbols already got their assembler + name and only produce assembler names for local symbols. Or rather + make sure we never call decl_assembler_name on local symbols and + devise a separate, middle-end private scheme for it. */ /* Reset diagnostic machinery. */ diagnostic_starter (global_dc) = default_tree_diagnostic_starter; |