[LLVMbugs] [Bug 13690] New: elaborated type refers to a typedef

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Aug 24 08:25:05 PDT 2012


             Bug #: 13690
           Summary: elaborated type refers to a typedef
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: vanyacpp at gmail.com
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Clang accepts the following code:

struct a
    struct x

struct b : a
    typedef int x;

struct c : b
    void f()
        struct x y;

I believe there should be an error "elaborated type refers to a typedef".

According to C++ standard:


If the elaborated-type-specifier has a nested-name-specifier, qualified name
lookup is performed, as described in 3.4.3, but ignoring any non-type names
that have been declared.


If the identifier resolves to a typedef-name or the simple-template-id resolves
to an alias template specialization, the elaborated-type-specifier is

Note, that clang (correctly) rejects the following code:

struct x {};

namespace a
    typedef int x;

    void f()
        struct x y;

error: elaborated type refers to a typedef

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