[llvm-dev] Build failure

Paul C. Anagnostopoulos via llvm-dev llvm-dev at lists.llvm.org
Fri Jan 8 10:18:28 PST 2021


At 1/8/2021 01:08 PM, Florian Hahn wrote:

>> Can I trust this message?
>
>Yes, you should be able to trust this message.
>
>The bot builds LLVM with the undefined behavior sanitizer, which will insert runtime checks to catch cases of undefined behavior in the source. You need a version of LLVM that is build with the UBsan enabled to reproduce it.
>
>> TGParser.cpp:3213:22: runtime error: reference binding to null pointer of type 'llvm::Record'
>
>Looks like the code on that line is  https://github.com/llvm/llvm-project/blob/6e2b6351d2cb1feaa88e6c92ba844ab48b4758f9/llvm/lib/TableGen/TGParser.cpp#L3213
>
>    RecordResolver R(*CurRec);
>
>CurRec is a pointer of type llvm::Record. The message ("runtime error: reference binding to null pointer of type 'llvm::Record’) is indicating that a null pointer is de-referenced (so it can be bound to a reference, likely RecordResolver’s constructor takes an argument `Record &`).
>
>So there is a code path executed where CurRec is a nullptr.

I did indeed find the bug in that line of code. But that is line 3212 in my file.  . . . Ah, that's because that build isn't using the file I patched to eliminate the spurious Loc declaration. Okay, that makes sense.

I will push a patch to fix this. Sorry for the mess but thanks for the help!




More information about the llvm-dev mailing list