|  | // RUN: %clang_cc1 -fsyntax-only -verify %s | 
|  |  | 
|  | // PR10283 | 
|  | void min(); //expected-note {{'min' declared here}} | 
|  | void min(int); | 
|  |  | 
|  | template <typename T> void max(T); //expected-note {{'max' declared here}} | 
|  |  | 
|  | void f() { | 
|  | fin(); //expected-error {{use of undeclared identifier 'fin'; did you mean 'min'}} | 
|  | fax(0); //expected-error {{use of undeclared identifier 'fax'; did you mean 'max'}} | 
|  | } | 
|  |  | 
|  | template <typename T> void somefunc(T*, T*); //expected-note {{'somefunc' declared here}} | 
|  | template <typename T> void somefunc(const T[]); //expected-note {{'somefunc' declared here}} | 
|  | template <typename T1, typename T2> void somefunc(T1*, T2*); //expected-note {{'somefunc' declared here}} | 
|  | template <typename T1, typename T2> void somefunc(T1*, const T2[]); //expected-note 2 {{'somefunc' declared here}} | 
|  |  | 
|  | void c() { | 
|  | int *i = 0, *j = 0; | 
|  | const int x[] = {1, 2, 3}; | 
|  | long *l = 0; | 
|  | somefun(i, j); //expected-error {{use of undeclared identifier 'somefun'; did you mean 'somefunc'?}} | 
|  | somefun(x); //expected-error {{use of undeclared identifier 'somefun'; did you mean 'somefunc'?}} | 
|  | somefun(i, l); //expected-error {{use of undeclared identifier 'somefun'; did you mean 'somefunc'?}} | 
|  | somefun(l, x); //expected-error {{use of undeclared identifier 'somefun'; did you mean 'somefunc'?}} | 
|  | somefun(i, x); //expected-error {{use of undeclared identifier 'somefun'; did you mean 'somefunc'?}} | 
|  | } |