[llvm-bugs] [Bug 46726] New: Clang rejects valid code with "anonymous types declared in an anonymous union are an extension"

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Jul 15 07:19:32 PDT 2020


https://bugs.llvm.org/show_bug.cgi?id=46726

            Bug ID: 46726
           Summary: Clang rejects valid code with "anonymous types
                    declared in an anonymous union are an extension"
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Frontend
          Assignee: unassignedclangbugs at nondot.org
          Reporter: haoxintu at gmail.com
                CC: llvm-bugs at lists.llvm.org, neeilans at live.com,
                    richard-llvm at metafoo.co.uk

Hi, all.

This code, test.cc, is a valid code I guess, but Clang rejects this under
-pedantic-errors.

$cat test.cc
namespace g_namespace { 
    static union { union {} u; } ;
}

$clang++ -pedantic-errors test.cc
test.cc:2:21: error: anonymous types declared in an anonymous union are an
extension [-Werror,-Wnested-anon-types]
    static union  { union {} u; } ;
                    ^
1 error generated.

Apparently, "union {} u;" is not an anonymous union.

While in other mainstream compilers, gcc, icc, or msvc, they all accept this
code.

Every Clang version from 4.0 onwards behaves the same (I didn't test anything
older).

Thanks,
Haoxin

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20200715/77c524b7/attachment-0001.html>


More information about the llvm-bugs mailing list