[llvm] [IR] Add new Range attribute using new ConstantRange Attribute type (PR #83171)

Florian Mayer via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 8 11:34:41 PST 2024


fmayer wrote:

This has a memory leak detected by our sanitizer bot https://lab.llvm.org/buildbot/#/builders/168/builds/19110/steps/10/logs/stdio

```
FAIL: LLVM :: Bitcode/attributes.ll (24010 of 81188)
******************** TEST 'LLVM :: Bitcode/attributes.ll' FAILED ********************
Exit Code: 1
Command Output (stderr):
--
RUN: at line 1: /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm_build_asan/bin/llvm-as < /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/test/Bitcode/attributes.ll | /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm_build_asan/bin/llvm-dis | /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/test/Bitcode/attributes.ll
+ /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm_build_asan/bin/llvm-dis
+ /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/test/Bitcode/attributes.ll
+ /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm_build_asan/bin/llvm-as
=================================================================
==1078367==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x55605c69b9bd in operator new[](unsigned long) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:89:3
    #1 0x55605cbebe8c in getMemory /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Support/APInt.cpp:45:10
    #2 0x55605cbebe8c in llvm::APInt::initSlowCase(llvm::APInt const&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Support/APInt.cpp:86:12
    #3 0x55605c8d8de4 in APInt /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/ADT/APInt.h:158:7
    #4 0x55605c8d8de4 in ConstantRange /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/ConstantRange.h:47:21
    #5 0x55605c8d8de4 in ConstantRangeAttributeImpl /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/IR/AttributeImpl.h:220:58
    #6 0x55605c8d8de4 in llvm::Attribute::get(llvm::LLVMContext&, llvm::Attribute::AttrKind, llvm::ConstantRange const&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/IR/Attributes.cpp:185:29
    #7 0x55605c8e830c in addConstantRangeAttr /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/IR/Attributes.cpp:1947:23
    #8 0x55605c8e830c in llvm::AttrBuilder::addRangeAttr(llvm::ConstantRange const&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/IR/Attributes.cpp:1951:10
    #9 0x55605c6e5101 in llvm::LLParser::parseRangeAttr(llvm::AttrBuilder&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:3050:5
    #10 0x55605c6e0d57 in llvm::LLParser::parseEnumAttribute(llvm::Attribute::AttrKind, llvm::AttrBuilder&, bool) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:1600:12
    #11 0x55605c6e83b9 in llvm::LLParser::parseOptionalParamOrReturnAttrs(llvm::AttrBuilder&, bool) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:1964:9
    #12 0x55605c6f0200 in parseOptionalParamAttrs /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/AsmParser/LLParser.h:294:14
    #13 0x55605c6f0200 in llvm::LLParser::parseArgumentList(llvm::SmallVectorImpl<llvm::LLParser::ArgInfo>&, llvm::SmallVectorImpl<unsigned int>&, bool&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:3146:31
    #14 0x55605c6c977e in llvm::LLParser::parseFunctionHeader(llvm::Function*&, bool, unsigned int&, llvm::SmallVectorImpl<unsigned int>&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:6203:7
    #15 0x55605c6c1a46 in llvm::LLParser::parseDefine() /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:716:10
    #16 0x55605c6baa55 in llvm::LLParser::parseTopLevelEntities() /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:522:11
    #17 0x55605c6b9fa6 in llvm::LLParser::Run(bool, llvm::function_ref<std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> (llvm::StringRef, llvm::StringRef)>) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:99:10
    #18 0x55605c6a6c89 in parseAssemblyInto(llvm::MemoryBufferRef, llvm::Module*, llvm::ModuleSummaryIndex*, llvm::SMDiagnostic&, llvm::SlotMapping*, bool, llvm::function_ref<std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> (llvm::StringRef, llvm::StringRef)>) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/Parser.cpp:34:8
    #19 0x55605c6a7a16 in parseAssemblyWithIndex(llvm::MemoryBufferRef, llvm::SMDiagnostic&, llvm::LLVMContext&, llvm::SlotMapping*, bool, llvm::function_ref<std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> (llvm::StringRef, llvm::StringRef)>) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/Parser.cpp:83:7
    #20 0x55605c6a7ffa in parseAssemblyFileWithIndex(llvm::StringRef, llvm::SMDiagnostic&, llvm::LLVMContext&, llvm::SlotMapping*, bool, llvm::function_ref<std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> (llvm::StringRef, llvm::StringRef)>) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/Parser.cpp:113:10
    #21 0x55605c6a7cf9 in llvm::parseAssemblyFileWithIndex(llvm::StringRef, llvm::SMDiagnostic&, llvm::LLVMContext&, llvm::SlotMapping*, llvm::function_ref<std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> (llvm::StringRef, llvm::StringRef)>) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/Parser.cpp:122:10
    #22 0x55605c6a289d in main /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/tools/llvm-as/llvm-as.cpp:134:22
    #23 0x7fbde3e23a8f  (/lib/x86_64-linux-gnu/libc.so.6+0x23a8f) (BuildId: d320ce4e63925d698610ed423fc4b1f0e8ed51f1)
Direct leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x55605c69b9bd in operator new[](unsigned long) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:89:3
    #1 0x55605cbebe8c in getMemory /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Support/APInt.cpp:45:10
    #2 0x55605cbebe8c in llvm::APInt::initSlowCase(llvm::APInt const&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Support/APInt.cpp:86:12
    #3 0x55605c8d8d5f in APInt /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/ADT/APInt.h:158:7
    #4 0x55605c8d8d5f in ConstantRange /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/ConstantRange.h:47:21
    #5 0x55605c8d8d5f in ConstantRangeAttributeImpl /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/IR/AttributeImpl.h:220:58
    #6 0x55605c8d8d5f in llvm::Attribute::get(llvm::LLVMContext&, llvm::Attribute::AttrKind, llvm::ConstantRange const&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/IR/Attributes.cpp:185:29
    #7 0x55605c8e830c in addConstantRangeAttr /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/IR/Attributes.cpp:1947:23
    #8 0x55605c8e830c in llvm::AttrBuilder::addRangeAttr(llvm::ConstantRange const&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/IR/Attributes.cpp:1951:10
    #9 0x55605c6e5101 in llvm::LLParser::parseRangeAttr(llvm::AttrBuilder&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:3050:5
    #10 0x55605c6e0d57 in llvm::LLParser::parseEnumAttribute(llvm::Attribute::AttrKind, llvm::AttrBuilder&, bool) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:1600:12
    #11 0x55605c6e83b9 in llvm::LLParser::parseOptionalParamOrReturnAttrs(llvm::AttrBuilder&, bool) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:1964:9
    #12 0x55605c6f0200 in parseOptionalParamAttrs /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/AsmParser/LLParser.h:294:14
    #13 0x55605c6f0200 in llvm::LLParser::parseArgumentList(llvm::SmallVectorImpl<llvm::LLParser::ArgInfo>&, llvm::SmallVectorImpl<unsigned int>&, bool&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:3146:31
    #14 0x55605c6c977e in llvm::LLParser::parseFunctionHeader(llvm::Function*&, bool, unsigned int&, llvm::SmallVectorImpl<unsigned int>&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:6203:7
    #15 0x55605c6c1a46 in llvm::LLParser::parseDefine() /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:716:10
    #16 0x55605c6baa55 in llvm::LLParser::parseTopLevelEntities() /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:522:11
    #17 0x55605c6b9fa6 in llvm::LLParser::Run(bool, llvm::function_ref<std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> (llvm::StringRef, llvm::StringRef)>) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/LLParser.cpp:99:10
    #18 0x55605c6a6c89 in parseAssemblyInto(llvm::MemoryBufferRef, llvm::Module*, llvm::ModuleSummaryIndex*, llvm::SMDiagnostic&, llvm::SlotMapping*, bool, llvm::function_ref<std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> (llvm::StringRef, llvm::StringRef)>) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/Parser.cpp:34:8
    #19 0x55605c6a7a16 in parseAssemblyWithIndex(llvm::MemoryBufferRef, llvm::SMDiagnostic&, llvm::LLVMContext&, llvm::SlotMapping*, bool, llvm::function_ref<std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> (llvm::StringRef, llvm::StringRef)>) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/Parser.cpp:83:7
    #20 0x55605c6a7ffa in parseAssemblyFileWithIndex(llvm::StringRef, llvm::SMDiagnostic&, llvm::LLVMContext&, llvm::SlotMapping*, bool, llvm::function_ref<std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> (llvm::StringRef, llvm::StringRef)>) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/Parser.cpp:113:10
    #21 0x55605c6a7cf9 in llvm::parseAssemblyFileWithIndex(llvm::StringRef, llvm::SMDiagnostic&, llvm::LLVMContext&, llvm::SlotMapping*, llvm::function_ref<std::__1::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> (llvm::StringRef, llvm::StringRef)>) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/AsmParser/Parser.cpp:122:10
    #22 0x55605c6a289d in main /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/tools/llvm-as/llvm-as.cpp:134:22
    #23 0x7fbde3e23a8f  (/lib/x86_64-linux-gnu/libc.so.6+0x23a8f) (BuildId: d320ce4e63925d698610ed423fc4b1f0e8ed51f1)
SUMMARY: AddressSanitizer: 32 byte(s) leaked in 2 allocation(s).
=================================================================
==1078369==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x5582992d4fed in operator new[](unsigned long) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:89:3
    #1 0x55829974557c in getMemory /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Support/APInt.cpp:45:10
    #2 0x55829974557c in llvm::APInt::initSlowCase(llvm::APInt const&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Support/APInt.cpp:86:12
    #3 0x55829942bf84 in APInt /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/ADT/APInt.h:158:7
    #4 0x55829942bf84 in ConstantRange /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/ConstantRange.h:47:21
    #5 0x55829942bf84 in ConstantRangeAttributeImpl /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/IR/AttributeImpl.h:220:58
    #6 0x55829942bf84 in llvm::Attribute::get(llvm::LLVMContext&, llvm::Attribute::AttrKind, llvm::ConstantRange const&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/IR/Attributes.cpp:185:29
    #7 0x55829943cea4 in llvm::AttrBuilder::addConstantRangeAttr(llvm::Attribute::AttrKind, llvm::ConstantRange const&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/IR/Attributes.cpp:1947:23
    #8 0x5582993476f1 in parseAttributeGroupBlock /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:2315:13
    #9 0x5582993476f1 in (anonymous namespace)::BitcodeReader::parseModule(unsigned long, bool, llvm::ParserCallbacks) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:4357:25
    #10 0x5582992ebd74 in parseBitcodeInto /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:4596:10
    #11 0x5582992ebd74 in llvm::BitcodeModule::getModuleImpl(llvm::LLVMContext&, bool, bool, bool, llvm::ParserCallbacks) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:8062:22
    #12 0x5582992eeb50 in llvm::BitcodeModule::getLazyModule(llvm::LLVMContext&, bool, bool, llvm::ParserCallbacks) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:8082:10
    #13 0x5582992dc460 in main /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/tools/llvm-dis/llvm-dis.cpp:205:16
    #14 0x7f361ce23a8f  (/lib/x86_64-linux-gnu/libc.so.6+0x23a8f) (BuildId: d320ce4e63925d698610ed423fc4b1f0e8ed51f1)
Direct leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x5582992d4fed in operator new[](unsigned long) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:89:3
    #1 0x55829974557c in getMemory /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Support/APInt.cpp:45:10
    #2 0x55829974557c in llvm::APInt::initSlowCase(llvm::APInt const&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Support/APInt.cpp:86:12
    #3 0x55829942beff in APInt /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/ADT/APInt.h:158:7
    #4 0x55829942beff in ConstantRange /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/ConstantRange.h:47:21
    #5 0x55829942beff in ConstantRangeAttributeImpl /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/IR/AttributeImpl.h:220:58
    #6 0x55829942beff in llvm::Attribute::get(llvm::LLVMContext&, llvm::Attribute::AttrKind, llvm::ConstantRange const&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/IR/Attributes.cpp:185:29
    #7 0x55829943cea4 in llvm::AttrBuilder::addConstantRangeAttr(llvm::Attribute::AttrKind, llvm::ConstantRange const&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/IR/Attributes.cpp:1947:23
    #8 0x5582993476f1 in parseAttributeGroupBlock /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:2315:13
    #9 0x5582993476f1 in (anonymous namespace)::BitcodeReader::parseModule(unsigned long, bool, llvm::ParserCallbacks) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:4357:25
    #10 0x5582992ebd74 in parseBitcodeInto /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:4596:10
    #11 0x5582992ebd74 in llvm::BitcodeModule::getModuleImpl(llvm::LLVMContext&, bool, bool, bool, llvm::ParserCallbacks) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:8062:22
    #12 0x5582992eeb50 in llvm::BitcodeModule::getLazyModule(llvm::LLVMContext&, bool, bool, llvm::ParserCallbacks) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Bitcode/Reader/BitcodeReader.cpp:8082:10
    #13 0x5582992dc460 in main /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/tools/llvm-dis/llvm-dis.cpp:205:16
    #14 0x7f361ce23a8f  (/lib/x86_64-linux-gnu/libc.so.6+0x23a8f) (BuildId: d320ce4e63925d698610ed423fc4b1f0e8ed51f1)
SUMMARY: AddressSanitizer: 32 byte(s) leaked in 2 allocation(s).
```

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


More information about the llvm-commits mailing list