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

             Bug #: 12809
           Summary: Error recovery can trigger Assertion `!EnteredScope &&
                    "Already entered the scope!"'
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: [email protected]
        ReportedBy: [email protected]
                CC: [email protected], [email protected]
    Classification: Unclassified


Created attachment 8542
  --> http://llvm.org/bugs/attachment.cgi?id=8542
reduced test case (provided by Craig Schroeder)

Running clang trunk on:

namespace std {template<bool T> struct copy<T>{};template(std::copy_a<T>(n));}

Results in the following:

t4.cpp:1:40: error: explicit specialization of non-template struct 'copy'
namespace std {template<bool T> struct copy<T>{};template(std::copy_a<T>(n));}
                                       ^   ~~~
t4.cpp:1:64: error: no template named 'copy_a' in namespace 'std'; did you mean
'copy'?
namespace std {template<bool T> struct copy<T>{};template(std::copy_a<T>(n));}
                                                          ~~~~~^~~~~~
                                                               copy
t4.cpp:1:40: note: 'copy' declared here
namespace std {template<bool T> struct copy<T>{};template(std::copy_a<T>(n));}
                                       ^
t4.cpp:1:71: error: use of undeclared identifier 'T'
namespace std {template<bool T> struct copy<T>{};template(std::copy_a<T>(n));}
                                                                      ^
clang:
/src/llvm-trunk-writable/tools/clang/lib/Parse/../../include/clang/Parse/Parser.h:1901:
void clang::Parser::DeclaratorScopeObj::EnterDeclaratorScope(): Assertion
`!EnteredScope && "Already entered the scope!"' failed.

Interestingly, If you rename "copy" or "copy_a" to
something else (eg, "c" and "c_a"), the assertion is avoided.

-- 
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