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