From: Jordan Rose Date: Fri, 15 Jun 2012 18:19:43 +0000 (+0000) Subject: Test that -Wauto-var-id fires in value-dependent contexts. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=294e38664f9eefe0ca665739e65dd4fae0108dab;p=clang Test that -Wauto-var-id fires in value-dependent contexts. There was already a test that it did not fire in type-dependent contexts. This was already behaving correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158530 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/SemaObjCXX/arc-0x.mm b/test/SemaObjCXX/arc-0x.mm index 88b3ab1178..49ce145438 100644 --- a/test/SemaObjCXX/arc-0x.mm +++ b/test/SemaObjCXX/arc-0x.mm @@ -60,15 +60,21 @@ void testAutoId(id obj) { auto x = obj; // expected-warning{{'auto' deduced as 'id' in declaration of 'x'}} } +@interface Array ++ (instancetype)new; +- (id)objectAtIndex:(int)index; +@end + // ...but don't warn if it's coming from a template parameter. -template -void autoTemplateFunction(T param, id obj) { +template +void autoTemplateFunction(T param, id obj, Array *arr) { auto x = param; // no-warning auto y = obj; // expected-warning{{'auto' deduced as 'id' in declaration of 'y'}} + auto z = [arr objectAtIndex:N]; // expected-warning{{'auto' deduced as 'id' in declaration of 'z'}} } void testAutoIdTemplate(id obj) { - autoTemplateFunction(obj, obj); // no-warning + autoTemplateFunction(obj, obj, [Array new]); // no-warning }