[LLVMbugs] [Bug 11509] New: ?: with cast to void breaks build of SelectInst

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Dec 8 13:28:41 PST 2011


http://llvm.org/bugs/show_bug.cgi?id=11509

             Bug #: 11509
           Summary: ?: with cast to void breaks build of SelectInst
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: LLVM Codegen
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: nlewycky at google.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified


This testcase:

int f(void);
void test() {
  f() ? (void)0 : (void)0;
}

crashes in IRGen:

nlewycky at ducttape:~$ llvm/Debug+Asserts/bin/clang -cc1 -emit-llvm-only z.i
0  clang           0x0000000002c28ff5
1  clang           0x0000000002c28de8
2  libpthread.so.0 0x00007f46a916f8f0
3  clang           0x0000000001353dc6 llvm::Value::getType() const + 12
4  clang           0x0000000001379824
llvm::SelectInst::SelectInst(llvm::Value*, llvm::Value*, llvm::Value*,
llvm::Twine const&, llvm::Instruction*) + 62
5  clang           0x00000000013798e8 llvm::SelectInst::Create(llvm::Value*,
llvm::Value*, llvm::Value*, llvm::Twine const&, llvm::Instruction*) + 84
6  clang           0x000000000137b75b llvm::IRBuilder<true,
llvm::ConstantFolder, llvm::IRBuilderDefaultInserter<true>
>::CreateSelect(llvm::Value*, llvm::Value*, llvm::Value*, llvm::Twine const&) +
205
7  clang           0x0000000001425a47
8  clang           0x0000000001427feb
9  clang           0x00000000014272fe
10 clang           0x0000000001419781
11 clang           0x00000000014263b2
clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*, bool) + 158
12 clang           0x00000000013df5be
clang::CodeGen::CodeGenFunction::EmitAnyExpr(clang::Expr const*,
clang::CodeGen::AggValueSlot, bool) + 84
13 clang           0x00000000013df51d
clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(clang::Expr const*) + 139
14 clang           0x000000000147e4ff
clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*) + 401
15 clang           0x000000000147eaf1
clang::CodeGen::CodeGenFunction::EmitCompoundStmt(clang::CompoundStmt const&,
bool, clang::CodeGen::AggValueSlot) + 299
16 clang           0x000000000147e8ac
clang::CodeGen::CodeGenFunction::EmitSimpleStmt(clang::Stmt const*) + 234
17 clang           0x000000000147e3b9
clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*) + 75
18 clang           0x0000000001495c84
clang::CodeGen::CodeGenFunction::EmitFunctionBody(clang::CodeGen::FunctionArgList&)
+ 154
19 clang           0x0000000001496105
clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl,
llvm::Function*, clang::CodeGen::CGFunctionInfo const&) + 831
20 clang           0x000000000132f9a2
clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl)
+ 908
21 clang           0x000000000132d5be
clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl) + 450
22 clang           0x000000000132d04e
clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) + 852
23 clang           0x00000000013329c2
clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) + 310
24 clang           0x00000000013263e9
25 clang           0x0000000001324d1f
clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) + 163
26 clang           0x00000000014b99d8 clang::ParseAST(clang::Sema&, bool) + 440
27 clang           0x00000000011a21df clang::ASTFrontendAction::ExecuteAction()
+ 265
28 clang           0x000000000132419e clang::CodeGenAction::ExecuteAction() +
968
29 clang           0x00000000011a1e2e clang::FrontendAction::Execute() + 326
30 clang           0x000000000117c328
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 750
31 clang           0x000000000114d33c
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 972
32 clang           0x000000000113ca09 cc1_main(char const**, char const**, char
const*, void*) + 999
33 clang           0x000000000114893e main + 499
34 libc.so.6       0x00007f46a8449c4d __libc_start_main + 253
35 clang           0x000000000113bca9
Stack dump:
0.      Program arguments: llvm/Debug+Asserts/bin/clang -cc1 -emit-llvm-only
z.i 
1.      <eof> parser at end of file
2.      z.i:2:6: LLVM IR generation of declaration 'test'
3.      z.i:2:6: Generating code for declaration 'test'
4.      z.i:2:13: LLVM IR generation of compound statement ('{}')
Segmentation fault

-- 
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