http://llvm.org/bugs/show_bug.cgi?id=13327
Sebastian Freundt <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|WORKSFORME | --- Comment #3 from Sebastian Freundt <[email protected]> 2012-07-13 01:16:24 CDT --- No it doesn't. freundt@clyde:pts/13:~/temp> clang --version clang version 3.2 (trunk 160132) Target: x86_64-unknown-linux-gnu Thread model: posix test.c --8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<- #include <stdint.h> struct dt_d_s { uint32_t u; }; struct dt_t_s { uint32_t u; }; struct dt_dt_s { union { /* packs */ struct { /* dt type, or date type */ uint16_t typ:4; /* sandwich indicator (use d and t slots below) */ uint16_t sandwich:1; /* unused, pad to next ui8 */ uint16_t:3; /* duration indicator */ uint16_t dur:1; /* negation indicator */ uint16_t neg:1; /* pad to push the next 53 bits MSB-wards */ uint16_t:1; union { uint64_t u:53; }; } __attribute__((packed)); /* sandwich types */ struct { struct dt_d_s d; struct dt_t_s t; }; }; }; static inline __attribute__((pure, const)) struct dt_dt_s dt_dt_initialiser(void) { struct dt_dt_s res = { .typ = 0, .sandwich = 0U, .dur = 0U, .neg = 0U, .u = 0U, .t = { .u = 0, }, }; return res; } int main(void) { struct dt_dt_s res = dt_dt_initialiser(); return res.sandwich; } --8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<--8<- freundt@clyde:pts/13:~/temp> clang -v -std=c99 test.c clang version 3.2 (trunk 160132) Target: x86_64-unknown-linux-gnu Thread model: posix "/home/freundt/usr/bin/clang" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -main-file-name test.c -mrelocation-model static -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -target-linker-version 2.21.51.0.7.20110306 -momit-leaf-frame-pointer -v -resource-dir /home/freundt/usr/bin/../lib/clang/3.2 -fmodule-cache-path /tmp/clang-module-cache -internal-isystem /usr/local/include -internal-isystem /home/freundt/usr/bin/../lib/clang/3.2/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c99 -fdebug-compilation-dir /home/freundt/temp -ferror-limit 19 -fmessage-length 210 -mstackrealign -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/test-0g7BmK.o -x c test.c clang -cc1 version 3.2 based upon LLVM 3.2svn default target x86_64-unknown-linux-gnu ignoring nonexistent directory "/include" #include "..." search starts here: #include <...> search starts here: /usr/local/include /home/freundt/usr/bin/../lib/clang/3.2/include /usr/include End of search list. test.c:48:22: warning: subobject initialization overrides initialization of other fields within its enclosing subobject [-Winitializer-overrides] .t = { ^ test.c:44:29: note: previous initialization is here .sandwich = 0U, ^~ clang: /var/scratch/freundt/src/devel/llvm/include/llvm/Support/Casting.h:194: typename cast_retty<ConstantInt, Constant *>::ret_type llvm::cast(llvm::Constant *const &): Assertion `isa<X>(Val) && "cast<Ty>() argument of incompatible type!"' failed. 0 clang 0x0000000002b6193e 1 clang 0x0000000002b61e3a 2 libpthread.so.0 0x00007f615c0e42d0 3 libc.so.6 0x00007f615b423ab5 gsignal + 53 4 libc.so.6 0x00007f615b424fb6 abort + 390 5 libc.so.6 0x00007f615b41c385 __assert_fail + 245 6 clang 0x0000000000afff16 llvm::cast_retty<llvm::ConstantInt, llvm::Constant*>::ret_type llvm::cast<llvm::ConstantInt, llvm::Constant*>(llvm::Constant* const&) + 70 7 clang 0x0000000000bc170b 8 clang 0x0000000000bc1385 9 clang 0x0000000000bc1304 10 clang 0x0000000000bc00d4 11 clang 0x0000000000bbba4e 12 clang 0x0000000000bbc4de clang::CodeGen::CodeGenModule::EmitConstantExpr(clang::Expr const*, clang::QualType, clang::CodeGen::CodeGenFunction*) + 286 13 clang 0x0000000000bc1637 14 clang 0x0000000000bc1385 15 clang 0x0000000000bc1304 16 clang 0x0000000000bc00d4 17 clang 0x0000000000bbba4e 18 clang 0x0000000000bbc4de clang::CodeGen::CodeGenModule::EmitConstantExpr(clang::Expr const*, clang::QualType, clang::CodeGen::CodeGenFunction*) + 286 19 clang 0x0000000000bc1637 20 clang 0x0000000000bc1385 21 clang 0x0000000000bc1304 22 clang 0x0000000000bc00d4 23 clang 0x0000000000bbba4e 24 clang 0x0000000000bbabab clang::CodeGen::CodeGenModule::EmitConstantInit(clang::VarDecl const&, clang::CodeGen::CodeGenFunction*) + 283 25 clang 0x0000000000b69796 clang::CodeGen::CodeGenFunction::EmitAutoVarInit(clang::CodeGen::CodeGenFunction::AutoVarEmission const&) + 502 26 clang 0x0000000000b67225 clang::CodeGen::CodeGenFunction::EmitAutoVarDecl(clang::VarDecl const&) + 53 27 clang 0x0000000000b670f1 clang::CodeGen::CodeGenFunction::EmitVarDecl(clang::VarDecl const&) + 81 28 clang 0x0000000000b66f65 clang::CodeGen::CodeGenFunction::EmitDecl(clang::Decl const&) + 181 29 clang 0x0000000000c47205 clang::CodeGen::CodeGenFunction::EmitDeclStmt(clang::DeclStmt const&) + 117 30 clang 0x0000000000c428f7 clang::CodeGen::CodeGenFunction::EmitSimpleStmt(clang::Stmt const*) + 295 31 clang 0x0000000000c42227 clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*) + 87 32 clang 0x0000000000c47011 clang::CodeGen::CodeGenFunction::EmitCompoundStmt(clang::CompoundStmt const&, bool, clang::CodeGen::AggValueSlot) + 257 33 clang 0x0000000000c428d5 clang::CodeGen::CodeGenFunction::EmitSimpleStmt(clang::Stmt const*) + 261 34 clang 0x0000000000c42227 clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*) + 87 35 clang 0x0000000000c5f8ee clang::CodeGen::CodeGenFunction::EmitFunctionBody(clang::CodeGen::FunctionArgList&) + 142 36 clang 0x0000000000c5fd36 clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) + 1078 37 clang 0x0000000000a976b6 clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl) + 822 38 clang 0x0000000000a95382 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl) + 498 39 clang 0x0000000000a929c2 clang::CodeGen::CodeGenModule::EmitDeferred() + 434 40 clang 0x0000000000a926b9 clang::CodeGen::CodeGenModule::Release() + 25 41 clang 0x0000000000a8e008 42 clang 0x0000000000a8c08f 43 clang 0x0000000000c8baf2 clang::ParseAST(clang::Sema&, bool, bool) + 786 44 clang 0x00000000008a04a8 clang::ASTFrontendAction::ExecuteAction() + 312 45 clang 0x0000000000a8b61b clang::CodeGenAction::ExecuteAction() + 1259 46 clang 0x00000000008a00bb clang::FrontendAction::Execute() + 235 47 clang 0x0000000000873598 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 776 48 clang 0x000000000083a0f1 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 961 49 clang 0x00000000008249d9 cc1_main(char const**, char const**, char const*, void*) + 969 50 clang 0x0000000000833f2d main + 477 51 libc.so.6 0x00007f615b40fbfd __libc_start_main + 253 52 clang 0x0000000000824529 Stack dump: 0. Program arguments: /home/freundt/usr/bin/clang -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -main-file-name test.c -mrelocation-model static -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -target-linker-version 2.21.51.0.7.20110306 -momit-leaf-frame-pointer -v -resource-dir /home/freundt/usr/bin/../lib/clang/3.2 -fmodule-cache-path /tmp/clang-module-cache -internal-isystem /usr/local/include -internal-isystem /home/freundt/usr/bin/../lib/clang/3.2/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c99 -fdebug-compilation-dir /home/freundt/temp -ferror-limit 19 -fmessage-length 210 -mstackrealign -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/test-0g7BmK.o -x c test.c 1. <eof> parser at end of file 2. Per-file LLVM IR generation 3. test.c:40:1: Generating code for declaration 'dt_dt_initialiser' 4. test.c:41:1: LLVM IR generation of compound statement ('{}') clang: error: unable to execute command: Aborted (core dumped) clang: error: clang frontend command failed due to signal (use -v to see invocation) clang version 3.2 (trunk 160132) Target: x86_64-unknown-linux-gnu Thread model: posix clang: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script. clang: note: diagnostic msg: ******************** PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: Preprocessed source(s) and associated run script(s) are located at: clang: note: diagnostic msg: /tmp/test-DRetMV.c clang: note: diagnostic msg: /tmp/test-DRetMV.sh clang: note: diagnostic msg: ******************** -- 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. _______________________________________________ LLVMbugs mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs
