llvm-project/clang/test/SemaTemplate
Richard Trieu 3bb8b56a5d PR16074, implement warnings to catch pointer to boolean true and pointer to
null comparison when the pointer is known to be non-null.

This catches the array to pointer decay, function to pointer decay and
address of variables.  This does not catch address of function since this
has been previously used to silence a warning.

Pointer to bool conversion is under -Wbool-conversion.
Pointer to null comparison is under -Wtautological-pointer-compare, a sub-group
of -Wtautological-compare.

void foo() {
  int arr[5];
  int x;
  // warn on these conditionals
  if (foo);
  if (arr);
  if (&x);
  if (foo == null);
  if (arr == null);
  if (&x == null);

  if (&foo);  // no warning
}

llvm-svn: 202216
2014-02-26 02:36:06 +00:00
..
ackermann.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
address-spaces.cpp
alias-church-numerals.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
alias-nested-nontag.cpp PR17567: Improve diagnostic for a mistyped constructor name. If we see something 2013-10-15 00:00:26 +00:00
alias-template-template-param.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
alias-templates.cpp Fix for dependent contexts in alias templates. 2013-08-15 23:59:20 +00:00
alignas.cpp Handle alignas(foo...) pack expansions. 2013-02-22 08:32:16 +00:00
ambiguous-ovl-print.cpp
anonymous-union.cpp
array-to-pointer-decay.cpp [analyzer] Fix a crash that occurs when processing an rvalue array. 2013-06-06 00:19:36 +00:00
atomics.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
attributes.cpp There is no such thing as __attribute__((align)); that's a __declspec attribute. Fixing these test cases to use the proper spelling for their syntax. 2014-01-13 21:30:03 +00:00
canonical-expr-type-0x.cpp PR12438: Profile a reference to a type template parameter by depth and index, 2012-04-02 18:53:24 +00:00
canonical-expr-type.cpp Sema: Do not merge new decls with invalid, old decls 2013-07-07 23:49:50 +00:00
class-template-ctor-initializer.cpp Don't produce diagnostics for missing ctor-initializers during template 2012-09-25 00:23:05 +00:00
class-template-decl.cpp Sema: Reject templates in all extern "C" contexts. 2014-02-02 16:35:43 +00:00
class-template-id-2.cpp
class-template-id.cpp Add quotation marks to template names in diagnostics. 2013-03-05 06:21:38 +00:00
class-template-spec.cpp PR16519, PR18009: When checking a partial specialization for uses of its own 2014-02-09 00:54:43 +00:00
constexpr-instantiate.cpp sizeof(void) etc. should be a hard error in C++. 2013-08-13 22:26:42 +00:00
constructor-template.cpp
copy-ctor-assign.cpp
crash-8204126.cpp
crash-10438657.cpp When we're checking access in a dependent context, don't try to look 2011-11-14 23:00:43 +00:00
current-instantiation.cpp When rebuilding a DependentScopeDeclRefExpr, perform a lookup into the scope 2012-10-23 19:56:01 +00:00
deduction-crash.cpp Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
deduction.cpp Restore the C-style cast hack for enum template arguments, 2011-07-15 07:47:58 +00:00
default-arguments-cxx0x.cpp Sema: Subst type default template args earlier 2013-08-28 23:48:32 +00:00
default-arguments.cpp Sema: Subst type default template args earlier 2013-08-28 23:48:32 +00:00
default-expr-arguments-2.cpp Implement AST dumper for Decls. 2012-12-20 02:09:13 +00:00
default-expr-arguments.cpp PR14428: When instantiating a 'new' expression, if we had a non-dependent 2012-11-26 08:32:48 +00:00
delegating-constructors.cpp Make delegating initializers use a similar codepath to base initializers in dependent contexts. PR12890. 2012-05-19 23:35:23 +00:00
dependent-base-classes.cpp Recover properly if a class member declaration starts with a scope specifier 2012-05-09 08:23:23 +00:00
dependent-base-member-init.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
dependent-class-member-operator.cpp
dependent-expr.cpp PR18152: When computing the semantic form for an initializer list, keep track 2013-12-06 01:27:24 +00:00
dependent-names-no-std.cpp Hyphenate "argument-dependent". 2011-06-14 12:59:25 +00:00
dependent-names.cpp Revert "Don't require -re suffix on -verify directives with regexes." 2013-12-14 01:07:05 +00:00
dependent-sized_array.cpp PR13788: Don't perform checks on the initializer of a dependently-typed 2012-11-09 23:03:14 +00:00
dependent-template-recover.cpp
dependent-type-identity.cpp
derived.cpp [test] Add test case for rdar://14183893. 2013-06-28 23:47:22 +00:00
destructor-template.cpp Correctly profile CXXPseudoDestructorExprs. 2013-08-09 23:37:05 +00:00
elaborated-type-specifier.cpp
enum-argument.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
enum-forward.cpp Shift Microsoft enum extensions from -fms-extensions to -fms-compatibility, so -fms-extensions doesn't affect enum semantics in incompatible ways. <rdar://problem/10657186>. 2012-02-16 05:20:44 +00:00
example-typelist.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
exception-spec-crash.cpp Fix missed exception spec checks and crashes 2013-10-18 05:54:19 +00:00
explicit-instantiation.cpp Revert "Don't require -re suffix on -verify directives with regexes." 2013-12-14 01:07:05 +00:00
explicit-specialization-member.cpp PR18246: When performing template argument deduction to decide which template 2013-12-14 03:18:05 +00:00
ext-vector-type.cpp Eliminate a 'default' case in template argument deduction, where we 2011-06-15 16:02:29 +00:00
extension-sfinae.cpp Extra test for r194444. 2013-11-12 02:42:08 +00:00
extern-templates.cpp
fibonacci.cpp
friend-template.cpp Issue a diagnostic if we see a templated friend declaration that we do not 2013-11-08 18:59:56 +00:00
friend.cpp Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
fun-template-def.cpp Fold together the two implementations of 6.7.3p2 in SemaType. Fix two bugs, each of which was only present in one version: 2013-03-28 00:03:10 +00:00
function-template-specialization-noreturn.cpp Ignore noreturn when checking function template specializations 2013-09-10 22:21:37 +00:00
function-template-specialization.cpp FIXME fix: improving diagnostics for template arguments deduction of class templates and explicit specializations 2013-07-19 23:00:19 +00:00
implicit-instantiation-1.cpp
inject-templated-friend-post.cpp Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
inject-templated-friend.cpp Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
injected-class-name.cpp
instantiate-anonymous-union.cpp
instantiate-array.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
instantiate-attr.cpp Add missing check to warning for packed attribute. PR14259. 2012-11-07 00:35:20 +00:00
instantiate-c99.cpp
instantiate-call.cpp Hyphenate "argument-dependent". 2011-06-14 12:59:25 +00:00
instantiate-case.cpp
instantiate-cast.cpp
instantiate-clang.cpp
instantiate-complete.cpp Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
instantiate-decl-dtor.cpp
instantiate-decl-init.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
instantiate-declref-ice.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
instantiate-declref.cpp Implement DR1330 in C++11 mode, to support libstdc++4.7 which uses it. 2012-04-17 00:58:00 +00:00
instantiate-deeply.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
instantiate-default-assignment-operator.cpp
instantiate-dependent-nested-name.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
instantiate-elab-type-specifier.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
instantiate-enum-2.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
instantiate-enum.cpp Do not add enums to prototype scope in C++ modes. 2014-02-22 03:05:49 +00:00
instantiate-exception-spec-cxx11.cpp Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00
instantiate-exception-spec.cpp Use the appropriate SourceLocation for the template backtrace when doing 2014-01-11 02:37:12 +00:00
instantiate-expr-1.cpp Replace inline asm constraint "=a" by the more general constraint "=r". 2012-05-22 11:03:10 +00:00
instantiate-expr-2.cpp
instantiate-expr-3.cpp Properly diagnose using abstract and incomplete types in va_arg 2011-06-14 05:17:32 +00:00
instantiate-expr-4.cpp Fix crash due to missing array-to-pointer decay when instantiating an unresolved 2011-10-26 06:49:26 +00:00
instantiate-expr-5.cpp Fix crash-on-invalid: only use TransformAddressOfOperand when transforming the 2013-05-21 23:29:46 +00:00
instantiate-expr-basic.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
instantiate-field.cpp
instantiate-friend-class.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
instantiate-function-1.cpp Promote the extension warning for attempts to catch a reference or 2012-01-24 19:01:26 +00:00
instantiate-function-1.mm
instantiate-function-2.cpp [Sema] Don't look for the instantiation of a local extern decl in a different 2013-11-27 08:34:14 +00:00
instantiate-function-params.cpp Use the appropriate SourceLocation for the template backtrace when doing 2014-01-11 02:37:12 +00:00
instantiate-init.cpp Properly track l-paren of a CXXFucntionalCastExpr. 2013-08-15 22:02:56 +00:00
instantiate-invalid.cpp
instantiate-local-class.cpp Sema: Don't crash when trying to instantiate a local class with an invalid base specifier 2014-02-22 00:17:46 +00:00
instantiate-member-class.cpp Implement DR85: Redeclaration of member is forbidden 2013-06-11 03:51:23 +00:00
instantiate-member-expr.cpp Unrevert r166268, reverted in r166272, with a fix for the issue which Nick 2012-10-21 03:28:35 +00:00
instantiate-member-initializers.cpp Fix regression in r170489: when instantiating a direct initializer which is a 2012-12-21 08:13:35 +00:00
instantiate-member-pointers.cpp Sema: Enforce C++11 pointer-to-member template arguments should rules 2013-12-10 00:40:58 +00:00
instantiate-member-template.cpp
instantiate-method.cpp Revert "Don't require -re suffix on -verify directives with regexes." 2013-12-14 01:07:05 +00:00
instantiate-non-dependent-types.cpp
instantiate-non-type-template-parameter.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
instantiate-objc-1.mm Fix test cases broken by 155936. 2012-05-01 21:29:03 +00:00
instantiate-overload-candidates.cpp Implement DR61: Address of ambiguous bound methods should be disallowed 2013-06-11 03:56:29 +00:00
instantiate-overloaded-arrow.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
instantiate-partial-spec.cpp If a partial specialization of a member template is declared within a class 2013-09-26 03:49:48 +00:00
instantiate-self.cpp During the instantiation of a class template specialization, that 2012-03-22 03:35:28 +00:00
instantiate-sizeof.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
instantiate-static-var.cpp Change the diagnostics which said 'accepted as an extension' to instead say 2011-12-29 21:57:33 +00:00
instantiate-subscript.cpp
instantiate-template-template-parm.cpp
instantiate-try-catch.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
instantiate-type.cpp <rdar://problem/13094134> Don't try to wire up typedef names for invalid anonymous tag declarations encountered during template instantiation. 2013-03-08 22:15:15 +00:00
instantiate-typedef.cpp
instantiate-typeof.cpp A couple minor bug-fixes for template instantiation for expressions which are sometimes potentially evaluated. 2012-02-29 04:03:55 +00:00
instantiate-using-decl.cpp Fix name lookup with dependent using decls. 2013-08-20 00:39:40 +00:00
instantiate-var-template.cpp PR17846, PR17848: don't build a VarTemplateSpecializationDecl for a use of a 2014-02-03 20:09:56 +00:00
instantiation-backtrace.cpp Use the appropriate SourceLocation for the template backtrace when doing 2014-01-11 02:37:12 +00:00
instantiation-default-1.cpp
instantiation-default-2.cpp
instantiation-default-3.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
instantiation-depth-defarg.cpp PR13368: Halve the instantiation depth of this test again. Apparently, FreeBSD 2012-07-15 23:29:50 +00:00
instantiation-depth-exception-spec.cpp Fix bug which sometimes resulted in further diagnostics being produced after a 2012-09-22 00:53:56 +00:00
instantiation-depth-subst-2.cpp Use the appropriate SourceLocation for the template backtrace when doing 2014-01-11 02:37:12 +00:00
instantiation-depth-subst.cpp Use the appropriate SourceLocation for the template backtrace when doing 2014-01-11 02:37:12 +00:00
instantiation-depth.cpp Final piece of core issue 1330: delay computing the exception specification of 2012-07-27 04:22:15 +00:00
instantiation-order.cpp Use the appropriate SourceLocation for the template backtrace when doing 2014-01-11 02:37:12 +00:00
issue150.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
lookup-dependent-bases.cpp Use -fms-compatibility to trigger lookup into dep. bases 2013-09-20 17:04:25 +00:00
member-access-ambig.cpp PR41111, PR5925, PR13210: Teach tentative parsing to annotate identifiers and 2012-08-18 00:55:03 +00:00
member-access-expr.cpp
member-function-template.cpp
member-inclass-init-value-dependent.cpp Replace r134583's fix for PR10290 with one which also works for non-value-dependent cases. 2011-07-20 00:12:52 +00:00
member-initializers.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
member-template-access-expr.cpp Improve some of the conversion warnings to fire on conversion to bool. 2012-05-15 16:56:36 +00:00
metafun-apply.cpp
missing-class-keyword-crash.cpp Fix a crash-on-invalid. 2011-08-25 23:22:24 +00:00
ms-class-specialization-class-scope.cpp PR18232: implement instantiation for class-scope explicit specializations of 2013-12-14 01:04:22 +00:00
ms-function-specialization-class-scope.cpp Add a testcase and a FIXME for an accepts-invalid. 2013-12-13 22:28:48 +00:00
ms-if-exists.cpp Implement the Microsoft __if_exists/if_not_exists extension in initializer-list. 2011-12-12 23:24:39 +00:00
ms-lookup-template-base-classes.cpp Revert "Don't require -re suffix on -verify directives with regexes." 2013-12-14 01:07:05 +00:00
nested-incomplete-class.cpp Represent C++ direct initializers as ParenListExprs before semantic analysis 2012-02-11 23:51:47 +00:00
nested-linkage.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
nested-name-spec-template.cpp
nested-template.cpp Add test. 2013-06-20 20:56:57 +00:00
operator-function-id-template.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
operator-template.cpp Use the appropriate SourceLocation for the template backtrace when doing 2014-01-11 02:37:12 +00:00
overload-candidates.cpp Part of PR15673: If a function template has a default argument in which 2013-07-04 01:01:24 +00:00
overload-uneval.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
partial-spec-instantiate.cpp
pragma-ms_struct.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
qualified-id.cpp Replace a FIXME with a diagnostic when we can't resolve the 2012-03-18 00:15:42 +00:00
qualified-names-diag.cpp
rdar9173693.cpp
recovery-crash.cpp Fix to PR16225 (Assert-on-invalid: isa<LabelDecl>(D) && "declaration not instantiated in this scope") 2013-08-10 12:00:21 +00:00
recursive-template-instantiation.cpp Improve 'failed template argument deduction' diagnostic for the case where we 2013-01-31 05:19:49 +00:00
resolve-single-template-id.cpp PR16074, implement warnings to catch pointer to boolean true and pointer to 2014-02-26 02:36:06 +00:00
self-comparison.cpp
temp.cpp
temp_arg.cpp Add quotation marks to template names in diagnostics. 2013-03-05 06:21:38 +00:00
temp_arg_nontype.cpp Revert "Don't require -re suffix on -verify directives with regexes." 2013-12-14 01:07:05 +00:00
temp_arg_nontype_cxx11.cpp PR15360: nullptr as a non-type template argument to a function type non-type template parameter 2013-02-27 22:10:40 +00:00
temp_arg_template.cpp Richard makes a good point, clean up this test. 2013-08-28 05:45:53 +00:00
temp_arg_type.cpp Add quotation marks to template names in diagnostics. 2013-03-05 06:21:38 +00:00
temp_class_order.cpp
temp_class_spec.cpp
temp_class_spec_blocks.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
temp_class_spec_neg.cpp Change the diagnostics which said 'accepted as an extension' to instead say 2011-12-29 21:57:33 +00:00
temp_explicit.cpp Switch to the C++11 warning flags in tests. 2011-10-18 05:54:07 +00:00
temp_explicit_cxx0x.cpp Refactor the checking for explicit template instantiations being performed in 2011-10-18 02:28:33 +00:00
temp_func_order.cpp
template-class-traits.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
template-decl-fail.cpp
template-id-expr.cpp Fixed instantiation of DependentScopeDeclRefExpr. 2012-02-06 14:31:00 +00:00
template-id-printing.cpp Fixed instantiation of DependentScopeDeclRefExpr. 2012-02-06 14:31:00 +00:00
typename-specifier-2.cpp
typename-specifier-3.cpp
typename-specifier-4.cpp
typename-specifier.cpp Revert "Don't require -re suffix on -verify directives with regexes." 2013-12-14 01:07:05 +00:00
typo-dependent-name.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
unresolved-construct.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
unused-variables.cpp
value-dependent-null-pointer-constant.cpp
virtual-member-functions.cpp Remove the -cxx-abi command-line flag. 2014-01-14 19:35:09 +00:00