[cfe-dev] Bug: assertion "only C++ supports non-constant static initializers!"
Max Kellermann
max at duempel.org
Thu Jan 29 01:19:23 PST 2009
Hi,
with clang r63301, I get the following assertion failure:
clang: CGDecl.cpp:93: llvm::GlobalValue*
clang::CodeGen::CodeGenFunction::GenerateStaticBlockVarDecl(const
clang::VarDecl&, bool, const char*): Assertion
`getContext().getLangOptions().CPlusPlus && "only C++ supports
non-constant static initializers!"' failed.
A test source and the full error message is attached.
The error occurs only if the first element of "struct foo" is a
pointer and only the second one gets explicitly initialized.
Max
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.c
Type: text/x-csrc
Size: 133 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20090129/31e30df4/attachment.c>
-------------- next part --------------
clang: CGDecl.cpp:93: llvm::GlobalValue* clang::CodeGen::CodeGenFunction::GenerateStaticBlockVarDecl(const clang::VarDecl&, bool, const char*): Assertion `getContext().getLangOptions().CPlusPlus && "only C++ supports non-constant static initializers!"' failed.
0 clang 0x00000000017eed9e
1 clang 0x00000000017ef0d4
2 libc.so.6 0x00007fb12bdc4110
3 libc.so.6 0x00007fb12bdc407b gsignal + 59
4 libc.so.6 0x00007fb12bdc584e abort + 270
5 libc.so.6 0x00007fb12bdbdaf4 __assert_fail + 260
6 clang 0x00000000010b4165 clang::CodeGen::CodeGenFunction::GenerateStaticBlockVarDecl(clang::VarDecl const&, bool, char const*) + 405
7 clang 0x00000000010b4b1b clang::CodeGen::CodeGenFunction::EmitStaticBlockVarDecl(clang::VarDecl const&) + 109
8 clang 0x00000000010b4c67 clang::CodeGen::CodeGenFunction::EmitBlockVarDecl(clang::VarDecl const&) + 55
9 clang 0x00000000010b4d4a clang::CodeGen::CodeGenFunction::EmitDecl(clang::Decl const&) + 142
10 clang 0x00000000010f81fb clang::CodeGen::CodeGenFunction::EmitDeclStmt(clang::DeclStmt const&) + 65
11 clang 0x00000000010f8cd4 clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*) + 502
12 clang 0x00000000010f9d03 clang::CodeGen::CodeGenFunction::EmitCompoundStmt(clang::CompoundStmt const&, bool, llvm::Value*, bool) + 253
13 clang 0x00000000010f9f43 clang::CodeGen::CodeGenFunction::EmitSimpleStmt(clang::Stmt const*) + 101
14 clang 0x00000000010f8b1d clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*) + 63
15 clang 0x00000000010fee86 clang::CodeGen::CodeGenFunction::GenerateCode(clang::FunctionDecl const*, llvm::Function*) + 424
16 clang 0x0000000001097c8e clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::FunctionDecl const*) + 442
17 clang 0x0000000001097d53 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::ValueDecl const*) + 49
18 clang 0x0000000001097f0d clang::CodeGen::CodeGenModule::EmitGlobal(clang::ValueDecl const*) + 377
19 clang 0x000000000109815d clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) + 127
20 clang 0x0000000001094faa
21 clang 0x0000000000bab0f8
22 clang 0x00000000011a38a6 clang::ParseAST(clang::Preprocessor&, clang::ASTConsumer*, clang::TranslationUnit*, bool) + 490
23 clang 0x0000000000be9192
24 clang 0x0000000000be9eb5 main + 1431
25 libc.so.6 0x00007fb12bdb14ca __libc_start_main + 218
26 clang 0x0000000000b9bb3a fmod + 186
More information about the cfe-dev
mailing list