llvm-project/clang/test
David Majnemer d96b99740d MS ABI: Don't force bases to have an inheritance model
Previously, assigning an inheritance model to a derived class would
trigger further assiginments to the various bases of the class.  This
was done to fix a bug where we couldn't handle an implicit
base-to-derived conversion for pointers-to-members when the conversion
was ambiguous at an earlier point.

However, this is not how the MS scheme works.  Instead, assign
inheritance models to *just* the class which owns to declaration we
ended up referencing.

N.B.  This result is surprising in many ways.  It means that it is
possible for a base to have a "larger" inheritance model than it's
derived classes.  It also means that bases in the conversion path do not
get assigned a model.

struct A { void f(); void f(int); };
struct B : A {};
struct C : B {};
void f() { void (C::*x)() = &A::f; }

We can only begin to assign an inheritance model *after* we've seen the
address-of but *before* we've done the implicit conversion the more
derived pointer-to-member type.  After that point, both 'A' and 'C' will
have an inheritance model but 'B' will not.  Surprising, right?

llvm-svn: 215174
2014-08-08 00:10:39 +00:00
..
ARCMT [analyzer] Check for NULL passed to CFAutorelease. 2014-06-21 23:50:40 +00:00
ASTMerge
Analysis Re-applying r214962. 2014-08-07 10:42:17 +00:00
CXX Sema: Disallow taking the address of a bitfield coming from preincrement 2014-07-31 04:52:13 +00:00
CodeCompletion When completing Objective-C instance method invocations, perform a contextual conversion to an Objective-C pointer type of the target expression if needed. This fixes code completion of method invocations where the target is a smart pointer that has an explicit conversion operator to an Objective-C type. 2014-02-28 19:07:22 +00:00
CodeGen [AVX512] Add intrinsic for valignd/q 2014-08-05 17:28:23 +00:00
CodeGenCUDA Move all CUDA testing inputs to Inputs/ subdirectory inside the tests. 2014-04-28 22:21:28 +00:00
CodeGenCXX MS ABI: Don't force bases to have an inheritance model 2014-08-08 00:10:39 +00:00
CodeGenObjC Objective-C arc. Switch the Objective-C dictionary literal in ARC mode 2014-08-07 20:57:35 +00:00
CodeGenObjCXX Objective-C ARC. More code for Objective-C's 2014-08-06 23:40:31 +00:00
CodeGenOpenCL Add OpenCL/SPIR kernel_arg_base_type metadata node 2014-07-30 14:39:53 +00:00
Coverage Revert "clang/test/Driver/crash-report.c: This requires rewriter for -frewrite-includes. [PR20321]" 2014-07-16 15:12:48 +00:00
Driver Driver: Add tests for -fprofile-arcs and -fno-profile-arcs 2014-08-07 03:58:32 +00:00
FixIt Make clang's rewrite engine a core feature 2014-07-16 16:48:33 +00:00
Format Revert "clang/test/Driver/crash-report.c: This requires rewriter for -frewrite-includes. [PR20321]" 2014-07-16 15:12:48 +00:00
Frontend Use -Rblah, not -Wblah, to control remark diagnostics. This was always the 2014-08-07 00:24:21 +00:00
Headers AVX-512: Added intrinsics to clang. 2014-07-22 11:31:39 +00:00
Index Add IR Mangler for more stable mangling. 2014-08-01 15:01:10 +00:00
Integration Split out header integration tests 2014-05-04 13:00:32 +00:00
Layout AST: Propagate 'AlignIsRequired' though many levels of typedefs 2014-08-04 05:11:01 +00:00
Lexer Don't destroy MacroInfos if we find the macro definition is invalid; it'll get 2014-08-03 23:41:04 +00:00
Misc Provide warning name for property attribute warning 2014-07-29 19:45:49 +00:00
Modules [modules] When emitting an update record containing the body of a destructor, 2014-08-07 18:53:08 +00:00
OpenMP [OPENMP] Improved DSA processing of the loop control variables for loop directives. 2014-07-25 06:27:47 +00:00
PCH [TEST] Improve tests for #pragma clang optimize off/on 2014-07-28 14:33:17 +00:00
Parser A static_assert declaration cannot be a template; adding the diagnostic for this instead of silently accepting and producing possibly-unexpected behavior. 2014-08-04 20:28:35 +00:00
Preprocessor [SKX] Enabling SKX target (Skylake server chip) 2014-07-30 13:53:40 +00:00
Profile InstrProf: Update for LLVM API change 2014-08-01 22:50:16 +00:00
Rewriter Make clang's rewrite engine a core feature 2014-07-16 16:48:33 +00:00
Sema MachO: set sizeof result type to what embedded headers expect. 2014-08-05 11:07:26 +00:00
SemaCUDA Automate attribute argument count semantic checking when there are variadic or optional arguments present. With this, the only time you should have to manually check attribute argument counts is when HasCustomParsing is set to true, or when you have variadic arguments that aren't really variadic (like ownership_holds and friends). 2014-07-31 16:37:04 +00:00
SemaCXX MS ABI: Handle member function pointers returning a member data pointer 2014-08-07 22:56:13 +00:00
SemaObjC Objective-C arc. Switch the Objective-C dictionary literal in ARC mode 2014-08-07 20:57:35 +00:00
SemaObjCXX Fix crash when accessing a property of an invalid interface 2014-08-04 17:28:11 +00:00
SemaOpenCL [OpenCL] Reject reqd_work_group_size(X, Y, Z) where X, Y or Z == 0. 2014-05-19 14:41:38 +00:00
SemaTemplate Fix tests Clang::Sema/statements.c and Clang::SemaTemplate/instantiate-expr-1.cpp when AArch64 is the default target. 2014-08-04 10:13:09 +00:00
TableGen
Tooling clang/test: Introduce the feature "staticanalyzer" for --enable-clang-static-analyzer. 2014-07-16 12:05:45 +00:00
Unit Let test/Unit/lit.cfg add config.shlibdir to $PATH on DLL platforms like cygming. 2014-07-04 05:11:55 +00:00
VFS Make -Wincomplete-umbrella go through the VFS 2014-06-25 23:53:43 +00:00
.clang-format
CMakeLists.txt Make clang's rewrite engine a core feature 2014-07-16 16:48:33 +00:00
Makefile Make clang's rewrite engine a core feature 2014-07-16 16:48:33 +00:00
TestRunner.sh
cxx-sections.data
lit.cfg Revert "clang/test/Driver/crash-report.c: This requires rewriter for -frewrite-includes. [PR20321]" 2014-07-16 15:12:48 +00:00
lit.site.cfg.in Make clang's rewrite engine a core feature 2014-07-16 16:48:33 +00:00
make_test_dirs.pl