llvm-project/clang/test/SemaCXX
Douglas Gregor 45cf7e3d2a Rework our handling of copy construction of temporaries, which was a
poor (and wrong) approximation of the actual rules governing when to
build a copy and when it can be elided.

The correct implementation is actually simpler than the
approximation. When we only enumerate constructors as part of
initialization (e.g., for direct initialization or when we're copying
from a class type or one of its derived classes), we don't create a
copy. When we enumerate all conversion functions, we do create a
copy. Before, we created some extra copies and missed some
others. The new test copy-initialization.cpp shows a case where we
missed creating a (required, non-elidable) copy as part of a
user-defined conversion, which resulted in a miscompile. This commit
also fixes PR6757, where the missing copy made us reject well-formed
code in the ternary operator.

This commit also cleans up our handling of copy elision in the case
where we create an extra copy of a temporary object, which became
necessary now that we produce the right copies. The code that seeks to
find the temporary object being copied has moved into
Expr::getTemporaryObject(); it used to have two different
not-quite-the-same implementations, one in Sema and one in CodeGen.

Note that we still do not attempt to perform the named return value
optimization, so we miss copy elisions for return values and throw
expressions.

llvm-svn: 100196
2010-04-02 18:24:57 +00:00
..
Inputs Work around an annoying, non-standard optimization in the glibc 2010-02-12 07:32:17 +00:00
PR5086-ambig-resolution-enum.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
PR6562.cpp Fix PR6562. If a type is dependent, we don't know if it will have implicit 2010-03-13 18:12:56 +00:00
PR6618.cpp Fix PR6618. 2010-03-21 22:56:43 +00:00
__null.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
abstract.cpp Correctly calcluate abstract-ness in the case where an implicitly declared 2009-12-16 20:00:27 +00:00
access-base-class.cpp When elevating access along an inheritance path, initialize the computed 2010-03-18 23:49:19 +00:00
access-control-check.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
access.cpp Set a member's access specifier even if it doesn't match the previous specifier. 2009-12-23 00:37:40 +00:00
addr-of-overloaded-function.cpp Switch file-scope assignment initialization over to InitializationSequence. 2009-12-22 02:10:53 +00:00
address-of-temporary.cpp Introduce a new kind of failed result for isLvalue/isModifiableLvalue 2010-02-16 21:39:57 +00:00
address-of.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
aggregate-initialization.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
alignof-sizeof-reference.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
ambig-user-defined-conversions.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
ambiguous-builtin-unary-operator.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
anonymous-union.cpp Patch fixes a lookup bug in c++'s anonymous union member 2010-01-22 18:30:17 +00:00
array-bound-merge.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
arrow-operator.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
attr-after-definition.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
attr-cxx0x.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
attr-deprecated.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
attr-format.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
attr-noreturn.cpp allow the noreturn attribute to be used in class methods 2009-12-23 23:40:33 +00:00
attr-sentinel.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
attr-unavailable.cpp Change the printing of OR_Deleted overload results to print all the candidates, 2010-01-08 04:41:39 +00:00
attr-weakref.cpp Add support for the weakref attribute. We still produce "alias weak" as llvm-gcc does, but are more strict on what uses of weakref we accept. 2010-02-23 22:00:30 +00:00
auto-cxx0x.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
auto-cxx98.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
blocks-1.cpp Fixed a crash specific to blocks in c++ uncovered by an internal 2010-02-18 20:31:02 +00:00
blocks.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
bool.cpp Initialization improvements: addition of string initialization and a few 2009-12-19 08:11:05 +00:00
builtin-exception-spec.cpp Work around an annoying, non-standard optimization in the glibc 2010-02-12 07:32:17 +00:00
builtin-ptrtomember-ambig.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
builtin-ptrtomember-overload-1.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
builtin-ptrtomember-overload.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
builtins.cpp In C++, allow builtins to be referred to via qualified name lookup, e.g., 2010-02-12 05:48:04 +00:00
c99.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
cast-conversion.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
cast-explicit-ctor.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
class-base-member-init.cpp Diagnose multiple base and member initializers in class templates. 2010-04-02 05:42:15 +00:00
class-layout.cpp Support __attribute__((packed)) (along with other attributes) at the 2010-03-29 14:42:08 +00:00
class-names.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
class.cpp Provide a test case for PR6629. 2010-03-17 01:31:25 +00:00
comma.cpp Implement the lvalue-to-rvalue conversion where needed. The 2010-02-03 00:27:59 +00:00
compare.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
complex-overload.cpp Add a new conversion rank to classify conversions between complex and scalar 2010-02-25 07:20:54 +00:00
composite-pointer-type.cpp When computing the composite pointer type for relational comparisons, 2010-02-25 22:29:57 +00:00
condition.cpp Pretty-print anonymous types using their kind and presumed location. 2010-03-19 07:56:44 +00:00
conditional-expr.cpp Rework our handling of copy construction of temporaries, which was a 2010-04-02 18:24:57 +00:00
const-cast.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
constant-expression.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
constructor-initializer.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
constructor-recovery.cpp Switch default-initialization of variables of class type (or array thereof) over to InitializationSequence. I could swear that this fixes a PR somewhere, but I couldn't figure out which one 2009-12-20 22:01:25 +00:00
constructor.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
conversion-delete-expr.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
conversion-function.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
convert-to-bool.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
converting-constructor.cpp Improve the reporting of non-viable overload candidates by noting the reason 2010-01-13 00:25:19 +00:00
copy-assignment.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
copy-constructor-error.cpp Add test case from PR6064, which now works 2010-03-02 18:48:07 +00:00
copy-initialization.cpp Rework our handling of copy construction of temporaries, which was a 2010-04-02 18:24:57 +00:00
cstyle-cast.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
cxx-member-pointer-op.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
dcl_ambig_res.cpp Migrate the mish-mash of declaration checks in 2010-02-09 07:26:29 +00:00
dcl_init_aggr.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
decl-expr-ambiguity.cpp Improve the unused-value check to look into comma expressions and filter out 2010-03-12 07:11:26 +00:00
decl-init-ref.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
decltype-crash.cpp Introduce a centralized routine in Sema for diagnosing failed lookups (when 2009-12-16 08:11:27 +00:00
decltype-overloaded-functions.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
decltype-pr4444.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
decltype-pr4448.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
decltype-this.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
default-argument-temporaries.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
default-assignment-operator.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
default-constructor-initializers.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
default1.cpp Switch default arguments over to InitializationSequence. 2009-12-22 02:46:13 +00:00
default2.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
deleted-function.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
dependent-types.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
derived-to-base-ambig.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
destructor.cpp Do not mark the destructor of a function parameter's type. Fixes PR6709. 2010-03-26 06:57:13 +00:00
direct-initializer.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
do-while-scope.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
dynamic-cast.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
elaborated-type-specifier.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
empty-class-layout.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
enum.cpp Implement the lvalue-to-rvalue conversion where needed. The 2010-02-03 00:27:59 +00:00
exception-spec.cpp When a declaration of a function is missing an exception specification 2010-03-24 07:14:45 +00:00
exceptions.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
explicit.cpp Fix a pretty bad bug where if a constructor (or conversion function) was marked as 'explicit', but then defined out-of-line, we would not treat it as being explicit. 2010-01-24 17:15:04 +00:00
expressions.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
fntype-decl.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
format-attribute.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
friend-class-nodecl.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
friend.cpp Test case for PR5134. 2009-12-23 01:09:14 +00:00
function-overloaded-redecl.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
function-redecl.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
function-type-qual.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
functional-cast.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
i-c-e-cxx.cpp References to const int parameters with ICE default arguments are not ICEs. 2010-02-24 09:03:18 +00:00
illegal-member-initialization.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
implicit-int.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
implicit-member-functions.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
implicit-virtual-member-functions.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
incomplete-call.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
inherit.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
inline.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
invalid-member-expr.cpp Fix PR6327: restore invariants when there's a parse error in an initializer. 2010-03-31 02:13:20 +00:00
invalid-template-specifier.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
libstdcxx_is_pod_hack.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
linkage-spec.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
literal-operators.cpp Implement semantic checking for C++ literal operators. 2010-01-13 09:01:02 +00:00
literal-type.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
local-classes.cpp Fix an amusing typo that completely the re-introduction of parameters 2010-03-02 01:29:43 +00:00
member-expr-anonymous-union.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
member-expr-static.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
member-expr.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
member-location.cpp Switch initialization of parameters in a call over to 2009-12-22 07:24:36 +00:00
member-name-lookup.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
member-operator-expr.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
member-pointer-size.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
member-pointer.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
member-pointers-2.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
missing-members.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
ms-exception-spec.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
namespace-alias.cpp Compare namespaces properly when looking for redeclarations of 2010-03-26 22:59:39 +00:00
namespace.cpp Make sure to properly track the anonymous namespace that lives inside 2010-03-24 00:46:35 +00:00
nested-name-spec.cpp Improve diagnostics when an elaborated-type-specifer containing a 2010-03-31 23:17:41 +00:00
new-delete-predefined-decl-2.cpp When performing name lookup for the allocation or deallocation 2010-03-24 05:07:21 +00:00
new-delete-predefined-decl.cpp Improve a test slightly 2010-02-12 06:08:51 +00:00
new-delete.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
no-implicit-builtin-decls.cpp Introduce a centralized routine in Sema for diagnosing failed lookups (when 2009-12-16 08:11:27 +00:00
nullptr.cpp Initialization improvements: addition of string initialization and a few 2009-12-19 08:11:05 +00:00
offsetof.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
overload-call-copycon.cpp Fix a major oversight in the comparison of standard conversion 2010-01-27 03:51:04 +00:00
overload-call.cpp Reference binding via user-defined conversion can compute a binding 2010-03-07 23:17:44 +00:00
overload-decl.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
overload-member-call.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
overload-value-dep-arg.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
overloaded-builtin-operators.cpp Improve the reporting of non-viable overload candidates by noting the reason 2010-01-13 00:25:19 +00:00
overloaded-operator-decl.cpp A function declarator with a non-identifier name in an anonymous class 2010-02-05 06:12:42 +00:00
overloaded-operator.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
prefetch-enum.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
primary-base.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
pseudo-destructors.cpp ActOnPseudoDestructorExpr now performs all semantic analysis for 2010-02-24 21:29:12 +00:00
ptrtomember-badcall.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
ptrtomember-overload-resolution.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
qual-id-test.cpp When recovering from a qualified typedef name, don't clear out the 2010-03-23 15:26:55 +00:00
qualification-conversion.cpp Correctly refer to element CVR qualifications when determining if a type is 2009-12-29 07:16:59 +00:00
qualified-id-lookup.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
qualified-names-diag.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
qualified-names-print.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
ref-init-ambiguous.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
references.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
reinterpret-cast.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
reinterpret-fn-obj-pedantic.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
return-stack-addr.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
return.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
rval-references-xfail.cpp Switch the initialization required by return statements over to the 2009-12-18 05:02:21 +00:00
rval-references.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
statements.cpp In C++98/03, an uninitialized variable that has POD class type will be 2010-03-08 02:45:10 +00:00
static-array-member.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
static-assert.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
static-cast-complete-type.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
static-cast.cpp Switch static_cast from the old reference-initialization code (via 2010-03-24 23:38:29 +00:00
static-initializers.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
struct-class-redecl.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
switch-0x.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
switch.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
templated-friend-decl.cpp Workaround for friend template instantiation crash in PR5848, from Keir Mierle! 2010-02-07 10:31:35 +00:00
this.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
trivial-constructor.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
trivial-destructor.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
type-convert-construct.cpp Warn about the deprecated string literal -> char* conversion. Fixes PR6428. 2010-02-28 18:30:25 +00:00
type-definition-in-specifier.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
type-dependent-exprs.cpp Introduce a centralized routine in Sema for diagnosing failed lookups (when 2009-12-16 08:11:27 +00:00
type-traits-incomplete.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
type-traits.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
typedef-redecl.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
typeid.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
types_compatible_p.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
unknown-type-name.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
unreachable-catch-clauses.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
unreachable-code.cpp Add an unreachable code checker. 2010-01-13 02:59:54 +00:00
unused.cpp Improve the test for unused-expression warnings slightly 2010-01-16 18:17:21 +00:00
user-defined-conversions.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
using-decl-1.cpp Handle redeclarations found by ADL deterministically and reasonably. 2010-01-26 07:16:45 +00:00
using-decl-pr4441.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
using-decl-pr4450.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
using-decl-templates.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
using-directive.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
value-dependent-exprs.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
value-initialization.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
vararg-default-arg.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
vararg-non-pod.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
vector-casts.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
virtual-member-functions-key-function.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
virtual-override.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
virtuals.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
warn-assignment-condition.cpp Improve the fix-its for -Wparentheses to ensure that the fix-it 2010-01-08 00:20:23 +00:00
warn-char-subscripts.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
warn-for-var-in-else.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
warn-missing-noreturn.cpp Don't diagnose missing noreturns for uninstantiated templates. Fixes PR6247. 2010-02-06 05:31:15 +00:00
warn-missing-prototypes.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
warn-reorder-ctor-initialization.cpp Fix a nasty bug in the virtual base computation which would lead to us initializing virtual bases in the wrong order. 2010-03-29 05:13:12 +00:00
warn-shadow.cpp Implement -Wshadow for parameter declarations as well. 2010-03-20 04:12:52 +00:00
warn-sign-compare.cpp Promote enum types during -Wsign-compare. Fixes some spurious warnings, 2010-03-19 18:53:26 +00:00
warn-unreachable.cpp Always add CallExpr as block-level expression. Inline-based interprocedural 2010-02-24 02:19:28 +00:00
warn-unused-value.cpp Improve the unused-value check to look into comma expressions and filter out 2010-03-12 07:11:26 +00:00
warn-unused-variables.cpp When we have a dependent direct initializer but not a dependent 2010-02-11 22:55:30 +00:00
warn-weak-vtables.cpp Implement a warning diagnostic for weak vtables. Fixes PR6116. 2010-02-06 02:27:10 +00:00
wchar_t.cpp fix PR5917, L'x' was getting the wrong type in c++ mode. Per 2009-12-30 21:19:39 +00:00