-
Notifications
You must be signed in to change notification settings - Fork 15.3k
Description
| Bugzilla Link | 11372 |
| Resolution | INVALID |
| Resolved on | Nov 14, 2011 16:04 |
| Version | 2.9 |
| OS | MacOS X |
| Reporter | LLVM Bugzilla Contributor |
| CC | @efriedma-quic |
Extended Description
Attempting to isolate to just the below case does not crash, but it does crash within our code base. Changing the compiler back to gcc 4.2 within xcode, or naming the below anonymous union removes the crash and things compiler fine:
// This crashes
class foo {
public:
foo() { }
union
{
struct
{
unsigned short x;
unsigned short y;
unsigned short z;
};
unsigned short vec[3];
};
};
// This works
class foo {
public:
foo() { }
union not_anon
{
struct
{
unsigned short x;
unsigned short y;
unsigned short z;
};
unsigned short vec[3];
};
not_anon u;
};
--version reports
Apple clang version 3.0 (tags/Apple/clang-211.10.1) (based on LLVM 3.0svn)
Target: x86+64-apple-darwin10.8.0
Thread model: posix
I am compiling to an Armv7 target. Here is the segfault dump:
0 clang 0x0000000100de1022 PrintStackTrace(void*) + 34
1 clang 0x0000000100de14f9 SignalHandler(int) + 633
2 libSystem.B.dylib 0x00007fff83c4d1ba _sigtramp + 26
3 libSystem.B.dylib 0x000000000006b030 _sigtramp + 2084691600
4 clang 0x00000001002b2b0a llvm::GetElementPtrInst::GetElementPtrInstllvm::Value**(llvm::Value*, llvm::Value**, llvm::Value**, unsigned int, llvm::Twine const&, llvm::Instruction*) + 202
5 clang 0x0000000100692a49 llvm::IRBuilder<false, llvm::ConstantFolder, llvm::IRBuilderDefaultInserter >::CreateConstInBoundsGEP2_32(llvm::Value*, unsigned int, unsigned int, llvm::Twine const&) + 185
6 clang 0x00000001002b276c clang::CodeGen::CodeGenFunction::EmitLValueForField(llvm::Value*, clang::FieldDecl const*, unsigned int) + 492
7 clang 0x0000000100507fb5 clang::CodeGen::CodeGenFunction::EmitLValueForFieldInitialization(llvm::Value*, clang::FieldDecl const*, unsigned int) + 85
8 clang 0x000000010050356a clang::CodeGen::CodeGenFunction::EmitCtorPrologue(clang::CXXConstructorDecl const*, clang::CXXCtorType, clang::CodeGen::FunctionArgList&) + 1322
9 clang 0x0000000100502c84 clang::CodeGen::CodeGenFunction::EmitConstructorBody(clang::CodeGen::FunctionArgList&) + 340
10 clang 0x0000000100684df3 clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) + 675
11 clang 0x0000000100502af3 clang::CodeGen::CodeGenModule::EmitCXXConstructor(clang::CXXConstructorDecl const*, clang::CXXCtorType) + 243
12 clang 0x000000010068685d clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl) + 285
13 clang 0x000000010011a49d clang::CodeGen::CodeGenModule::EmitDeferred() + 189
14 clang 0x000000010011a2e4 clang::CodeGen::CodeGenModule::Release() + 20
15 clang 0x000000010011a1ad clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) + 93
16 clang 0x0000000100042176 clang::ParseAST(clang::Sema&, bool) + 422
17 clang 0x0000000100040baf clang::CodeGenAction::ExecuteAction() + 671
18 clang 0x000000010002cafb clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 875
19 clang 0x000000010002ab78 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 2696
20 clang 0x000000010001f365 cc1_main(char const**, char const**, char const*, void*) + 5333
21 clang 0x000000010000256b main + 667
22 clang 0x00000001000022c4 start + 52
23 clang 0x000000000000006a start + 4294958554