diff options
author | Michael Buch <michaelbuch12@gmail.com> | 2024-12-17 16:40:10 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-17 16:40:10 +0000 |
commit | 9fc54c0e8049553a30c17a3698445d58800916c9 (patch) | |
tree | 0f698111641376d2256502ffe277173e8d9b71ff /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | 34a44b20888479cf934014e3aa85c563725df69a (diff) | |
download | llvm-9fc54c0e8049553a30c17a3698445d58800916c9.zip llvm-9fc54c0e8049553a30c17a3698445d58800916c9.tar.gz llvm-9fc54c0e8049553a30c17a3698445d58800916c9.tar.bz2 |
[clang][DebugInfo][gmodules] Set runtimeLang on ObjC forward declarations (#120154)
In Objective-C, forward declarations are currently represented as:
```
DW_TAG_structure_type
DW_AT_name ("Foo")
DW_AT_declaration (true)
DW_AT_APPLE_runtime_class (DW_LANG_ObjC)
```
However, when compiling with `-gmodules`, when a class definition is
turned into a forward declaration within a `DW_TAG_module`, the DIE for
the forward declaration looks as follows:
```
DW_TAG_structure_type
DW_AT_name ("Foo")
DW_AT_declaration (true)
```
Note the absence of `DW_AT_APPLE_runtime_class`. With recent changes in
LLDB, not being able to differentiate between C++ and Objective-C
forward declarations has become problematic (see attached test-case and
explanation in https://github.com/llvm/llvm-project/pull/119860).
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions