xref: /minix3/external/bsd/llvm/dist/clang/test/CodeGen/overloadable.c (revision 5ba302fdeaa9e153d58b5dcaef42d660aedee92e)
1 // RUN: %clang_cc1 -emit-llvm %s -o - | grep _Z1fPA10_1X
2 int __attribute__((overloadable)) f(int x) { return x; }
3 float __attribute__((overloadable)) f(float x) { return x; }
4 double __attribute__((overloadable)) f(double x) { return x; }
5 double _Complex __attribute__((overloadable)) f(double _Complex x) { return x; }
6 typedef short v4hi __attribute__ ((__vector_size__ (8)));
7 v4hi __attribute__((overloadable)) f(v4hi x) { return x; }
8 
9 struct X { };
10 void  __attribute__((overloadable)) f(struct X (*ptr)[10]) { }
11 
12 void __attribute__((overloadable)) f(int x, int y, ...) { }
13 
14 int main() {
15   int iv = 17;
16   float fv = 3.0f;
17   double dv = 4.0;
18   double _Complex cdv;
19   v4hi vv;
20 
21   iv = f(iv);
22   fv = f(fv);
23   dv = f(dv);
24   cdv = f(cdv);
25   vv = f(vv);
26 }
27