[LLVMbugs] [Bug 10237] New: Segfault when dereferencing a forward-declared struct
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Fri Jul 1 00:44:32 PDT 2011
http://llvm.org/bugs/show_bug.cgi?id=10237
Summary: Segfault when dereferencing a forward-declared struct
Product: clang
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: C++
AssignedTo: unassignedclangbugs at nondot.org
ReportedBy: max at duempel.org
CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com
The following snippet makes clang++ svn r134234 crash:
struct X crash() { if (X[i]){} }
Error message:
crash.cpp:1:10: error: incomplete result type 'struct X' in function definition
struct X crash() {
^
crash.cpp:1:8: note: forward declaration of 'X'
struct X crash() {
^
crash.cpp:2:10: error: expected unqualified-id
if (X[i]) {}
^
crash.cpp:2:11: error: use of undeclared identifier 'i'
if (X[i]) {}
^
0 clang 0x00000000018f8d7f
1 clang 0x00000000018f91e9
2 libpthread.so.0 0x00007f6d0f8a0020
3 clang 0x00000000009ab113
clang::Sema::ActOnCXXConditionDeclaration(clang::Scope*, clang::Declarator&) +
19
4 clang 0x00000000008d8182
clang::Parser::ParseCXXCondition(clang::ActionResult<clang::Expr*, true>&,
clang::Decl*&, clang::SourceLocation, bool) + 1058
5 clang 0x0000000000891946
clang::Parser::ParseParenExprOrCondition(clang::ActionResult<clang::Expr*,
true>&, clang::Decl*&, clang::SourceLocation, bool) + 198
6 clang 0x000000000089ac5f
clang::Parser::ParseIfStatement(clang::ParsedAttributes&) + 447
7 clang 0x000000000089722d
clang::Parser::ParseStatementOrDeclaration(clang::ASTOwningVector<clang::Stmt*,
32u>&, bool) + 2413
8 clang 0x0000000000894653
clang::Parser::ParseCompoundStatementBody(bool) + 1587
9 clang 0x0000000000894daa
clang::Parser::ParseFunctionStatementBody(clang::Decl*,
clang::Parser::ParseScope&) + 138
10 clang 0x00000000008ad3e4
clang::Parser::ParseFunctionDefinition(clang::Parser::ParsingDeclarator&,
clang::Parser::ParsedTemplateInfo const&) + 1044
11 clang 0x00000000008b8dea
clang::Parser::ParseDeclGroup(clang::Parser::ParsingDeclSpec&, unsigned int,
bool, clang::SourceLocation*, clang::Parser::ForRangeInit*) + 746
12 clang 0x00000000008a8831
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsingDeclSpec&,
clang::AccessSpecifier) + 145
13 clang 0x00000000008a8db3
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&,
clang::AccessSpecifier) + 531
14 clang 0x00000000008ab330
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::Parser::ParsingDeclSpec*) + 2752
15 clang 0x00000000008ab864
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 164
16 clang 0x000000000088542d clang::ParseAST(clang::Sema&, bool) + 253
17 clang 0x000000000075e1f3 clang::CodeGenAction::ExecuteAction() +
51
18 clang 0x0000000000673623
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 307
19 clang 0x0000000000653269
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1001
20 clang 0x0000000000648a12 cc1_main(char const**, char const**, char
const*, void*) + 706
21 clang 0x0000000000651bf6 main + 678
22 libc.so.6 0x00007f6d0eb85ead __libc_start_main + 253
23 clang 0x00000000006485e9
Stack dump:
0. Program arguments: /usr/local/stow/llvm/bin/clang -cc1 -triple
x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free
-disable-llvm-verifier -main-file-name crash.cpp -mrelocation-model static
-mdisable-fp-elim -masm-verbose -mconstructor-aliases -munwind-tables
-target-cpu x86-64 -target-linker-version 2.21.52.20110606
-momit-leaf-frame-pointer -coverage-file crash.o -resource-dir
/usr/local/stow/llvm/bin/../lib/clang/3.0 -fdeprecated-macro -ferror-limit 19
-fmessage-length 266 -fgnu-runtime -fcxx-exceptions -fexceptions
-fdiagnostics-show-option -fcolor-diagnostics -o crash.o -x c++ crash.cpp
1. crash.cpp:2:13: current parser token ')'
2. crash.cpp:1:18: parsing function body 'crash'
3. crash.cpp:1:18: in compound statement ('{}')
clang: error: unable to execute command: Segmentation fault
clang: error: clang frontend command failed due to signal 2 (use -v to see
invocation)
--
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.
More information about the llvm-bugs
mailing list