[LLVMbugs] [Bug 22434] New: clang confused by using directive in namespace in linkage spec

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Feb 2 09:15:24 PST 2015


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

            Bug ID: 22434
           Summary: clang confused by using directive in namespace in
                    linkage spec
           Product: clang
           Version: trunk
          Hardware: All
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
          Assignee: unassignedclangbugs at nondot.org
          Reporter: hyrosen at mail.com
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Given this code in g.cpp

    extern "C" {
    namespace A { struct S; }
    namespace B { using namespace A; struct T { S *t; }; }
    }
    extern "C++" {
    namespace C { struct U; }
    namespace D { using namespace C; struct V { U *t; }; }
    }
    namespace E { struct W; }
    namespace F { using namespace E; struct X { W *t; }; }

clang says

    g.cpp:3:45: error: unknown type name 'S'; did you mean '::B::S'?
    namespace B { using namespace A; struct T { S *t; }; }
                                                ^
                                                ::B::S
    g.cpp:2:22: note: '::B::S' declared here
    namespace A { struct S; }
                         ^
    g.cpp:7:45: error: unknown type name 'U'; did you mean '::D::U'?
    namespace D { using namespace C; struct V { U *t; }; }
                                                ^
                                                ::D::U
    g.cpp:6:22: note: '::D::U' declared here
    namespace C { struct U; }
                         ^
    2 errors generated.

and that seems wrong to me, especially for the extern "C++" version.
Note that clang has no problem when the code is not in a linkage spec.

-- 
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/20150202/a411ea5b/attachment.html>


More information about the llvm-bugs mailing list