llvm-project/clang/test
Saleem Abdulrasool f591e36b89 AST: support protocol conformances on id/class/interfaces in MS ABI
Add support for mangling ObjC protocol conformances in MS ABI as if they are
COM interfaces. By diverging from the itanium mangling of `objc_protocol`
prefixed names, this approach allows for a semi-reasonable, albeit of
questionable sanity, undecoration via existing tooling. There is also the
possibility of adding an extension and taking part of the namespace to add the
conformance via the `L` and `Z` "modifiers", but the existing tooling would not
be able to properly undecorated the symbol even though incidentally `undname`
currently produces something legible while wine's implementation is not able to
cope with the extension.

This allows for the disambiguation of overloads where the parameter differs
only in the protocol conformance of the ObjC type, e.g.

```
@protocol P;
void f(std::vector<id>);
void f(std::vector<id<P>>);
```

which clang would previously fail due to the mangling being identical as the
protocol conformance was ignored.

llvm-svn: 323547
2018-01-26 19:08:26 +00:00
..
ARCMT Avoid assumption that lit tests are writable. NFC 2018-01-08 15:05:01 +00:00
ASTMerge [ASTImporter] Support LambdaExprs and improve template support 2018-01-26 11:36:54 +00:00
Analysis [NFC] fix trivial typos in comments and documents 2018-01-26 08:15:52 +00:00
CXX DR126: partially implement the const-correct rules for exception handler matching. 2018-01-13 05:05:45 +00:00
CodeCompletion [CodeComplete] Omit templated constructors from member list too. 2018-01-22 20:44:47 +00:00
CodeGen [CodeGen] Decorate aggregate accesses with TBAA tags 2018-01-25 14:21:55 +00:00
CodeGenCUDA [CUDA] CUDA has no device-side library builtins. 2018-01-23 19:08:18 +00:00
CodeGenCXX Don't create hidden dllimport global values. 2018-01-24 18:58:32 +00:00
CodeGenCoroutines [coroutines] Pass coro func args to promise ctor 2018-01-24 22:15:42 +00:00
CodeGenObjC CodeGen: use `llvm.used` for ObjC protocols 2018-01-23 19:35:51 +00:00
CodeGenObjCXX AST: support protocol conformances on id/class/interfaces in MS ABI 2018-01-26 19:08:26 +00:00
CodeGenOpenCL Change memcpy/memove/memset to have dest and source alignment attributes (Step 1). 2018-01-19 17:12:54 +00:00
Coverage [Analyzer] Add support for displaying cross-file diagnostic paths in HTML output 2017-08-03 18:12:22 +00:00
CoverageMapping [Parse] Forward brace locations to TypeConstructExpr 2018-01-17 18:53:51 +00:00
Driver [Driver] Add an -fexperimental-isel driver option to enable/disable GlobalISel. 2018-01-26 00:27:22 +00:00
FixIt Add a "vexing parse" warning for ambiguity between a variable declaration and a 2017-09-29 23:57:25 +00:00
Format [clang] Get rid of "%T" expansions 2017-08-15 19:47:06 +00:00
Frontend [Driver] Suggest correctly spelled driver options 2018-01-06 00:25:40 +00:00
Headers In stdbool.h, define bool, false, true only in gnu++98 2017-12-08 08:28:08 +00:00
Import [ASTImporter] Support LambdaExprs and improve template support 2018-01-26 11:36:54 +00:00
Index [CodeComplete] only respect LoadExternal hint at namespace/tu scope 2018-01-24 17:50:20 +00:00
Integration Fix the test fix from r312181 2017-08-30 23:26:38 +00:00
Layout
Lexer [Lex] Avoid out-of-bounds dereference in LexAngledStringLiteral. 2018-01-12 18:54:35 +00:00
Misc Track in the AST whether the operand to a UnaryOperator can overflow and then use that logic when evaluating constant expressions and emitting codegen. 2018-01-09 13:07:03 +00:00
Modules Allow BlockDecl in CXXRecord scope to have no access specifier. 2018-01-19 20:46:19 +00:00
OpenMP [OPENMP] Remove more empty SourceLocations() from the code. 2018-01-23 18:12:38 +00:00
PCH Avoid assumption that lit tests are writable (in a couple more places). NFC 2018-01-09 09:32:53 +00:00
Parser Factor out comparison handling for arithmetic types. 2018-01-08 21:12:04 +00:00
Preprocessor [X86] Define __IBT__ when -mibt is specified. 2018-01-26 18:31:14 +00:00
Profile [PGO] Detect more structural changes with the stable hash 2017-11-14 23:56:53 +00:00
Refactor [refactor][extract] avoid extracting expressions from types in functions 2017-11-14 18:59:01 +00:00
Rewriter [clang] Remove unit test which uses reverse-iterate flag 2017-08-24 22:40:32 +00:00
Sema Reland "[CodeGen] Fix crash when a function taking transparent union is redeclared." 2018-01-22 22:29:24 +00:00
SemaCUDA [CUDA] Report "unsupported VLA" errors only on device side. 2017-11-28 18:51:42 +00:00
SemaCXX [coroutines] Pass coro func args to promise ctor 2018-01-24 22:15:42 +00:00
SemaObjC PR35815: Separate out the ns-consumed diagnostic into an error and 2018-01-03 23:52:42 +00:00
SemaObjCXX Re-commit r321223, which adds a printing policy to the ASTDumper. 2017-12-21 21:42:42 +00:00
SemaOpenCL [OpenCL] Add "cles_khr_int64" extension. 2018-01-26 11:48:46 +00:00
SemaTemplate In C++17, when instantiating an out-of-line definition of an inline static data 2018-01-10 23:08:26 +00:00
TableGen
Tooling [tooling] Make compile_flags.txt negative test more hermetic 2017-11-14 15:22:34 +00:00
Unit [lit] Set shlibpath_var on Solaris 2017-11-27 13:33:19 +00:00
VFS Avoid assumption that lit tests are writable. NFC 2018-01-08 15:05:01 +00:00
clang-rename [clang-rename] Fix and enable the failing TemplatedClassFunction test. 2017-10-25 08:25:25 +00:00
.clang-format
CMakeLists.txt [cmake] Follow-up to rL320494. 2017-12-12 19:47:40 +00:00
TestRunner.sh
cxx-sections.data
lit.cfg.py [debuginfo] Remove temporary FIXME. 2017-12-14 22:12:46 +00:00
lit.site.cfg.py.in [lit] Add host_cxx to lit config 2017-10-10 17:53:45 +00:00
make_test_dirs.pl