llvm-project/clang/test
Raphael Isemann ccfab8e459 [ObjC][DWARF] Emit DW_AT_APPLE_objc_direct for methods marked as __attribute__((objc_direct))
Summary:
With DWARF5 it is no longer possible to distinguish normal methods and methods with `__attribute__((objc_direct))` by just looking at the debug information
as they are both now children of the of the DW_TAG_structure_type that defines them (before only the `__attribute__((objc_direct))` methods were children).

This means that in LLDB we are no longer able to create a correct Clang AST of a module by just looking at the debug information. Instead we would
need to call the Objective-C runtime to see which of the methods have a `__attribute__((objc_direct))` and then add the attribute to our own Clang AST
depending on what the runtime returns. This would mean that we either let the module AST be dependent on the Objective-C runtime (which doesn't
seem right) or we retroactively add the missing attribute to the imported AST in our expressions.

A third option is to annotate methods with `__attribute__((objc_direct))` as `DW_AT_APPLE_objc_direct` which is what this patch implements. This way
LLDB doesn't have to call the runtime for any `__attribute__((objc_direct))` method and the AST in our module will already be correct when we create it.

Reviewers: aprantl, SouraVX

Reviewed By: aprantl

Subscribers: hiraditya, cfe-commits, llvm-commits

Tags: #clang, #llvm, #debug-info

Differential Revision: https://reviews.llvm.org/D71201
2019-12-17 09:40:36 +01:00
..
ARCMT
AST [AST] Enable expression of OpenCL language address spaces an attribute 2019-12-05 12:24:06 +03:00
ASTMerge
Analysis [analyzer] Add support for namespaces to GenericTaintChecker 2019-12-15 12:11:22 +01:00
CXX If constant evaluation fails due to an unspecified pointer comparison, 2019-12-16 17:49:45 -08:00
ClangScanDeps Revert "[clang][clang-scan-deps] Aggregate the full dependency information." 2019-12-11 16:35:55 -08:00
CodeCompletion [clangd] Show lambda signature for lambda autocompletions 2019-11-22 12:48:06 +01:00
CodeGen [WebAssembly] Setting export_name implies llvm.used 2019-12-16 14:48:38 -08:00
CodeGenCUDA clang: Add -fconvergent-functions flag 2019-11-19 23:20:15 +05:30
CodeGenCXX [c++20] P1959R0: Remove support for std::*_equality. 2019-12-16 17:49:45 -08:00
CodeGenCoroutines
CodeGenObjC [ObjC][DWARF] Emit DW_AT_APPLE_objc_direct for methods marked as __attribute__((objc_direct)) 2019-12-17 09:40:36 +01:00
CodeGenObjCXX Debug Info: Strengthen the synthesized-property-cleanup.mm test, NFC 2019-12-10 13:39:22 -08:00
CodeGenOpenCL [OpenCL] Fix mangling of single-overload builtins 2019-12-03 11:09:16 +00:00
CodeGenOpenCLCXX [OpenCL] Handle address space conversions for constexpr (PR44177) 2019-12-09 11:09:16 +00:00
Coverage
CoverageMapping Revert "[Coverage] Revise format to reduce binary size" 2019-12-04 10:35:14 -08:00
Driver [MinGW] Implicitly add .exe suffix if not provided 2019-12-17 10:08:39 +02:00
FixIt
Format [clang-format] Proposal for clang-format to give compiler style warnings 2019-10-13 14:51:45 +00:00
Frontend [LTO] Support for embedding bitcode section during LTO 2019-12-12 12:34:19 -08:00
Headers [ARM][CMSE] Add CMSE header and builtins 2019-12-12 15:01:14 +00:00
Import Tighten up CHECK lines added in a9f10ebffa to work on ARM. 2019-12-05 18:35:08 -08:00
Index Fix `sed -e s@FOO@%/S@` and similar when there's @'s in the working directory 2019-12-03 15:44:01 -08:00
Integration
InterfaceStubs [clang][IFS] Allow 2 output files when using -o and -c with clang IFS stubs. 2019-12-09 14:47:17 -05:00
Layout
Lexer Mark the major papers for C++20 consistent comparisons as "done", and 2019-12-15 22:20:06 -08:00
Misc [WebAssembly] Add new `export_name` clang attribute for controlling wasm export names 2019-12-11 11:54:57 -08:00
Modules Fix `sed -e s@FOO@%/S@` and similar when there's @'s in the working directory 2019-12-03 15:44:01 -08:00
OpenMP [OPENMP50]Add if clause in target teams idistribute simd directive. 2019-12-16 13:20:57 -05:00
PCH [c++20] P1959R0: Remove support for std::*_equality. 2019-12-16 17:49:45 -08:00
Parser [Diagnsotics] Small Improvement on -Wmisleading-indentation 2019-12-12 14:52:47 +01:00
Preprocessor [PS4] Predefine the __SCE__ macro for the x86_64-scei-ps4 triple 2019-12-12 11:00:09 -08:00
Profile Revert "[Coverage] Revise format to reduce binary size" 2019-12-04 10:35:14 -08:00
Refactor
Rewriter
Sema [c++20] Add deprecation warnings for the expression forms deprecated by P1120R0. 2019-12-16 17:49:45 -08:00
SemaCUDA
SemaCXX Check whether the destination is a complete type in a static_cast (or 2019-12-16 18:33:35 -08:00
SemaObjC Set a source location for Objective-C accessor stubs 2019-12-05 12:45:10 -08:00
SemaObjCXX [ObjC] Diagnose implicit type coercion from ObjC 'Class' to object 2019-10-17 15:27:04 +00:00
SemaOpenCL [Sema] Improve diagnostic about addr spaces for overload candidates 2019-12-13 12:35:18 +00:00
SemaOpenCLCXX [Sema] Improve diagnostic about addr spaces for overload candidates 2019-12-13 12:35:18 +00:00
SemaSYCL [SYCL] Add sycl_kernel attribute for accelerated code outlining 2019-12-03 16:13:22 +03:00
SemaTemplate Update line number after previous patch added an additional unsupported 2019-12-12 14:45:05 -08:00
TableGen
Templight
Tooling Prefer 'env not' over 'not env' in tests. 2019-10-14 01:41:56 +00:00
Unit
VFS Fix `sed -e s@FOO@%/S@` and similar when there's @'s in the working directory 2019-12-03 15:44:01 -08:00
clang-rename
.clang-format
CMakeLists.txt [gen_ast_dump_json_test.py] Copy to binary directory to omit --clang argument 2019-11-15 12:52:56 +00:00
TestRunner.sh
cxx-sections.data
lit.cfg.py Revert "[analyzer] Add test directory for scan-build." 2019-11-05 14:03:36 -08:00
lit.site.cfg.py.in
make_test_dirs.pl