xref: /llvm-project/clang/test/CodeGen/fmaxfmin-invalid-arguments-type.c (revision 5bf81e53dbea609562f91a2d771863cfeb49fa32)
1*5bf81e53SYunQiang Su // RUN: not %clang_cc1 -triple x86_64 %s -fsyntax-only -verify 2>&1 | FileCheck %s --check-prefix=CHECK-ERR
2*5bf81e53SYunQiang Su 
3*5bf81e53SYunQiang Su float fminimum_numf (float, float);
4*5bf81e53SYunQiang Su double fminimum_num (double, double);
5*5bf81e53SYunQiang Su long double fminimum_numl (long double, long double);
6*5bf81e53SYunQiang Su float fmaximum_numf (float, float);
7*5bf81e53SYunQiang Su double fmaximum_num (double, double);
8*5bf81e53SYunQiang Su long double fmaximum_numl (long double, long double);
9*5bf81e53SYunQiang Su 
10*5bf81e53SYunQiang Su // CHECK-ERR: passing 'char *' to parameter of incompatible type 'float'
11*5bf81e53SYunQiang Su float fmin1(char *a, char *b) {
12*5bf81e53SYunQiang Su         return fminimum_numf(a, b);
13*5bf81e53SYunQiang Su }
14*5bf81e53SYunQiang Su // CHECK-ERR: passing 'char *' to parameter of incompatible type 'double'
15*5bf81e53SYunQiang Su float fmin2(char *a, char *b) {
16*5bf81e53SYunQiang Su         return fminimum_num(a, b);
17*5bf81e53SYunQiang Su }
18*5bf81e53SYunQiang Su // CHECK-ERR: passing 'char *' to parameter of incompatible type 'long double'
19*5bf81e53SYunQiang Su float fmin3(char *a, char *b) {
20*5bf81e53SYunQiang Su         return fminimum_numl(a, b);
21*5bf81e53SYunQiang Su }
22*5bf81e53SYunQiang Su // CHECK-ERR: passing 'char *' to parameter of incompatible type 'float'
23*5bf81e53SYunQiang Su float fmax1(char *a, char *b) {
24*5bf81e53SYunQiang Su         return fmaximum_numf(a, b);
25*5bf81e53SYunQiang Su }
26*5bf81e53SYunQiang Su // CHECK-ERR: passing 'char *' to parameter of incompatible type 'double'
27*5bf81e53SYunQiang Su float fmax2(char *a, char *b) {
28*5bf81e53SYunQiang Su         return fmaximum_num(a, b);
29*5bf81e53SYunQiang Su }
30*5bf81e53SYunQiang Su // CHECK-ERR: passing 'char *' to parameter of incompatible type 'long double'
31*5bf81e53SYunQiang Su float fmax3(char *a, char *b) {
32*5bf81e53SYunQiang Su         return fmaximum_numl(a, b);
33*5bf81e53SYunQiang Su }
34