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