1 | // RUN: %clang_cc1 -fsyntax-only -verify %s |
2 | |
3 | // PR10283 |
4 | void min(); //expected-note {{'min' declared here}} |
5 | void min(int); |
6 | |
7 | template <typename T> void max(T); //expected-note {{'max' declared here}} |
8 | |
9 | void f() { |
10 | fin(); //expected-error {{use of undeclared identifier 'fin'; did you mean 'min'}} |
11 | fax(0); //expected-error {{use of undeclared identifier 'fax'; did you mean 'max'}} |
12 | } |
13 | |
14 | template <typename T> void somefunc(T*, T*); //expected-note {{'somefunc' declared here}} |
15 | template <typename T> void somefunc(const T[]); //expected-note {{'somefunc' declared here}} |
16 | template <typename T1, typename T2> void somefunc(T1*, T2*); //expected-note {{'somefunc' declared here}} |
17 | template <typename T1, typename T2> void somefunc(T1*, const T2[]); //expected-note 2 {{'somefunc' declared here}} |
18 | |
19 | void c() { |
20 | int *i = 0, *j = 0; |
21 | const int x[] = {1, 2, 3}; |
22 | long *l = 0; |
23 | somefun(i, j); //expected-error {{use of undeclared identifier 'somefun'; did you mean 'somefunc'?}} |
24 | somefun(x); //expected-error {{use of undeclared identifier 'somefun'; did you mean 'somefunc'?}} |
25 | somefun(i, l); //expected-error {{use of undeclared identifier 'somefun'; did you mean 'somefunc'?}} |
26 | somefun(l, x); //expected-error {{use of undeclared identifier 'somefun'; did you mean 'somefunc'?}} |
27 | somefun(i, x); //expected-error {{use of undeclared identifier 'somefun'; did you mean 'somefunc'?}} |
28 | } |
29 | |