llvm-project/clang/test
Peter Collingbourne b289fe64c1 [ms-cxxabi] Look up operator delete() at every virtual dtor declaration.
While the C++ standard requires that this lookup take place only at the
definition point of a virtual destructor (C++11 [class.dtor]p12), the
Microsoft ABI may require the compiler to emit a deleting destructor
for any virtual destructor declared in the TU, including ones without
a body, requiring an operator delete() lookup for every virtual
destructor declaration.  The result of the lookup should be the same
no matter which declaration is used (except in weird corner cases).

This change will cause us to reject some valid TUs in Microsoft ABI
mode, e.g.:

struct A {
  void operator delete(void *);
};

struct B {
  void operator delete(void *);
};

struct C : A, B {
  virtual ~C();
};

As Richard points out, every virtual function declared in a TU
(including this virtual destructor) is odr-used, so it must be defined
in any program which declares it, or the program is ill formed, no
diagnostic required.  Because we know that any definition of this
destructor will cause the lookup to fail, the compiler can choose to
issue a diagnostic here.

Differential Revision: http://llvm-reviews.chandlerc.com/D822

llvm-svn: 182270
2013-05-20 14:12:25 +00:00
..
ARCMT Point diagnostics that complain about a use of a selector in an objc message, to the selector location. 2013-05-01 00:24:09 +00:00
ASTMerge Extended VerifyDiagnosticConsumer to also verify source file for diagnostic. 2013-04-17 08:06:46 +00:00
Analysis [analyzer] Address Jordan's review comments for r182058 2013-05-17 20:51:16 +00:00
CXX Tests and status for core issues 1-50. 2013-05-19 07:22:38 +00:00
CodeCompletion PR14381: Never skip constexpr function bodies when code-completing. We may need 2012-11-19 21:13:18 +00:00
CodeGen Implement __declspec(selectany) under -fms-extensions 2013-05-20 14:02:37 +00:00
CodeGenCUDA Use kernel metadata to differentiate between kernel and device 2013-03-30 14:38:24 +00:00
CodeGenCXX Revert "Revert "Debug Info: Using declarations/DW_TAG_imported_declaration of variables, types, and functions."" 2013-05-20 04:58:53 +00:00
CodeGenObjC ObjC Debug Info: Emit the correct method names for accessors for 2013-05-17 23:49:10 +00:00
CodeGenObjCXX Correctly emit certain implicit references to 'self' even within 2013-05-03 07:33:41 +00:00
CodeGenOpenCL Use kernel metadata to differentiate between kernel and device 2013-03-30 14:38:24 +00:00
Coverage Objective-C: When using super.prop, property should be 2013-03-11 22:26:33 +00:00
Driver Fix a logic bug in the handling of -fmath-errno in the driver. We would 2013-05-18 20:47:36 +00:00
FixIt The 'constexpr implies const' rule for non-static member functions is gone in 2013-04-21 01:08:50 +00:00
Format Clang-format: allow -style="{yaml/json}" on command line 2013-05-19 00:53:30 +00:00
Frontend Extended VerifyDiagnosticConsumer to also verify source file for diagnostic. 2013-04-17 08:06:46 +00:00
Headers Remove dependence on system headers from this test, to try to make the Windows bots happier. 2013-05-09 22:45:27 +00:00
Index libclang: add a function to check whether a member function is pure virtual 2013-05-17 18:38:35 +00:00
Lexer Better diagnostics for string initialization. 2013-05-15 11:03:04 +00:00
Misc AST dumping: if a declaration has an uncomputed or uninstantiated exception specification, include that in the dump. 2013-05-17 02:09:46 +00:00
Modules Add arm_neon.h to the builtin intrinsics module map. 2013-05-20 14:07:18 +00:00
OpenMP OpenMP threadprivate with qualified names. 2013-05-13 04:18:18 +00:00
PCH First pass of semantic analysis for init-captures: check the initializer, build 2013-05-16 06:20:58 +00:00
Parser Objective-C parsing. Error recovery when category implementation 2013-05-17 17:58:11 +00:00
Preprocessor OpenBSD/sparc64 uses long long for int64_t and intmax_t. 2013-05-19 17:53:37 +00:00
Rewriter Objective-C: Correctly encode 'retain' and 'copy' for readonly properties. 2013-05-08 23:47:40 +00:00
Sema Return QualType() when a too large array is attempting to be created. This 2013-05-16 01:46:09 +00:00
SemaCUDA
SemaCXX [ms-cxxabi] Look up operator delete() at every virtual dtor declaration. 2013-05-20 14:12:25 +00:00
SemaObjC Objective-C arc: Diagnose when user attempts to 2013-05-16 19:08:44 +00:00
SemaObjCXX Objective-C++ (and c++) Sema: Patch fixes a sema crash when gnu’s ?: extension 2013-05-17 16:29:36 +00:00
SemaOpenCL Add an error to check that all program scope variables are in the constant address space in OpenCL. 2013-04-05 20:14:50 +00:00
SemaTemplate Check a pointer is not null before attempting to use it. This prevents a 2013-05-16 02:14:08 +00:00
TableGen Revert "tg-fixits.td: fixup for Linux" 2013-01-11 02:37:47 +00:00
Tooling Use 'env' in tests that set environment variables. 2013-05-15 01:45:37 +00:00
Unit Propagate path to ASan/MSan symbolizer into test environment to produce useful reports on errors. 2013-04-04 07:41:20 +00:00
CMakeLists.txt Re-add clang-format tests to clang/test. 2013-03-25 09:14:25 +00:00
Makefile
TestRunner.sh
cxx-sections.data
lit.cfg Revert r179671 and just pass a triple to the test for a platform with known 2013-04-17 17:27:51 +00:00
lit.site.cfg.in Add asan/msan to the list of available features in LIT test runner. Mark ASan-unfriendly test as XFAIL. 2013-03-26 08:28:18 +00:00
make_test_dirs.pl