[LLVMbugs] [Bug 5253] New: [GNU Extension] Redefinition of "extern inline" function

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Mon Oct 19 09:03:48 PDT 2009


http://llvm.org/bugs/show_bug.cgi?id=5253

           Summary: [GNU Extension] Redefinition of "extern inline" function
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Semantic Analyzer
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: dgregor at apple.com
                CC: llvmbugs at cs.uiuc.edu
            Blocks: 4719


GCC allows redefinition of an "extern inline" function in GNU89 mode, accepting
the following code:

  extern inline int f(int a) { return a; }
  int f(int b) { return b; }

which Clang rejects with

$ clang -std=gnu89 foo.c
foo.c:3:5: error: redefinition of 'f'
int f(int b) { return b; }
    ^
foo.c:1:19: note: previous definition is here
extern inline int f(int a) { return a; }
                  ^
2 diagnostics generated.

We previously decided that we would not implement this feature (see bug #4719),
but apparently this extension is used by Wine:

  http://lists.cs.uiuc.edu/pipermail/cfe-dev/2009-October/006766.html

We should reconsider.


-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list