public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/22052] New: redefinition of inline function succeeds
@ 2005-06-13 19:02 echristo at redhat dot com
  2005-06-13 19:08 ` [Bug c/22052] [4.0/4.1 Regression] " pinskia at gcc dot gnu dot org
                   ` (18 more replies)
  0 siblings, 19 replies; 24+ messages in thread
From: echristo at redhat dot com @ 2005-06-13 19:02 UTC (permalink / raw)
  To: gcc-bugs

This doesn't error out:

#include <stdio.h>
static inline int foo(void) {     return 1; }
static inline int foo(void) {     return 0; }
static inline int bar(void) {     return foo(); }
int main(void)
{
    if (bar())
      printf("1\n");
    else
      printf("0\n");

    return 0;
}

It appears to be a problem with inlining since if the inline keyword is removed
it works (well, fails) as expected.

-- 
           Summary: redefinition of inline function succeeds
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: echristo at redhat dot com
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0/4.1 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
@ 2005-06-13 19:08 ` pinskia at gcc dot gnu dot org
  2005-06-13 19:12 ` pinskia at gcc dot gnu dot org
                   ` (17 subsequent siblings)
  18 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-13 19:08 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-06-13 19:07 -------
Confirmed, this started after "3.5.0 20040909".

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
           Keywords|                            |accepts-invalid
      Known to fail|                            |4.0.0 4.1.0
      Known to work|                            |3.4.4
   Last reconfirmed|0000-00-00 00:00:00         |2005-06-13 19:07:53
               date|                            |
            Summary|redefinition of inline      |[4.0/4.1 Regression]
                   |function succeeds           |redefinition of inline
                   |                            |function succeeds
   Target Milestone|---                         |4.0.1


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0/4.1 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
  2005-06-13 19:08 ` [Bug c/22052] [4.0/4.1 Regression] " pinskia at gcc dot gnu dot org
@ 2005-06-13 19:12 ` pinskia at gcc dot gnu dot org
  2005-06-13 19:17 ` pinskia at gcc dot gnu dot org
                   ` (16 subsequent siblings)
  18 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-13 19:12 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-06-13 19:11 -------
It started to fail after "4.0.0 20041124" but before "4.0.0 20050225" (the branching).

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0/4.1 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
  2005-06-13 19:08 ` [Bug c/22052] [4.0/4.1 Regression] " pinskia at gcc dot gnu dot org
  2005-06-13 19:12 ` pinskia at gcc dot gnu dot org
@ 2005-06-13 19:17 ` pinskia at gcc dot gnu dot org
  2005-06-13 19:35 ` pinskia at gcc dot gnu dot org
                   ` (15 subsequent siblings)
  18 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-13 19:17 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-06-13 19:17 -------
Hmm, the most obvious patch (which is mine) is the following:
2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>

        PR c/19152
        * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
        after the full declaration if the are in two different TUs.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0/4.1 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
                   ` (2 preceding siblings ...)
  2005-06-13 19:17 ` pinskia at gcc dot gnu dot org
@ 2005-06-13 19:35 ` pinskia at gcc dot gnu dot org
  2005-06-13 23:18 ` jsm28 at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  18 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-13 19:35 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-06-13 19:35 -------
