Skip to content

use-after-poison in HexagonDAGToDAGISel::balanceSubTree #64371

Open
@chfast

Description

@chfast
==2555916==ERROR: AddressSanitizer: use-after-poison on address 0x621000038b58 at pc 0x55555ce6b133 bp 0x7fffffffc030 sp 0x7fffffffc028                                                                                                                  
READ of size 2 at 0x621000038b58 thread T0                                                                                                                                                                                                               
    #0 0x55555ce6b132 in getOperand /blockchain/projects/llvm-project/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:927:5                                                                                                                                
    #1 0x55555ce6b132 in llvm::HexagonDAGToDAGISel::balanceSubTree(llvm::SDNode*, bool) /blockchain/projects/llvm-project/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp:1977:23                                                                        
    #2 0x55555ce60d98 in llvm::HexagonDAGToDAGISel::balanceSubTree(llvm::SDNode*, bool) /blockchain/projects/llvm-project/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp:1979:27                                                                        
    #3 0x55555ce594cd in llvm::HexagonDAGToDAGISel::rebalanceAddressTrees() /blockchain/projects/llvm-project/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp:2353:26                                                                                    
    #4 0x55555ce57935 in llvm::HexagonDAGToDAGISel::PreprocessISelDAG() /blockchain/projects/llvm-project/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp:1314:5                                                                                         
    #5 0x5555632d3aa9 in llvm::SelectionDAGISel::DoInstructionSelection() /blockchain/projects/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1087:3                                                                                    
    #6 0x5555632ce9a9 in llvm::SelectionDAGISel::CodeGenAndEmitDAG() /blockchain/projects/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:949:5                                                                                          
    #7 0x5555632c5d47 in llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /blockchain/projects/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1700:7                                                                 
    #8 0x5555632b9603 in llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /blockchain/projects/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:482:3                                                                 
    #9 0x55555ce70972 in llvm::HexagonDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) /blockchain/projects/llvm-project/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h:48:23                                                                   
    #10 0x555560c55075 in llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /blockchain/projects/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:91:13                                                                                     
    #11 0x555561fe9ef1 in llvm::FPPassManager::runOnFunction(llvm::Function&) /blockchain/projects/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1435:27                                                                                                
    #12 0x5555620087b2 in llvm::FPPassManager::runOnModule(llvm::Module&) /blockchain/projects/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1481:16                                                                                                    
    #13 0x555561fec095 in runOnModule /blockchain/projects/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1550:27                                                                                                                                        
    #14 0x555561fec095 in llvm::legacy::PassManagerImpl::run(llvm::Module&) /blockchain/projects/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:535:44                                                                                                   
    #15 0x55555a28b637 in compileModule /blockchain/projects/llvm-project/llvm/tools/llc/llc.cpp:751:8                                                                                                                                                   
    #16 0x55555a28b637 in main /blockchain/projects/llvm-project/llvm/tools/llc/llc.cpp:416:22                                                                                                                                                           
    #17 0x7ffff7a1ed8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16                                                                                                                                                        
    #18 0x7ffff7a1ee3f in __libc_start_main csu/../csu/libc-start.c:392:3                                                                                                                                                                                
    #19 0x55555a1b3754 in _start (/blockchain/projects/llvm-project/llvm/build/san/bin/llc+0x4c5f754) (BuildId: 2bacbb9d86dd871a44a620646292a652dc2dd0c6)                                                                                                
                                                                                                                                                                                                                                                         
