[PATCH] D104827: [DebugInfo] Enforce implicit constraints on `distinct` MDNodes

Duncan P. N. Exon Smith via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 2 12:29:39 PDT 2021


That looks bad — best to revert while that's investigated.

> On 2021 Jul  2, at 00:04, Mikael Holmén via Phabricator <reviews at reviews.llvm.org> wrote:
> 
> uabelho added a comment.
> 
> Hi,
> 
> We've noticed that this patch changes things so bcfiles created with the patch cannot be parsed with binaries built before it.
> E.g if I create foo.bc with a clang binary built from commit 8cd35ad854ab <https://reviews.llvm.org/rG8cd35ad854ab4458fd509447359066ea3578b494> (this patch) with:
> 
>  clang -save-temps foo.c -S -g
> 
> and then try to run opt built from aad87328fab <https://reviews.llvm.org/rGaad87328fabff9382bac0b452c83934515e6d0c8> (the commit before this patch) with
> 
>  opt foo.bc -S > /dev/null
> 
> it results in
> 
>  opt: ../lib/Bitcode/Reader/MetadataLoader.cpp:366: (anonymous namespace)::(anonymous namespace)::PlaceholderQueue::~PlaceholderQueue(): Assertion `empty() && "PlaceholderQueue hasn't been flushed before being destroyed"' failed.
>  PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
>  Stack dump:
>  0.	Program arguments: build-all-builtins/bin/opt foo.bc -S
>   #0 0x0000000002a11623 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (build-all-builtins/bin/opt+0x2a11623)
>   #1 0x0000000002a0f2de llvm::sys::RunSignalHandlers() (build-all-builtins/bin/opt+0x2a0f2de)
>   #2 0x0000000002a119a6 SignalHandler(int) Signals.cpp:0:0
>   #3 0x00007f2c97079630 __restore_rt sigaction.c:0:0
>   #4 0x00007f2c947ac387 raise (/lib64/libc.so.6+0x36387)
>   #5 0x00007f2c947ada78 abort (/lib64/libc.so.6+0x37a78)
>   #6 0x00007f2c947a51a6 __assert_fail_base (/lib64/libc.so.6+0x2f1a6)
>   #7 0x00007f2c947a5252 (/lib64/libc.so.6+0x2f252)
>   #8 0x0000000003398a64 llvm::MetadataLoader::MetadataLoaderImpl::parseMetadata(bool) (build-all-builtins/bin/opt+0x3398a64)
>   #9 0x00000000033a19ac llvm::MetadataLoader::parseMetadata(bool) (build-all-builtins/bin/opt+0x33a19ac)
>  #10 0x00000000033730a8 (anonymous namespace)::BitcodeReader::parseFunctionBody(llvm::Function*) BitcodeReader.cpp:0:0
>  #11 0x0000000003370f7c (anonymous namespace)::BitcodeReader::materialize(llvm::GlobalValue*) BitcodeReader.cpp:0:0
>  #12 0x00000000033720aa (anonymous namespace)::BitcodeReader::materializeModule() BitcodeReader.cpp:0:0
>  #13 0x000000000221fc8a llvm::Module::materializeAll() (build-all-builtins/bin/opt+0x221fc8a)
>  #14 0x000000000336acb1 llvm::BitcodeModule::getModuleImpl(llvm::LLVMContext&, bool, bool, bool, llvm::function_ref<llvm::Optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > (llvm::StringRef)>) (build-all-builtins/bin/opt+0x336acb1)
>  #15 0x000000000336ef60 llvm::parseBitcodeFile(llvm::MemoryBufferRef, llvm::LLVMContext&, llvm::function_ref<llvm::Optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > (llvm::StringRef)>) (build-all-builtins/bin/opt+0x336ef60)
>  #16 0x00000000024521a0 llvm::parseIR(llvm::MemoryBufferRef, llvm::SMDiagnostic&, llvm::LLVMContext&, llvm::function_ref<llvm::Optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > (llvm::StringRef)>) (build-all-builtins/bin/opt+0x24521a0)
>  #17 0x000000000245262e llvm::parseIRFile(llvm::StringRef, llvm::SMDiagnostic&, llvm::LLVMContext&, llvm::function_ref<llvm::Optional<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > (llvm::StringRef)>) (build-all-builtins/bin/opt+0x245262e)
>  #18 0x0000000000782acb main (build-all-builtins/bin/opt+0x782acb)
>  #19 0x00007f2c94798555 __libc_start_main (/lib64/libc.so.6+0x22555)
>  #20 0x000000000076f800 _start (build-all-builtins/bin/opt+0x76f800)
>  Abort
> 
> I suppose this is not expected?
> 
> F17715352: foo.bc <https://reviews.llvm.org/F17715352>
> 
> 
> Repository:
>  rG LLVM Github Monorepo
> 
> CHANGES SINCE LAST ACTION
>  https://reviews.llvm.org/D104827/new/
> 
> https://reviews.llvm.org/D104827
> 



More information about the llvm-commits mailing list