aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@libertysurf.fr>2002-11-20 10:37:08 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2002-11-20 10:37:08 +0000
commit02a362d9826f4ea8868e7e56ac145a523823022e (patch)
tree95acf43b84272e0ed2ef3117774d8b4e65e05100
parent5354730bf62ca4d1418885813585e2cf63a2b842 (diff)
downloadgcc-02a362d9826f4ea8868e7e56ac145a523823022e.zip
gcc-02a362d9826f4ea8868e7e56ac145a523823022e.tar.gz
gcc-02a362d9826f4ea8868e7e56ac145a523823022e.tar.bz2
re PR c/8518 (ICE when compiling mplayer)
PR c/8518 * c-decl.c (duplicate_decls): Outline the second definition of an extern inline function in all cases. From-SVN: r59302
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/c-decl.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b644383..189c310 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2002-11-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+ PR c/8518
+ * c-decl.c (duplicate_decls): Outline the second definition
+ of an extern inline function in all cases.
+
2002-11-20 Richard Sandiford <rsandifo@redhat.com>
* stor-layout.c (place_field): Update rli->offset as well as
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 9c3b58f..5b078c0 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -1474,9 +1474,10 @@ duplicate_decls (newdecl, olddecl, different_binding_level)
inline, make sure we emit debug info for the inline before we
throw it away, in case it was inlined into a function that hasn't
been written out yet. */
- if (new_is_definition && DECL_INITIAL (olddecl) && TREE_USED (olddecl))
+ if (new_is_definition && DECL_INITIAL (olddecl))
{
- (*debug_hooks->outlining_inline_function) (olddecl);
+ if (TREE_USED (olddecl))
+ (*debug_hooks->outlining_inline_function) (olddecl);
/* The new defn must not be inline. */
DECL_INLINE (newdecl) = 0;