This patch should fix it (I don't have time right now, school is getting in the way, could you test it):
Index: c-decl.c
===============================================================
====
RCS file: /cvs/gcc/gcc/gcc/c-decl.c,v
retrieving revision 1.662
diff -u -p -r1.662 c-decl.c
--- c-decl.c    6 Jun 2005 19:31:24 -0000       1.662
+++ c-decl.c    13 Jun 2005 19:35:08 -0000
@@ -1318,9 +1318,7 @@ diagnose_mismatched_decls (tree newdecl,
                  return false;
                }
              /* If both decls have not extern inline, reject the new decl.  */
-             if (!DECL_DECLARED_INLINE_P (olddecl)
-                 && !DECL_EXTERNAL (olddecl)
-                 && !DECL_DECLARED_INLINE_P (newdecl)
+             if (!DECL_EXTERNAL (olddecl)
                  && !DECL_EXTERNAL (newdecl))
                {
                  error ("%Jredefinition of %qD", newdecl, newdecl);

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0/4.1 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
                   ` (3 preceding siblings ...)
  2005-06-13 19:35 ` pinskia at gcc dot gnu dot org
@ 2005-06-13 23:18 ` jsm28 at gcc dot gnu dot org
  2005-06-14  1:11 ` echristo at redhat dot com
                   ` (13 subsequent siblings)
  18 siblings, 0 replies; 24+ messages in thread
From: jsm28 at gcc dot gnu dot org @ 2005-06-13 23:18 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From jsm28 at gcc dot gnu dot org  2005-06-13 23:18 -------
There is a case the multiple static inline definitions of the same function in a
translation unit violate the constraint of  6.9#3 (no more than one external
definition of an identifier with internal linkage in the same translation unit),
if you take the definition of "inline definition" in 6.7.4#6 as only applying to
functions with external linkage.

In general C99 presumes there is no more than one definition of a function in a
translation unit (in 6.7.4#6) but has no constraint requiring this to be
diagnosed.  I think it would be reasonable in C99 mode, as part of an
implementation of C99 inline semantics, to prohibit all such cases.  inline in
gnu89 mode should remain compatible with traditional GCC semantics, which in the
case of the present bug means rejecting the problem code but in some cases may
mean accepting it (in particular where one definition is extern inline).


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jsm28 at gcc dot gnu dot org
OtherBugsDependingO|                            |16989
              nThis|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0/4.1 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
                   ` (4 preceding siblings ...)
  2005-06-13 23:18 ` jsm28 at gcc dot gnu dot org
@ 2005-06-14  1:11 ` echristo at redhat dot com
  2005-06-14  1:19 ` joseph at codesourcery dot com
                   ` (12 subsequent siblings)
  18 siblings, 0 replies; 24+ messages in thread
From: echristo at redhat dot com @ 2005-06-14  1:11 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From echristo at redhat dot com  2005-06-14 01:11 -------
Joseph,

So, what you're saying is that we should accept this:

extern inline int foo (void) { return 0; }
inline int foo (void) { return 1; }

unless we're in strict c99 mode.

And reject this:

static inline int foo (void) { return 0; }
static inline int foo (void) { return 1; }

in all cases?

I'm trying to get a set of tests up for everything we should and shouldn't accept :)

Current diff is attached. Mostly untested except for the above testcases.

-eric

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0/4.1 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
                   ` (5 preceding siblings ...)
  2005-06-14  1:11 ` echristo at redhat dot com
@ 2005-06-14  1:19 ` joseph at codesourcery dot com
  2005-06-15 18:25 ` echristo at redhat dot com
                   ` (11 subsequent siblings)
  18 siblings, 0 replies; 24+ messages in thread
From: joseph at codesourcery dot com @ 2005-06-14  1:19 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From joseph at codesourcery dot com  2005-06-14 01:19 -------
Subject: Re:  [4.0/4.1 Regression] redefinition of inline function
 succeeds

On Tue, 14 Jun 2005, echristo at redhat dot com wrote:

> So, what you're saying is that we should accept this:
> 
> extern inline int foo (void) { return 0; }
> inline int foo (void) { return 1; }
> 
> unless we're in strict c99 mode.

A C99 conditional is pointless and possibly harmful for this case without 
the rest of C99 semantics, since "inline" and "extern inline" are 
(approximately) the other way round in C99 from in gnu89.  (It's only 
approximate; for example,

inline int foo (void) { return 1; }

on its own is an inline definition only in C99 but

inline int foo (void) { return 1; }
int foo(void);

yields an external definition in C99: any declaration of foo without 
inline or with extern causes it to be exported.)

So, just accept all cases GCC has traditionally accepted here without 
regard to language version for now.

> And reject this:
> 
> static inline int foo (void) { return 0; }
> static inline int foo (void) { return 1; }
> 
> in all cases?

Yes.



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0/4.1 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
                   ` (6 preceding siblings ...)
  2005-06-14  1:19 ` joseph at codesourcery dot com
@ 2005-06-15 18:25 ` echristo at redhat dot com
  2005-06-15 20:49 ` echristo at redhat dot com
                   ` (10 subsequent siblings)
  18 siblings, 0 replies; 24+ messages in thread
From: echristo at redhat dot com @ 2005-06-15 18:25 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From echristo at redhat dot com  2005-06-15 18:25 -------
I'll take this. I've got a patch just completing testing.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |echristo at redhat dot com
                   |dot org                     |
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2005-06-13 19:07:53         |2005-06-15 18:25:47
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0/4.1 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
                   ` (7 preceding siblings ...)
  2005-06-15 18:25 ` echristo at redhat dot com
@ 2005-06-15 20:49 ` echristo at redhat dot com
  2005-06-16 12:41 ` joseph at codesourcery dot com
                   ` (9 subsequent siblings)
  18 siblings, 0 replies; 24+ messages in thread
From: echristo at redhat dot com @ 2005-06-15 20:49 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From echristo at redhat dot com  2005-06-15 20:49 -------
OK. This diff works, and passes bootstrap with no regressions for both
--enable-intermodule and normally on x86-linux. The --enable-intermodule bits
are why we split this out in the first place, but same_translation_unit_p in the
condition seems to handle that case.

Joseph: What do you think?

-eric

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0/4.1 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
                   ` (8 preceding siblings ...)
  2005-06-15 20:49 ` echristo at redhat dot com
@ 2005-06-16 12:41 ` joseph at codesourcery dot com
  2005-06-17 20:21 ` echristo at redhat dot com
                   ` (8 subsequent siblings)
  18 siblings, 0 replies; 24+ messages in thread
From: joseph at codesourcery dot com @ 2005-06-16 12:41 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From joseph at codesourcery dot com  2005-06-16 12:41 -------
Subject: Re:  [4.0/4.1 Regression] redefinition of inline function
 succeeds

On Wed, 15 Jun 2005, echristo at redhat dot com wrote:

> OK. This diff works, and passes bootstrap with no regressions for both
> --enable-intermodule and normally on x86-linux. The --enable-intermodule bits
> are why we split this out in the first place, but same_translation_unit_p in the
> condition seems to handle that case.
> 
> Joseph: What do you think?

I'm more interested in the testcases here than in the front-end changes 
which make the testcases pass.



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0/4.1 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
                   ` (9 preceding siblings ...)
  2005-06-16 12:41 ` joseph at codesourcery dot com
@ 2005-06-17 20:21 ` echristo at redhat dot com
  2005-06-17 20:48 ` joseph at codesourcery dot com
                   ` (7 subsequent siblings)
  18 siblings, 0 replies; 24+ messages in thread
From: echristo at redhat dot com @ 2005-06-17 20:21 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From echristo at redhat dot com  2005-06-17 20:21 -------
Here are the 4 testcases that I've been using to test, the first two you've
seen. (and no, the dg stuff isn't done yet, but that's merely to make the
testsuite happy.)

test1:
/* { dg-do compile } */
/* This test is expected to fail with an error for the redefinition of foo.
   This violates the constraint of 6.9#3 (no more than one external definition
   of an identifier with internal linkage in the same translation unit).  */
static inline int foo(void) { return 1; }
static inline int foo(void) { return 0; } /* { dg-error "" } */

test2:
/* { dg-do compile } */
/* This test should compile successfully.  */
extern inline int foo(void) { return 0; }
inline int foo (void) { return 1; }

test3:
/* { dg-do compile } */
/* This testcase should fail since we're redefining foo in the same
   translation unit.  */
extern inline int foo(void) { return 0; }
inline int foo (void) { return 1; }
int foo (void) { return 2; } /* { dg-error "error: redefinition of 'foo'" } */

test4:
/* { dg-do compile } */
/* This testcase should fail since we're redefining foo in the same
   translation unit.  */
int foo (void) { return 2; }
extern inline int foo (void) { return 1; }


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0/4.1 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
                   ` (10 preceding siblings ...)
  2005-06-17 20:21 ` echristo at redhat dot com
@ 2005-06-17 20:48 ` joseph at codesourcery dot com
  2005-06-29  0:12 ` cvs-commit at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  18 siblings, 0 replies; 24+ messages in thread
From: joseph at codesourcery dot com @ 2005-06-17 20:48 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From joseph at codesourcery dot com  2005-06-17 20:48 -------
Subject: Re:  [4.0/4.1 Regression] redefinition of inline function
 succeeds

On Fri, 17 Jun 2005, echristo at redhat dot com wrote:

> Here are the 4 testcases that I've been using to test, the first two you've
> seen. (and no, the dg stuff isn't done yet, but that's merely to make the
> testsuite happy.)

These results seem OK.



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0/4.1 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
                   ` (11 preceding siblings ...)
  2005-06-17 20:48 ` joseph at codesourcery dot com
@ 2005-06-29  0:12 ` cvs-commit at gcc dot gnu dot org
  2005-06-29  1:59 ` [Bug c/22052] [4.0 " pinskia at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  18 siblings, 0 replies; 24+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-06-29  0:12 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-06-29 00:11 -------
Subject: Bug 22052

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	echristo@gcc.gnu.org	2005-06-29 00:11:37

Modified files:
	gcc            : c-decl.c ChangeLog 
	gcc/testsuite  : ChangeLog 
Added files:
	gcc/testsuite/gcc.dg: inline1.c inline2.c inline3.c inline4.c 
	                      inline5.c 

Log message:
	2005-06-28  Eric Christopher  <echristo@redhat.com>
	
	PR c/22052
	PR c/21975
	* c-decl.c (diagnose_mismatched_decls): Define DECL_EXTERN_INLINE.
	Use. Fix detection of invalid extern inline redefinition.
	
	2005-06-28  Eric Christopher  <echristo@redhat.com>
	
	PR c/22052
	PR c/21975
	* gcc.dg/inline1.c: New test.
	* gcc.dg/inline2.c: Ditto.
	* gcc.dg/inline3.c: Ditto.
	* gcc.dg/inline4.c: Ditto.
	* gcc.dg/inline5.c: Ditto.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-decl.c.diff?cvsroot=gcc&r1=1.668&r2=1.669
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.9267&r2=2.9268
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.5702&r2=1.5703
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/inline1.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/inline2.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/inline3.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/inline4.c.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/inline5.c.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
                   ` (12 preceding siblings ...)
  2005-06-29  0:12 ` cvs-commit at gcc dot gnu dot org
@ 2005-06-29  1:59 ` pinskia at gcc dot gnu dot org
  2005-08-19  2:37 ` pinskia at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  18 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-29  1:59 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-06-29 01:59 -------
This is now rejected like it should on the mainline.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|4.0.0 4.1.0                 |4.0.0
      Known to work|3.4.4                       |3.4.4 4.1.0
            Summary|[4.0/4.1 Regression]        |[4.0 Regression]
                   |redefinition of inline      |redefinition of inline
                   |function succeeds           |function succeeds
   Target Milestone|4.0.1                       |4.0.2


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
                   ` (13 preceding siblings ...)
  2005-06-29  1:59 ` [Bug c/22052] [4.0 " pinskia at gcc dot gnu dot org
@ 2005-08-19  2:37 ` pinskia at gcc dot gnu dot org
  2005-08-19  2:37 ` pinskia at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  18 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-08-19  2:37 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-19 02:37 -------
*** Bug 21975 has been marked as a duplicate of this bug. ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |j at bitron dot ch


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
                   ` (14 preceding siblings ...)
  2005-08-19  2:37 ` pinskia at gcc dot gnu dot org
@ 2005-08-19  2:37 ` pinskia at gcc dot gnu dot org
  2005-09-16 18:43 ` pinskia at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  18 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-08-19  2:37 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-19 02:36 -------
*** Bug 23474 has been marked as a duplicate of this bug. ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ecc at cmu dot edu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
                   ` (15 preceding siblings ...)
  2005-08-19  2:37 ` pinskia at gcc dot gnu dot org
@ 2005-09-16 18:43 ` pinskia at gcc dot gnu dot org
  2005-09-27 16:20 ` mmitchel at gcc dot gnu dot org
  2005-09-30 11:47 ` pinskia at gcc dot gnu dot org
  18 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-09-16 18:43 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-16 18:43 -------
I have a fix for the mainline which also fixes this and 23104 and reverting back to the old code which 
was added for 19152.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|echristo at redhat dot com  |pinskia at gcc dot gnu dot
                   |                            |org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
                   ` (16 preceding siblings ...)
  2005-09-16 18:43 ` pinskia at gcc dot gnu dot org
@ 2005-09-27 16:20 ` mmitchel at gcc dot gnu dot org
  2005-09-30 11:47 ` pinskia at gcc dot gnu dot org
  18 siblings, 0 replies; 24+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2005-09-27 16:20 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.0.2                       |4.0.3


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0 Regression] redefinition of inline function succeeds
  2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
                   ` (17 preceding siblings ...)
  2005-09-27 16:20 ` mmitchel at gcc dot gnu dot org
@ 2005-09-30 11:47 ` pinskia at gcc dot gnu dot org
  18 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-09-30 11:47 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-30 11:46 -------
*** Bug 24140 has been marked as a duplicate of this bug. ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |doko at debian dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0 Regression] redefinition of inline function succeeds
       [not found] <bug-22052-227@http.gcc.gnu.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2005-10-04 19:41 ` cvs-commit at gcc dot gnu dot org
@ 2005-11-03 15:30 ` pinskia at gcc dot gnu dot org
  3 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-03 15:30 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #25 from pinskia at gcc dot gnu dot org  2005-11-03 15:30 -------
*** Bug 24656 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |akim at lrde dot epita dot
                   |                            |fr


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0 Regression] redefinition of inline function succeeds
       [not found] <bug-22052-227@http.gcc.gnu.org/bugzilla/>
  2005-10-02 19:00 ` pinskia at gcc dot gnu dot org
  2005-10-04 19:41 ` pinskia at gcc dot gnu dot org
@ 2005-10-04 19:41 ` cvs-commit at gcc dot gnu dot org
  2005-11-03 15:30 ` pinskia at gcc dot gnu dot org
  3 siblings, 0 replies; 24+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-10-04 19:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #24 from cvs-commit at gcc dot gnu dot org  2005-10-04 19:41 -------
Subject: Bug 22052

CVSROOT:        /cvs/gcc
Module name:    gcc
Branch:         gcc-4_0-branch
Changes by:     pinskia@gcc.gnu.org     2005-10-04 19:41:47

Modified files:
        gcc            : ChangeLog c-decl.c 
        gcc/testsuite  : ChangeLog 
Added files:
        gcc/testsuite/gcc.dg: inline1.c inline2.c inline3.c inline4.c 

Log message:
        2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>

        PR c/22052
        PR c/21975
        * c-decl.c (diagnose_mismatched_decls): Fix check for both
        decls being "extern inline".
        2005-10-04  Eric Christopher  <echristo@apple.com>

        PR c/22052
        PR c/21975
        * gcc.dg/inline1.c: New test.
        * gcc.dg/inline2.c: Ditto.
        * gcc.dg/inline3.c: Ditto.
        * gcc.dg/inline4.c: Ditto.
        * gcc.dg/inline5.c: Ditto.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=2.7592.2.445&r2=2.7592.2.446
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-decl.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.630.6.20&r2=1.630.6.21
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.5084.2.424&r2=1.5084.2.425
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/inline1.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.18.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/inline2.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.18.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/inline3.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.18.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/inline4.c.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=NONE&r2=1.1.18.1


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0 Regression] redefinition of inline function succeeds
       [not found] <bug-22052-227@http.gcc.gnu.org/bugzilla/>
  2005-10-02 19:00 ` pinskia at gcc dot gnu dot org
@ 2005-10-04 19:41 ` pinskia at gcc dot gnu dot org
  2005-10-04 19:41 ` cvs-commit at gcc dot gnu dot org
  2005-11-03 15:30 ` pinskia at gcc dot gnu dot org
  3 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-10-04 19:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #23 from pinskia at gcc dot gnu dot org  2005-10-04 19:41 -------
Fixed the correct way in 4.0.3 which does not expose PR 23104.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [Bug c/22052] [4.0 Regression] redefinition of inline function succeeds
       [not found] <bug-22052-227@http.gcc.gnu.org/bugzilla/>
@ 2005-10-02 19:00 ` pinskia at gcc dot gnu dot org
  2005-10-04 19:41 ` pinskia at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 24+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-10-02 19:00 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #22 from pinskia at gcc dot gnu dot org  2005-10-02 19:00 -------
Patch posted here:
http://gcc.gnu.org/ml/gcc-patches/2005-10/msg00050.html


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                URL|                            |http://gcc.gnu.org/ml/gcc-
                   |                            |patches/2005-
                   |                            |10/msg00050.html
           Keywords|                            |patch


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22052


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2005-11-03 15:30 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-06-13 19:02 [Bug c/22052] New: redefinition of inline function succeeds echristo at redhat dot com
2005-06-13 19:08 ` [Bug c/22052] [4.0/4.1 Regression] " pinskia at gcc dot gnu dot org
2005-06-13 19:12 ` pinskia at gcc dot gnu dot org
2005-06-13 19:17 ` pinskia at gcc dot gnu dot org
2005-06-13 19:35 ` pinskia at gcc dot gnu dot org
2005-06-13 23:18 ` jsm28 at gcc dot gnu dot org
2005-06-14  1:11 ` echristo at redhat dot com
2005-06-14  1:19 ` joseph at codesourcery dot com
2005-06-15 18:25 ` echristo at redhat dot com
2005-06-15 20:49 ` echristo at redhat dot com
2005-06-16 12:41 ` joseph at codesourcery dot com
2005-06-17 20:21 ` echristo at redhat dot com
2005-06-17 20:48 ` joseph at codesourcery dot com
2005-06-29  0:12 ` cvs-commit at gcc dot gnu dot org
2005-06-29  1:59 ` [Bug c/22052] [4.0 " pinskia at gcc dot gnu dot org
2005-08-19  2:37 ` pinskia at gcc dot gnu dot org
2005-08-19  2:37 ` pinskia at gcc dot gnu dot org
2005-09-16 18:43 ` pinskia at gcc dot gnu dot org
2005-09-27 16:20 ` mmitchel at gcc dot gnu dot org
2005-09-30 11:47 ` pinskia at gcc dot gnu dot org
     [not found] <bug-22052-227@http.gcc.gnu.org/bugzilla/>
2005-10-02 19:00 ` pinskia at gcc dot gnu dot org
2005-10-04 19:41 ` pinskia at gcc dot gnu dot org
2005-10-04 19:41 ` cvs-commit at gcc dot gnu dot org
2005-11-03 15:30 ` pinskia at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).