I'<font face="arial, helvetica, sans-serif">m investigat</font>ing crash <a href="http://llvm.org/bugs/show_bug.cgi?id=10131" target="_blank">10131</a> and I managed to reduce the test case to this:<div><br></div>
<blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div><font face="'courier new', monospace">#include <string></font></div></div>
<div><div><font face="'courier new', monospace"><br></font></div></div><div><div><font face="'courier new', monospace">class StringRef</font></div></div><div>
<div><font face="'courier new', monospace">{</font></div></div><div><div><font face="'courier new', monospace">public:</font></div></div><div><div><font face="'courier new', monospace">  StringRef(std::string const& s) : length(s.size() {}</font></div>


</div><div><div><font face="'courier new', monospace"><br></font></div></div><div><div><font face="'courier new', monospace">  size_t length;</font></div></div>
<div><div><font face="'courier new', monospace">};</font></div></div></blockquote><div><div><br></div></div><div>Here is what I have so far. The execution reaches this far (see abbreviated call stack) and then returns to Parser::ParseCXXMemberSpecification. At the end of this method ParsingDef.Pop() is ca<span style="font-size: 12px; white-space: pre-wrap; background-color: rgb(255, 255, 255); "><font class="Apple-style-span" face="arial, helvetica, sans-serif">lled and it clears the SmallVector holding tokens (I think it's the CachedTokens member inside LexedMethod), execution returns to first ParseDeclarationOrFunctionDefinition where ConsumeToken is called. This ends up inside TokenLexer::Lex that tries accessing Tokens member pointing to now deleted tokens. I don't really understand the code in order to fix it but I'm not ready to surrender yet. Any hints?</font></span></div>


<div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div><font class="Apple-style-span" face="'courier new', monospace">TokenLexer::Lex</font></div></div><div><div><font class="Apple-style-span" face="'courier new', monospace">Preprocessor::Lex</font></div>

</div><div><div><font class="Apple-style-span" face="'courier new', monospace">Parser::ConsumeToken</font></div>
</div><div><div><font class="Apple-style-span" face="'courier new', monospace">Parser::SkipUntil</font></div></div><div><div><font class="Apple-style-span" face="'courier new', monospace">Parser::SkipUntil</font></div>

</div><div><div><font class="Apple-style-span" face="'courier new', monospace">Parser::MatchRHSPunctuation</font></div></div><div><div><font class="Apple-style-span" face="'courier new', monospace">Parser::ParseMemInitializer</font></div>

</div><div><div><font class="Apple-style-span" face="'courier new', monospace">Parser::ParseConstructorInitializer</font></div>
</div><div><div><font class="Apple-style-span" face="'courier new', monospace">Parser::ParseLexedMethodDef</font></div></div><div><div><font class="Apple-style-span" face="'courier new', monospace">Parser::LexedMethod::ParseLexedMethodDefs</font></div>

</div><div><div><font class="Apple-style-span" face="'courier new', monospace">Parser::ParseLexedMethodDefs</font></div></div><div><div><font class="Apple-style-span" face="'courier new', monospace">Parser::ParseCXXMemberSpecification</font></div>

</div>
<div><div><font class="Apple-style-span" face="'courier new', monospace">Parser::ParseClassSpecifier</font></div></div><div><div><font class="Apple-style-span" face="'courier new', monospace">Parser::ParseDeclarationSpecifiers</font></div>

</div><div><div><font class="Apple-style-span" face="'courier new', monospace">Parser::ParseDeclarationOrFunctionDefinition</font></div></div><div><div><font class="Apple-style-span" face="'courier new', monospace">Parser::ParseDeclarationOrFunctionDefinition</font></div>


</div><div><div><font class="Apple-style-span" face="'courier new', monospace">Parser::ParseExternalDeclaration</font></div></div><div><div><font class="Apple-style-span" face="'courier new', monospace">Parser::ParseTopLevelDecl</font></div>

</div><div><div><font class="Apple-style-span" face="'courier new', monospace">ParseAST</font></div></div><div><br></div></blockquote>