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

           Summary: Can't have multiple anonymous unions which redeclare
                    members
           Product: clang
           Version: trunk
          Platform: Macintosh
        OS/Version: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: [email protected]
        ReportedBy: [email protected]
                CC: [email protected], [email protected]


Created an attachment (id=4610)
 --> (http://llvm.org/bugs/attachment.cgi?id=4610)
testcase

Perhaps this is a violation of the spec and clang is right to disallow it,
however it does crop up in "real world" code so it *might* be better for this
to be a warning rather than an error. Here is a small example of what I'm
talking about

p.s. As it happens the one use of this in the AVM code base is entirely
frivolous and can easily be removed, but perhaps it affects other codebases...

void foo() {
    union {
        char *m_a;
        int *m_b;
    };
    // some code

    if(somecondition) {
        union {
            char *m_a;
            int *m_b;
        };
        // some code
    }
}

Currently clang gives you the following error:

union-bug.cpp:11:10: error: member of anonymous union redeclares 'm_a'
                        char *m_a;
                              ^
union-bug.cpp:5:9: note: previous declaration is here
                char *m_a;

-- 
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.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to