[clang] [libclang/python] Fix evaluation of the unsigned enumeration values, #108766 (PR #108769)
Dmitry Fursov via cfe-commits
cfe-commits at lists.llvm.org
Sun Sep 22 02:23:53 PDT 2024
================
@@ -1952,6 +1952,8 @@ def enum_value(self):
underlying_type = self.type
if underlying_type.kind == TypeKind.ENUM:
underlying_type = underlying_type.get_declaration().enum_type
+ if underlying_type.kind == TypeKind.ELABORATED:
----------------
fursov wrote:
I ran the check-clang-python tests using clang 15 - it also does not resolve the enum type to the integer types. But since there was no elaborated type yet, it returns TypeKind.TYPEDEF instead (that matches the godbolt example from above - the TUintType in clang15 - typedef, in clang16 - elaborated and only then typedef).
The test like in patch above (test_enum_values_on_elaborated_type) fails same way as on "main" branch:
```
self.assertEqual(ham.enum_value, 255)
AssertionError: -1 != 255
```
https://github.com/llvm/llvm-project/pull/108769
More information about the cfe-commits
mailing list