llvm-project/clang/test/SemaObjCXX
Jordan Rose a0a86bed71 Sema: Preserve attributes on parameters in instantiated function templates.
This was causing correctness issues for ARC and the static analyzer when a
function template has "consumed" Objective-C object parameters (i.e.
parameters that will be released by the function before returning).

The fix is threefold:
(1) Actually copy over the attributes from old ParmVarDecls to new ones.
(2) Have Sema::BuildFunctionType only work for building FunctionProtoTypes,
    which it was doing anyway. This allows us to pass an ExtProtoInfo
    instead of a plain ExtInfo and several flags.
(3) Drop param attributes as part of StripImplicitInstantiation, which is
    used when an implicit instantiation is followed by an explicit one.

<rdar://problem/12685622>

llvm-svn: 176728
2013-03-08 22:25:36 +00:00
..
Inputs Automatic Reference Counting. 2011-06-15 23:02:42 +00:00
NSString-type.mm objective-c++: Type of an objc string literal is NSString, not 'id'. 2012-02-23 22:51:36 +00:00
abstract-class-type-ivar.mm objective-C: remove use of 'ivar' in favor of 2012-09-24 22:00:36 +00:00
arc-0x.mm One can override an Objective-C ARC ownership qualifier that came from 2013-01-17 23:59:28 +00:00
arc-bool-conversion.mm 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
arc-bridged-cast.mm Make -fobjc-nonfragile-abi the -cc1 default, since it's the 2011-10-02 01:16:38 +00:00
arc-libstdcxx.mm 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
arc-memfunc.mm 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
arc-nsconsumed-errors.mm Sema: Preserve attributes on parameters in instantiated function templates. 2013-03-08 22:25:36 +00:00
arc-objc-lifetime.mm objective-C++ test for my previous patch. 2012-09-12 21:27:26 +00:00
arc-overloading.mm Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
arc-ppe.mm Fix a couple issues where we didn't correctly delay diagnostics in PotentiallyPotentiallyEvaluated contexts. In preparation for making sizeof() PotentiallyPotentiallyEvaluated. 2012-01-18 01:05:54 +00:00
arc-system-header.mm Make -fobjc-nonfragile-abi the -cc1 default, since it's the 2011-10-02 01:16:38 +00:00
arc-templates.mm In Objective-C ARC, completely ignore ownership qualifiers on the 2013-01-17 23:36:45 +00:00
arc-type-conversion.mm Teach the ARC compiler to not require __bridge casts when 2011-10-17 18:40:02 +00:00
arc-type-traits.mm 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
arc-unavailable-for-weakref.mm Improve text of a diagnostic. 2011-10-31 17:27:06 +00:00
arc-unbridged-cast.mm objective-C arc: Diagnostic can not say to use bridge 2013-02-22 01:22:48 +00:00
argument-dependent-lookup.mm 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
blocks.mm Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
boxing-illegal-types.mm Allow objc @() syntax for enum types. 2012-05-15 19:17:44 +00:00
capturing-flexible-array-in-block.mm put back diagnostics when flexible members are captured 2013-01-09 00:09:15 +00:00
category-lookup.mm When disambiguating an expression-statement from a declaraton-statement, if the 2012-08-23 20:19:14 +00:00
composite-objc-pointertype.mm 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
conditional-expr.mm
const-cast.mm
conversion-ranking.mm 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
conversion-to-objc-pointer-2.mm 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
conversion-to-objc-pointer.mm 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
crash.mm HandleDeclarator() returns NULL for semantic disasters. Deal with it 2012-04-30 18:13:01 +00:00
cstyle-block-pointer-cast.mm Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
cstyle-cast.mm Provide overload diagnostics when explicit casts involving class types fail. 2011-02-14 18:34:10 +00:00
cxxoperator-selector.mm Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
debugger-cast-result-to-id.mm Improve LLDB's implicit cast-to-id to work with C++11 auto and any Objective-C object type <rdar://problem/13338107>. 2013-03-07 22:57:58 +00:00
debugger-support.mm 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
decltype.mm Add a simple test involving decltype on Objective-C properties and ivars 2012-10-24 14:13:21 +00:00
deduction.mm
delay-parsing-cfunctions.mm 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
delay-parsing-cplusfuncs.mm 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
delay-parsing-func-tryblock.mm 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
exceptions-fragile.mm Restructure how the driver communicates information about the 2012-06-20 06:18:46 +00:00
expr-objcxx.mm 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
foreach-block.mm
foreach.mm objective-c++11: extend c++11 range-based loop to iterate 2012-07-06 19:04:04 +00:00
format-strings.mm -Wformat: Don't check format strings in uninstantiated templates. 2012-10-02 01:49:54 +00:00
fragile-abi-object-assign.m Restructure how the driver communicates information about the 2012-06-20 06:18:46 +00:00
function-pointer-void-star.mm 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
gc-attributes.mm Rename objc_lifetime -> objc_ownership, and modify diagnostics to talk about 'ownership', not 'lifetime'. 2011-06-24 00:08:59 +00:00
goto.mm Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
instantiate-expr.mm Fix capitalization of Objective-C in diagnostic. 2013-01-03 01:30:20 +00:00
instantiate-message.mm
instantiate-method-return.mm 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-stmt.mm objective-c: improve diagnostic when collection expression is 2012-06-22 15:37:00 +00:00
ivar-construct.mm Teach RequireCompleteType about multi-dimensional arrays. Fixes 2012-04-23 16:42:52 +00:00
ivar-lookup.mm 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
ivar-reference-type.mm
ivar-struct.mm 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
linkage-spec.mm 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
literals.mm objective-c modern translator: buildit objc bool 2012-04-16 21:03:30 +00:00
message.mm Restructure how the driver communicates information about the 2012-06-20 06:18:46 +00:00
namespace-lookup.mm 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
null_objc_pointer.mm 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
nullptr.mm 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
objc-container-subscripting.mm Capitalize "Objective-C" and "C++" in user-facing contexts. 2012-07-19 18:10:18 +00:00
objc-decls-inside-namespace.mm Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
objc-extern-c.mm Don't crash when a duplicate interface/protocol is inside an extern "C" context. 2011-11-13 22:08:30 +00:00
objc-pointer-conv.mm Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
objc2-merge-gc-attribue-decl.mm
overload-1.mm
overload-gc.mm 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
overload.mm Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
parameters.mm Diagnose C++ abstract parameters for Objective-C methods. 2011-04-23 02:46:06 +00:00
pointer-to-objc-pointer-conv.mm clang/test: Suppress two tests on LLP64 target, Windows x64. 2012-11-19 10:00:59 +00:00
propert-dot-error.mm objective-C: remove use of 'ivar' in favor of 2012-09-24 22:00:36 +00:00
properties.mm Perform non-overload placeholder conversions on the operands 2013-03-04 01:30:55 +00:00
property-reference.mm super and class property reference expressions don't need to be 2012-04-13 15:53:08 +00:00
property-synthesis-error.mm Fix Objective-C implicit property synthesis for C++ classes so we use valid 2012-10-18 20:14:08 +00:00
property-type-mismatch.mm 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
protocol-lookup.mm Improvements to vexing-parse warnings. Make the no-parameters case more 2012-07-30 21:30:52 +00:00
references.mm 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
reinterpret-cast-objc-pointertype.mm 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
related-result-type-inference.mm Eliminate the -f[no]objc-infer-related-result-type flags; there's no 2011-06-13 16:42:53 +00:00
reserved-keyword-methods.mm 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
standard-conversion-to-bool.mm 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
static-cast.mm 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
unknown-anytype.mm Accept and pass arguments to __unknown_anytype in argument 2012-11-14 00:49:39 +00:00
vararg-non-pod.mm [frontend] Don't allow a mapping to a warning override an error/fatal mapping. 2012-02-03 01:49:51 +00:00
vla.mm 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
void_to_obj.mm Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
warn-missing-super.mm objective-C: Improving diagnostocs for missing call to 2012-09-10 16:51:09 +00:00
warn-strict-selector-match.mm Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00