0x621000038b58 is located 1624 bytes inside of 4096-byte region [0x621000038500,0x621000039500)                                                                                                                                                          
allocated by thread T0 here:                                                                                                                                                                                                                             
    #0 0x55555a273782 in operator new(unsigned long, std::align_val_t) (/blockchain/projects/llvm-project/llvm/build/san/bin/llc+0x4d1f782) (BuildId: 2bacbb9d86dd871a44a620646292a652dc2dd0c6)                                                          
    #1 0x55555a912f3e in Allocate /blockchain/projects/llvm-project/llvm/include/llvm/Support/AllocatorBase.h:92:12                                                                                                                                      
    #2 0x55555a912f3e in llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>::StartNewSlab() /blockchain/projects/llvm-project/llvm/include/llvm/Support/Allocator.h:339:42
    #3 0x55555a912bf1 in llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096ul, 4096ul, 128ul>::Allocate(unsigned long, llvm::Align) /blockchain/projects/llvm-project/llvm/include/llvm/Support/Allocator.h:195:5
    #4 0x5555631750de in Allocate /blockchain/projects/llvm-project/llvm/include/llvm/Support/Allocator.h:209:12
    #5 0x5555631750de in Allocate<llvm::RegisterSDNode, llvm::BumpPtrAllocatorImpl<llvm::MallocAllocator, 4096UL, 4096UL, 128UL> > /blockchain/projects/llvm-project/llvm/include/llvm/Support/Recycler.h:89:57
    #6 0x5555631750de in Allocate<llvm::RegisterSDNode> /blockchain/projects/llvm-project/llvm/include/llvm/Support/RecyclingAllocator.h:43:47
    #7 0x5555631750de in newSDNode<llvm::RegisterSDNode, unsigned int &, llvm::EVT &> /blockchain/projects/llvm-project/llvm/include/llvm/CodeGen/SelectionDAG.h:405:40
    #8 0x5555631750de in llvm::SelectionDAG::getRegister(unsigned int, llvm::EVT) /blockchain/projects/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:2188:13
    #9 0x55555cee9182 in getCopyFromReg /blockchain/projects/llvm-project/llvm/include/llvm/CodeGen/SelectionDAG.h:801:30
    #10 0x55555cee9182 in llvm::HexagonTargetLowering::LowerFormalArguments(llvm::SDValue, unsigned int, bool, llvm::SmallVectorImpl<llvm::ISD::InputArg> const&, llvm::SDLoc const&, llvm::SelectionDAG&, llvm::SmallVectorImpl<llvm::SDValue>&) const /blockchain/projects/llvm-project/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp:844:26
    #11 0x555563110cc3 in llvm::SelectionDAGISel::LowerArguments(llvm::Function const&) /blockchain/projects/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:10869:26
    #12 0x5555632c0f00 in llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /blockchain/projects/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1465:5
    #13 0x5555632b9603 in llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /blockchain/projects/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:482:3
    #14 0x55555ce70972 in llvm::HexagonDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) /blockchain/projects/llvm-project/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h:48:23
    #15 0x555560c55075 in llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /blockchain/projects/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:91:13
    #16 0x555561fe9ef1 in llvm::FPPassManager::runOnFunction(llvm::Function&) /blockchain/projects/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1435:27
    #17 0x5555620087b2 in llvm::FPPassManager::runOnModule(llvm::Module&) /blockchain/projects/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1481:16
    #18 0x555561fec095 in runOnModule /blockchain/projects/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1550:27
    #19 0x555561fec095 in llvm::legacy::PassManagerImpl::run(llvm::Module&) /blockchain/projects/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:535:44
    #20 0x55555a28b637 in compileModule /blockchain/projects/llvm-project/llvm/tools/llc/llc.cpp:751:8
    #21 0x55555a28b637 in main /blockchain/projects/llvm-project/llvm/tools/llc/llc.cpp:416:22
    #22 0x7ffff7a1ed8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

SUMMARY: AddressSanitizer: use-after-poison /blockchain/projects/llvm-project/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:927:5 in getOperand
target triple = "hexagon"

define i64 @f(i32 %LGV1, ptr %G.13, ptr %RP) {
  %B1 = add i32 %LGV1, %LGV1
  %G8 = getelementptr i32, ptr null, i32 %LGV1
  store ptr %G8, ptr %G.13, align 8
  %B2 = add i32 %LGV1, %B1
  %G1 = getelementptr float, ptr %RP, i32 %B2
  store i1 false, ptr %G1, align 1
  ret i64 0
}

https://godbolt.org/z/zTxPWbK6h

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions