<html>
<head>
<base href="http://bugs.llvm.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - Invalid cast to CXXRecordDecl in Sema::BuildPossibleImplicitMemberExpr"
href="http://bugs.llvm.org/show_bug.cgi?id=31947">31947</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Invalid cast to CXXRecordDecl in Sema::BuildPossibleImplicitMemberExpr
</td>
</tr>
<tr>
<th>Product</th>
<td>clang
</td>
</tr>
<tr>
<th>Version</th>
<td>trunk
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>Frontend
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedclangbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>llvm@meinersbur.de
</td>
</tr>
<tr>
<th>CC</th>
<td>llvm-bugs@lists.llvm.org
</td>
</tr></table>
<p>
<div>
<pre>Created <span class=""><a href="attachment.cgi?id=17973" name="attach_17973" title="Testcase">attachment 17973</a> <a href="attachment.cgi?id=17973&action=edit" title="Testcase">[details]</a></span>
Testcase
The command
$ clang durbin-aac882.c
crashes with
clang-5.0: /root/src/llvm/include/llvm/Support/Casting.h:236: typename
llvm::cast_retty<X, Y*>::ret_type llvm::cast(Y*) [with X =
clang::CXXRecordDecl; Y = clang::DeclContext; typename llvm::cast_retty<X,
Y*>::ret_type = clang::CXXRecordDecl*]: Assertion `isa<X>(Val) && "cast<Ty>()
argument of incompatible type!"' failed.
#0 0x00000000016bd69a llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/root/build/llvm/release/bin/clang-5.0+0x16bd69a)
#1 0x00000000016bb33e llvm::sys::RunSignalHandlers()
(/root/build/llvm/release/bin/clang-5.0+0x16bb33e)
#2 0x00000000016bb4b2 SignalHandler(int)
(/root/build/llvm/release/bin/clang-5.0+0x16bb4b2)
#3 0x00007f876bff1390 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
#4 0x00007f876ad25428 gsignal
/build/glibc-t3gR2i/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
#5 0x00007f876ad2702a abort /build/glibc-t3gR2i/glibc-2.23/stdlib/abort.c:91:0
#6 0x00007f876ad1dbd7 __assert_fail_base
/build/glibc-t3gR2i/glibc-2.23/assert/assert.c:92:0
#7 0x00007f876ad1dc82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
#8 0x00000000027ec78d
clang::Sema::BuildPossibleImplicitMemberExpr(clang::CXXScopeSpec const&,
clang::SourceLocation, clang::LookupResult&, clang::TemplateArgumentListInfo
const*, clang::Scope const*) (/root/build/llvm/release/bin/clang-5.0+0x27ec78d)
#9 0x0000000002764c48 clang::Sema::ActOnIdExpression(clang::Scope*,
clang::CXXScopeSpec&, clang::SourceLocation, clang::UnqualifiedId&, bool, bool,
std::unique_ptr<clang::CorrectionCandidateCallback,
std::default_delete<clang::CorrectionCandidateCallback> >, bool, clang::Token*)
(/root/build/llvm/release/bin/clang-5.0+0x2764c48)
#10 0x00000000023dca41 clang::Parser::ParseCastExpression(bool, bool, bool&,
clang::Parser::TypeCastState)
(/root/build/llvm/release/bin/clang-5.0+0x23dca41)
#11 0x00000000023dea0d clang::Parser::ParseCastExpression(bool, bool,
clang::Parser::TypeCastState)
(/root/build/llvm/release/bin/clang-5.0+0x23dea0d)
#12 0x00000000023deaa9
clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState)
(/root/build/llvm/release/bin/clang-5.0+0x23deaa9)
#13 0x00000000023bd19f
clang::Parser::ParseBracketDeclarator(clang::Declarator&)
(/root/build/llvm/release/bin/clang-5.0+0x23bd19f)
#14 0x00000000023bd61b
clang::Parser::ParseMisplacedBracketDeclarator(clang::Declarator&)
(/root/build/llvm/release/bin/clang-5.0+0x23bd61b)
#15 0x00000000023c5ba7 clang::Parser::ParseDirectDeclarator(clang::Declarator&)
(/root/build/llvm/release/bin/clang-5.0+0x23c5ba7)
#16 0x00000000023bc8e4
clang::Parser::ParseDeclaratorInternal(clang::Declarator&, void
(clang::Parser::*)(clang::Declarator&))
(/root/build/llvm/release/bin/clang-5.0+0x23bc8e4)
#17 0x00000000023bcdc2 clang::Parser::ParseDeclarator(clang::Declarator&)
(/root/build/llvm/release/bin/clang-5.0+0x23bcdc2)
#18 0x00000000023c0962
clang::Parser::ParseStructDeclaration(clang::ParsingDeclSpec&,
llvm::function_ref<void (clang::ParsingFieldDeclarator&)>)
(/root/build/llvm/release/bin/clang-5.0+0x23c0962)
#19 0x00000000023c11f5
clang::Parser::ParseStructUnionBody(clang::SourceLocation, unsigned int,
clang::Decl*) (/root/build/llvm/release/bin/clang-5.0+0x23c11f5)
#20 0x00000000023d7d9d
clang::Parser::ParseClassSpecifier(clang::tok::TokenKind,
clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo
const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext,
clang::Parser::ParsedAttributesWithRange&)
(/root/build/llvm/release/bin/clang-5.0+0x23d7d9d)
#21 0x00000000023b7c68
clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&,
clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier,
clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*)
(/root/build/llvm/release/bin/clang-5.0+0x23b7c68)
#22 0x000000000239d006
clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec&, clang::AccessSpecifier)
(/root/build/llvm/release/bin/clang-5.0+0x239d006)
#23 0x000000000239d7f1
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*, clang::AccessSpecifier) [clone .part.160] [clone
.constprop.185] (/root/build/llvm/release/bin/clang-5.0+0x239d7f1)
#24 0x000000000239d84f
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*, clang::AccessSpecifier)
(/root/build/llvm/release/bin/clang-5.0+0x239d84f)
#25 0x000000000239f62f
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*) (/root/build/llvm/release/bin/clang-5.0+0x239f62f)
#26 0x00000000023a3382
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&)
(/root/build/llvm/release/bin/clang-5.0+0x23a3382)
#27 0x00000000023a361c
clang::Parser::ParseFirstTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&)
(/root/build/llvm/release/bin/clang-5.0+0x23a361c)
#28 0x000000000239881d clang::ParseAST(clang::Sema&, bool, bool)
(/root/build/llvm/release/bin/clang-5.0+0x239881d)
#29 0x0000000001f99d6a clang::CodeGenAction::ExecuteAction()
(/root/build/llvm/release/bin/clang-5.0+0x1f99d6a)
#30 0x0000000001bba266 clang::FrontendAction::Execute()
(/root/build/llvm/release/bin/clang-5.0+0x1bba266)
#31 0x0000000001b8cb76
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/root/build/llvm/release/bin/clang-5.0+0x1b8cb76)
#32 0x0000000001c41e3a
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/root/build/llvm/release/bin/clang-5.0+0x1c41e3a)
#33 0x00000000009efd88 cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) (/root/build/llvm/release/bin/clang-5.0+0x9efd88)
#34 0x00000000009a03dc main (/root/build/llvm/release/bin/clang-5.0+0x9a03dc)
#35 0x00007f876ad10830 __libc_start_main
/build/glibc-t3gR2i/glibc-2.23/csu/../csu/libc-start.c:325:0
#36 0x00000000009ec5d9 _start (/root/build/llvm/release/bin/clang-5.0+0x9ec5d9)
The file durbin-aac882.c (reduced using afl-tmin) is attached. clang trunk
r294933.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>