1651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck %s
2651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK: _Z1fPA10_1X
3651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines
4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint __attribute__((overloadable)) f(int x) { return x; }
5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaofloat __attribute__((overloadable)) f(float x) { return x; }
6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaodouble __attribute__((overloadable)) f(double x) { return x; }
7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaodouble _Complex __attribute__((overloadable)) f(double _Complex x) { return x; }
8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotypedef short v4hi __attribute__ ((__vector_size__ (8)));
9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaov4hi __attribute__((overloadable)) f(v4hi x) { return x; }
10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct X { };
12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid  __attribute__((overloadable)) f(struct X (*ptr)[10]) { }
13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid __attribute__((overloadable)) f(int x, int y, ...) { }
15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint main() {
17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int iv = 17;
18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  float fv = 3.0f;
19ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  double dv = 4.0;
20ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  double _Complex cdv;
21ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  v4hi vv;
22ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
23ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  iv = f(iv);
24ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  fv = f(fv);
25ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  dv = f(dv);
26ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  cdv = f(cdv);
27ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  vv = f(vv);
28ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
29