diff options
author | Jan Hubicka <jh@suse.cz> | 2003-10-22 13:58:10 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2003-10-22 11:58:10 +0000 |
commit | 1bb17c2144248180a1b00f5e5e6cf607fba0d46c (patch) | |
tree | 9d18905bfe933c3bc24bcf7b89cb85d08790b337 /gcc/c-decl.c | |
parent | e97c30aaa713e64309e3c0df2592f56e2a26e70e (diff) | |
download | gcc-1bb17c2144248180a1b00f5e5e6cf607fba0d46c.zip gcc-1bb17c2144248180a1b00f5e5e6cf607fba0d46c.tar.gz gcc-1bb17c2144248180a1b00f5e5e6cf607fba0d46c.tar.bz2 |
re PR debug/12389 ([testcase needed] ICE in gen_subprogram_die for nested function)
PR debug/12389
* Makefile.in (dwarf2out.o): Depend on cgraph.h.
* cgraph.c (cgraph_function_possibly_inlined_p): New function.
* cgraph.h (cgraph_function_possibly_inlined_p): Declare.
(cgraph_global_info): Add flag inlined
* dwarf2out.c (gen_subprogram_die, gen_decl_die): Use
cgraph_function_possibly_inded_p
* cgraphunit.c (mark_inline): Set inlined flag.
* toplev.c (rest_of_decl_compilation): Call outlining_inline_function
only for possibly inlined functions.
* c-decl.c (duplicate_decls): Never output abstract DIE representing old
body of function.
From-SVN: r72795
Diffstat (limited to 'gcc/c-decl.c')
-rw-r--r-- | gcc/c-decl.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 7880f7f..93ce347 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -1406,7 +1406,10 @@ duplicate_decls (tree newdecl, tree olddecl, int different_binding_level, been written out yet. */ if (new_is_definition && DECL_INITIAL (olddecl)) { - if (TREE_USED (olddecl)) + if (TREE_USED (olddecl) + /* In unit-at-a-time mode we never inline re-defined extern + inline functions. */ + && !flag_unit_at_a_time) (*debug_hooks->outlining_inline_function) (olddecl); /* The new defn must not be inline. */ |