[all-commits] [llvm/llvm-project] ccd0e9: [lldb][NativePDB] Fix width and signedness of enum...

Nerixyz via All-commits all-commits at lists.llvm.org
Sat Jul 18 01:57:17 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ccd0e982a02fa3be39a98dd98ea6cc1ccaf24d13
      https://github.com/llvm/llvm-project/commit/ccd0e982a02fa3be39a98dd98ea6cc1ccaf24d13
  Author: Nerixyz <nerixdev at outlook.de>
  Date:   2026-07-18 (Sat, 18 Jul 2026)

  Changed paths:
    M lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp
    A lldb/test/API/lang/cpp/enum-limits/Makefile
    A lldb/test/API/lang/cpp/enum-limits/TestCPPEnumLimits.py
    A lldb/test/API/lang/cpp/enum-limits/main.cpp

  Log Message:
  -----------
  [lldb][NativePDB] Fix width and signedness of enum constants (#210338)

Enumerator values aren't always encoded in the correct bit width and
signedness. This happens with both MSVC and Clang.

On MSVC, unsigned 64bit enumerators can be encoded as signed. For
example `ULONGLONG_MAX` will be encoded as `-1`.
Clang/LLVM will always encode the values as unsigned.

Example: https://godbolt.org/z/96YjGW48W.

I fixed this by setting the expected width and signedness when creating
the enumerator constant. We can't use a shell test like for the other
PDB tests, because no output shows the enum values.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list