1*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck %s 2*0a6a1f1dSLionel Sambuc // CHECK: _Z1fPA10_1X 3*0a6a1f1dSLionel Sambuc f(int x)4f4a2713aSLionel Sambucint __attribute__((overloadable)) f(int x) { return x; } f(float x)5f4a2713aSLionel Sambucfloat __attribute__((overloadable)) f(float x) { return x; } f(double x)6f4a2713aSLionel Sambucdouble __attribute__((overloadable)) f(double x) { return x; } f(double _Complex x)7f4a2713aSLionel Sambucdouble _Complex __attribute__((overloadable)) f(double _Complex x) { return x; } 8f4a2713aSLionel Sambuc typedef short v4hi __attribute__ ((__vector_size__ (8))); f(v4hi x)9f4a2713aSLionel Sambucv4hi __attribute__((overloadable)) f(v4hi x) { return x; } 10f4a2713aSLionel Sambuc 11f4a2713aSLionel Sambuc struct X { }; f(struct X (* ptr)[10])12f4a2713aSLionel Sambucvoid __attribute__((overloadable)) f(struct X (*ptr)[10]) { } 13f4a2713aSLionel Sambuc f(int x,int y,...)14f4a2713aSLionel Sambucvoid __attribute__((overloadable)) f(int x, int y, ...) { } 15f4a2713aSLionel Sambuc main()16f4a2713aSLionel Sambucint main() { 17f4a2713aSLionel Sambuc int iv = 17; 18f4a2713aSLionel Sambuc float fv = 3.0f; 19f4a2713aSLionel Sambuc double dv = 4.0; 20f4a2713aSLionel Sambuc double _Complex cdv; 21f4a2713aSLionel Sambuc v4hi vv; 22f4a2713aSLionel Sambuc 23f4a2713aSLionel Sambuc iv = f(iv); 24f4a2713aSLionel Sambuc fv = f(fv); 25f4a2713aSLionel Sambuc dv = f(dv); 26f4a2713aSLionel Sambuc cdv = f(cdv); 27f4a2713aSLionel Sambuc vv = f(vv); 28f4a2713aSLionel Sambuc } 29