[clang] [clang-repl] Lay the basic infrastructure for pretty printing of types (PR #148701)
Vassil Vassilev via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 23 03:37:13 PDT 2025
vgvassilev wrote:
> Apologies, trying to reproduce it locally now.
@qinkunbao, I am stuck reproducing this locally. My platform is ubuntu 22, x86x64:
<details>
```
cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_USE_SANITIZER="Memory" -DLLVM_ENABLE_PROJECTS=clang -DLLVM_TARGETS_TO_BUILD=host -GNinja ~/workspace/sources/llvm-project/llvm
```
</details>
The build seems stuck quite early on.
<details>
```
[6/3927] cd /build/vvassilev/llvm-build/include/llvm/IR && /build/vvassilev/llvm-build/bin/llvm-min-tblgen -gen-intrinsic-enums -I/home/vvassilev/workspace/sources/llvm-project/llvm/include/llvm/IR -I/build/vvassilev/llvm-build/include -I/home/vvassilev/workspace/sources/llvm-project/llvm/include /home/vvassilev/workspace/sources/llvm-project/llvm/include/llvm/IR/Intrinsics.td --write-if-changed -o /build/vvassilev/llvm-build/include/llvm/IR/IntrinsicEnums.inc
FAILED: include/llvm/IR/IntrinsicEnums.inc /build/vvassilev/llvm-build/include/llvm/IR/IntrinsicEnums.inc
cd /build/vvassilev/llvm-build/include/llvm/IR && /build/vvassilev/llvm-build/bin/llvm-min-tblgen -gen-intrinsic-enums -I/home/vvassilev/workspace/sources/llvm-project/llvm/include/llvm/IR -I/build/vvassilev/llvm-build/include -I/home/vvassilev/workspace/sources/llvm-project/llvm/include /home/vvassilev/workspace/sources/llvm-project/llvm/include/llvm/IR/Intrinsics.td --write-if-changed -o /build/vvassilev/llvm-build/include/llvm/IR/IntrinsicEnums.inc
==2257351==WARNING: MemorySanitizer: use-of-uninitialized-value
#0 0x55555580c998 in _M_lower_bound_tr<llvm::StringRef, void> /usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_tree.h:1338:4
#1 0x55555580c998 in _M_find_tr<llvm::StringRef, void> /usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_tree.h:1307:15
#2 0x55555580c998 in find<llvm::StringRef> /usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_map.h:1249:16
#3 0x55555580c998 in getClass /home/vvassilev/workspace/sources/llvm-project/llvm/include/llvm/TableGen/Record.h:1997:22
#4 0x55555580c998 in llvm::TGParser::ParseClassID() /home/vvassilev/workspace/sources/llvm-project/llvm/lib/TableGen/TGParser.cpp:712:34
#5 0x55555581597a in llvm::TGParser::ParseType() /home/vvassilev/workspace/sources/llvm-project/llvm/lib/TableGen/TGParser.cpp:1112:27
#6 0x5555558292ad in llvm::TGParser::ParseDeclaration(llvm::Record*, bool) /home/vvassilev/workspace/sources/llvm-project/llvm/lib/TableGen/TGParser.cpp:3334:23
#7 0x55555582c059 in llvm::TGParser::ParseBodyItem(llvm::Record*) /home/vvassilev/workspace/sources/llvm-project/llvm/lib/TableGen/TGParser.cpp:3535:10
#8 0x55555582dcb3 in llvm::TGParser::ParseBody(llvm::Record*) /home/vvassilev/workspace/sources/llvm-project/llvm/lib/TableGen/TGParser.cpp:3595:9
#9 0x55555582ec38 in llvm::TGParser::ParseObjectBody(llvm::Record*) /home/vvassilev/workspace/sources/llvm-project/llvm/lib/TableGen/TGParser.cpp:3676:17
#10 0x55555583488d in llvm::TGParser::ParseClass() /home/vvassilev/workspace/sources/llvm-project/llvm/lib/TableGen/TGParser.cpp:4077:7
#11 0x55555583b223 in ParseObjectList /home/vvassilev/workspace/sources/llvm-project/llvm/lib/TableGen/TGParser.cpp:4442:9
#12 0x55555583b223 in llvm::TGParser::ParseFile() /home/vvassilev/workspace/sources/llvm-project/llvm/lib/TableGen/TGParser.cpp:4451:7
#13 0x5555557821a2 in llvm::TableGenMain(char const*, std::function<bool (llvm::raw_ostream&, llvm::RecordKeeper const&)>) /home/vvassilev/workspace/sources/llvm-project/llvm/lib/TableGen/Main.cpp:136:14
#14 0x5555556c8dd9 in tblgen_main(int, char**) /home/vvassilev/workspace/sources/llvm-project/llvm/utils/TableGen/Basic/TableGen.cpp:74:10
#15 0x7ffff7a11d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#16 0x7ffff7a11e3f in __libc_start_main csu/../csu/libc-start.c:392:3
#17 0x55555559bfc4 in _start (/build/vvassilev/llvm-build/bin/llvm-min-tblgen+0x47fc4) (BuildId: a34a9dca4d2e72b8e1cb54781b7f445cb8a1b9a2)
SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/vvassilev/workspace/sources/llvm-project/llvm/include/llvm/TableGen/Record.h:1997:22 in getClass
```
</details>
What am I doing wrong?
The msan bot complains about line 202 from:
https://github.com/llvm/llvm-project/blob/33455825428f9e1b7998a66e228da7f6d483acf8/clang/lib/Interpreter/InterpreterValuePrinter.cpp#L200-L204
I did run the failing test with valgrind and it seemed happy. Could that be a false positive?
https://github.com/llvm/llvm-project/pull/148701
More information about the cfe-commits
mailing list