[all-commits] [llvm/llvm-project] 95b5b6: [lldb][test] Add test for handling conflicting Obj...

Michael Buch via All-commits all-commits at lists.llvm.org
Tue Jun 10 02:58:55 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 95b5b6801ce4c08e1bc92616321cd4127e7c0957
      https://github.com/llvm/llvm-project/commit/95b5b6801ce4c08e1bc92616321cd4127e7c0957
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2025-06-10 (Tue, 10 Jun 2025)

  Changed paths:
    A lldb/test/Shell/Expr/TestObjCxxEnumConflict.test

  Log Message:
  -----------
  [lldb][test] Add test for handling conflicting Objective-C NS_OPTIONS typedefs

Add test that checks whether the expression evaluator can handle
the `NS_ENUM`/`NS_OPTIONS` typedefs from Objective-C `CoreFoundation`.
In the test, `module.h` mimicks the `NS_OPTIONS` typedef from `CoreFoundation`.

The `ClangModulesDeclVendor` currently compiles modules as
C++, so the `MyInt` Clang decl in the module will be a `TypedefType`,
while the DWARF AST parser will produce an `EnumType` (since that's what
the debug-info says). When the `ASTImporter` imports these decls into the
scratch AST, it will fail to re-use one or the other decl because they
aren't structurally equivalent (one is a typedef, the other an enum),
so we end up with two conflicting `MyInt` declarations in the scratch AST
and the expression fails to run due to ambiguity in name lookup.

rdar://151022173



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