1 | // RUN: %clang_cc1 %s -verify -fsyntax-only -pedantic |
2 | // RUN: %clang_cc1 %s -verify -fsyntax-only -x c++ -pedantic |
3 | |
4 | // This file contains UTF-8; please do not fix! |
5 | |
6 | |
7 | extern void \u00FCber(int); |
8 | extern void \U000000FCber(int); // redeclaration, no warning |
9 | #ifdef __cplusplus |
10 | // expected-note@-2 + {{candidate function not viable}} |
11 | #else |
12 | // expected-note@-4 + {{declared here}} |
13 | #endif |
14 | |
15 | void goodCalls() { |
16 | \u00FCber(0); |
17 | \u00fcber(1); |
18 | über(2); |
19 | \U000000FCber(3); |
20 | } |
21 | |
22 | void badCalls() { |
23 | \u00FCber(0.5); // expected-warning{{implicit conversion from 'double' to 'int'}} |
24 | \u00fcber = 0; // expected-error{{non-object type 'void (int)' is not assignable}} |
25 | |
26 | über(1, 2); |
27 | \U000000FCber(); |
28 | #ifdef __cplusplus |
29 | // expected-error@-3 {{no matching function}} |
30 | // expected-error@-3 {{no matching function}} |
31 | #else |
32 | // expected-error@-6 {{too many arguments to function call, expected 1, have 2}} |
33 | // expected-error@-6 {{too few arguments to function call, expected 1, have 0}} |
34 | #endif |
35 | } |
36 | |