<div class="gmail_quote">On 14 March 2012 09:21, Alexander Potapenko <span dir="ltr"><<a href="mailto:glider@google.com">glider@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

(see the test case attached)<br>
<br>
Looks like the lookup is performed while reporting the error:<br></blockquote><div><br></div><div>Thanks for the testcase. This is actually a crash on valid while emitting a warning. Patch attached!</div><div><br></div><div>

Nick</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
$ clang test.ii -Wall -Werror -Wfatal-errors<br>
<br>
<br>
test.ii:8:31: fatal error: use of undeclared identifier '_CharT_alloc_type'<br>
<div class="im">             typedef typename _CharT_alloc_type::size_type size_type;<br>
</div>                              ^<br>
clang: /usr/local/google/asan/asan-llvm-trunk/llvm/tools/clang/lib/AST/DeclBase.cpp:1088:<br>
clang::DeclContextLookupResult<br>
clang::DeclContext::lookup(clang::DeclarationName): Assertion<br>
`DeclKind != Decl::LinkageSpec && "Should not perform lookups into<br>
linkage specs!"' failed.<br>
0  clang           0x0000000001e9026f<br>
1  clang           0x0000000001e924e2<br>
2  libpthread.so.0 0x00007f53476868f0<br>
3  libc.so.6       0x00007f5346975a75 gsignal + 53<br>
4  libc.so.6       0x00007f53469795c0 abort + 384<br>
5  libc.so.6       0x00007f534696e941 __assert_fail + 241<br>
6  clang           0x00000000010dd9b1<br>
clang::DeclContext::lookup(clang::DeclarationName) + 529<br>
7  clang           0x00000000010dda39<br>
clang::DeclContext::lookup(clang::DeclarationName) const + 9<br>
8  clang           0x0000000000b52aec<br>
9  clang           0x0000000000b58abd<br>
clang::Sema::LookupQualifiedName(clang::LookupResult&,<br>
clang::DeclContext*, bool) + 301<br>
10 clang           0x0000000000b7c91a<br>
11 clang           0x0000000000b7cf56<br>
12 clang           0x0000000000b95480<br>
clang::Sema::CreateOverloadedUnaryOp(clang::SourceLocation, unsigned<br>
int, clang::UnresolvedSetImpl const&, clang::Expr*) + 1856<br>
13 clang           0x0000000000acaef7<br>
clang::Sema::BuildUnaryOp(clang::Scope*, clang::SourceLocation,<br>
clang::UnaryOperatorKind, clang::Expr*) + 471<br>
14 clang           0x0000000000c62583<br>
15 clang           0x0000000000c4086d<br>
16 clang           0x0000000000c62e50<br>
17 clang           0x0000000000c64a13<br>
18 clang           0x0000000000c62c9d<br>
19 clang           0x0000000000c6609f<br>
clang::Sema::SubstStmt(clang::Stmt*,<br>
clang::MultiLevelTemplateArgumentList const&) + 79<br>
20 clang           0x0000000000c77302<br>
clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation,<br>
clang::FunctionDecl*, bool, bool) + 1138<br>
21 clang           0x0000000000c76bbf<br>
clang::Sema::PerformPendingInstantiations(bool) + 559<br>
22 clang           0x0000000000c77699<br>
clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation,<br>
clang::FunctionDecl*, bool, bool) + 2057<br>
23 clang           0x0000000000c76bbf<br>
clang::Sema::PerformPendingInstantiations(bool) + 559<br>
24 clang           0x0000000000995d5a<br>
clang::Sema::ActOnEndOfTranslationUnit() + 378<br>
25 clang           0x000000000091cfa5<br>
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&)<br>
+ 613<br>
26 clang           0x000000000091307d clang::ParseAST(clang::Sema&, bool) + 285<br>
27 clang           0x00000000007b0654 clang::CodeGenAction::ExecuteAction() + 68<br>
28 clang           0x00000000006583c1<br>
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 321<br>
29 clang           0x00000000006417a4<br>
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1348<br>
30 clang           0x0000000000637550 cc1_main(char const**, char<br>
const**, char const*, void*) + 960<br>
31 clang           0x00000000006405a9 main + 7257<br>
32 libc.so.6       0x00007f5346960c4d __libc_start_main + 253<br>
33 clang           0x0000000000634ff9<br>
</blockquote></div><br>