brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · a869f4e Raw
63 lines · cpp
1// RUN: %clang_cc1 %s -fsyntax-only -fborland-extensions -triple x86_64-linux-gnu -verify2// RUN: %clang_cc1 %s -fsyntax-only -fborland-extensions -triple i686-linux-gnu -Werror3 4// Borland extensions5 6// 1. test  -fborland-extensions7int dummy_function() { return 0; }8 9// 2. test __pascal10// expected-warning@+1 {{'_pascal' calling convention is not supported for this target}}11int _pascal f2();12 13// expected-warning@+1 {{'__pascal' calling convention is not supported for this target}}14float __pascal gi2(int, int); 15// expected-warning@+1 {{'__pascal' calling convention is not supported for this target}}16template<typename T> T g2(T (__pascal * const )(int, int)) { return 0; }17 18struct M {19    // expected-warning@+1 {{'__pascal' calling convention is not supported for this target}}20    int __pascal addP();21    // expected-warning@+1 {{'__pascal' calling convention is not supported for this target}}22    float __pascal subtractP(); 23};24// expected-warning@+1 {{'__pascal' calling convention is not supported for this target}}25template<typename T> int h2(T (__pascal M::* const )()) { return 0; }26void m2() {27    int i; float f;28    i = f2();29    f = gi2(2, i);30    f = g2(gi2);31    i = h2<int>(&M::addP);32    f = h2(&M::subtractP);33} 34 35// 3. test other calling conventions36int _cdecl fa3();37// expected-warning@+1 {{'_fastcall' calling convention is not supported for this target}}38int _fastcall fc3();39// expected-warning@+1 {{'_stdcall' calling convention is not supported for this target}}40int _stdcall fd3();41 42// 4. test __uuidof()43typedef struct _GUID {44     unsigned long  Data1;45     unsigned short Data2;46     unsigned short Data3;47     unsigned char  Data4[ 8 ];48} GUID;49 50struct __declspec(uuid("{12345678-1234-1234-1234-123456789abc}")) Foo;51struct Data {52     GUID const* Guid;53};54 55void t4() {56    unsigned long  data;57 58    const GUID guid_inl = __uuidof(Foo);59    Data ata1 = { &guid_inl};60    data = ata1.Guid->Data1;61}62 63