[llvm] BPF: Emit an error for illegal LD_imm64 insn when LLVM_ENABLE_ASSERTI… (PR #74035)

via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 6 16:19:55 PST 2023


yonghong-song wrote:

Okay, my crash call stack:
```
clang: ../lib/Target/BPF/MCTargetDesc/BPFInstPrinter.cpp:46: void printExpr(const llvm::MCExpr*, llvm::raw_ostream&): Assertion `SRE && "Unexpected MCExpr type."' failed.                                                                                                                
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.                                                                                                                               
Stack dump:                                                                                                                                  0.      Program arguments: /home/yhs/work/llvm-project/llvm/build/install/bin/clang --target=bpf -O2 -S -fcolor-diagnostics -o t.s t.c       
1.      <eof> parser at end of file                                                                                                          2.      Code generation                                                                                                                      
3.      Running pass 'Function Pass Manager' on module 't.c'.                                                                                
4.      Running pass 'BPF Assembly Printer' on function '@foo'                                                                               
 #0 0x0000000001d664f8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/yhs/work/llvm-project/llvm/build/install/bin/clang+0x1d664f
8)                                                                                                                                           
 #1 0x0000000001d6432c llvm::sys::CleanupOnSignal(unsigned long) (/home/yhs/work/llvm-project/llvm/build/install/bin/clang+0x1d6432c)        
 #2 0x0000000001cb85e0 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0                                                          
 #3 0x00007f12ab012cf0 __restore_rt (/lib64/libpthread.so.0+0x12cf0)                                                                         
 #4 0x00007f12a8c4eacf raise (/lib64/libc.so.6+0x4eacf)                                                                                      
 #5 0x00007f12a8c21ea5 abort (/lib64/libc.so.6+0x21ea5)                                                                                      
 #6 0x00007f12a8c21d79 _nl_load_domain.cold.0 (/lib64/libc.so.6+0x21d79)                                                                     
 #7 0x00007f12a8c47426 (/lib64/libc.so.6+0x47426)
 #8 0x0000000000b5579f printExpr(llvm::MCExpr const*, llvm::raw_ostream&) BPFInstPrinter.cpp:0:0
 #9 0x0000000000b55fcc llvm::BPFInstPrinter::printImm64Operand(llvm::MCInst const*, unsigned int, llvm::raw_ostream&) (/home/yhs/work/llvm-pr
oject/llvm/build/install/bin/clang+0xb55fcc)                                                                                                 
#10 0x0000000000b5756c llvm::BPFInstPrinter::printInst(llvm::MCInst const*, unsigned long, llvm::StringRef, llvm::MCSubtargetInfo const&, llvm::raw_ostream&) (/home/yhs/work/llvm-project/llvm/build/install/bin/clang+0xb5756c)                                                         #11 0x0000000001a62e7c (anonymous namespace)::MCAsmStreamer::emitInstruction(llvm::MCInst const&, llvm::MCSubtargetInfo const&) MCAsmStreamer.cpp:0:0                                                                                                                                     
#12 0x0000000000b50b2d (anonymous namespace)::BPFAsmParser::MatchAndEmitInstruction(llvm::SMLoc, unsigned int&, llvm::SmallVectorImpl<std::unique_ptr<llvm::MCParsedAsmOperand, std::default_delete<llvm::MCParsedAsmOperand>>>&, llvm::MCStreamer&, unsigned long&, bool) BPFAsmParser.cp
p:0:0
#13 0x0000000001b22721 (anonymous namespace)::AsmParser::parseAndMatchAndEmitTargetInstruction((anonymous namespace)::ParseStatementInfo&, llvm::StringRef, llvm::AsmToken, llvm::SMLoc) AsmParser.cpp:0:0
#14 0x0000000001b37c3b (anonymous namespace)::AsmParser::parseStatement((anonymous namespace)::ParseStatementInfo&, llvm::MCAsmParserSemaCallback*) (.part.818) AsmParser.cpp:0:0
#15 0x0000000001b32b61 (anonymous namespace)::AsmParser::Run(bool, bool) AsmParser.cpp:0:0
#16 0x000000000297d969 llvm::AsmPrinter::emitInlineAsm(llvm::StringRef, llvm::MCSubtargetInfo const&, llvm::MCTargetOptions const&, llvm::MDNode const*, llvm::InlineAsm::AsmDialect) const (/home/yhs/work/llvm-project/llvm/build/install/bin/clang+0x297d969)
#17 0x000000000297e90d llvm::AsmPrinter::emitInlineAsm(llvm::MachineInstr const*) const (/home/yhs/work/llvm-project/llvm/build/install/bin/clang+0x297e90d)
#18 0x00000000029798e1 llvm::AsmPrinter::emitFunctionBody() (/home/yhs/work/llvm-project/llvm/build/install/bin/clang+0x29798e1)
#19 0x0000000000af1b75 llvm::AsmPrinter::runOnMachineFunction(llvm::MachineFunction&) (/home/yhs/work/llvm-project/llvm/build/install/bin/clang+0xaf1b75)
```

https://github.com/llvm/llvm-project/pull/74035


More information about the llvm-commits mailing list