complex-int.c revision d3a61d5ec5357d19b7c0b6b599231e68dc5e237f
18dd070edc2209ecfdae49780ec1596b349e2cbd1Jakob Stoklund Olesen// RUN: clang %s -verify -fsyntax-only 28ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen 38ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesenvoid a() { 48ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen__complex__ int arr; 58ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen__complex__ short brr; 68ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen__complex__ unsigned xx; 78ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen__complex__ signed yy; 88ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen__complex__ int result; 98ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesenint ii; 108ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesenint aa = 1 + 1.0iF; 118ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen 128ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesenresult = arr*ii; 138ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesenresult = ii*brr; 148ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen 158ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesenresult = arr*brr; 168d0963f72c8922bafffb36ff49b18064098a3cabJakob Stoklund Olesenresult = xx*yy; 17f0179004e94259a8adab6c48f295ea9ab18af4c3Jakob Stoklund Olesen 188ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesenswitch (arr) { // expected-error{{statement requires expression of integer type ('_Complex int' invalid)}} 198ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen case brr: ; // expected-error{{expression is not an integer constant expression}} 208ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen case xx: ; // expected-error{{expression is not an integer constant expression}} 218ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen} 228ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen} 23a17768f5822ab62bc18608e5ba473187bf726b84Jakob Stoklund Olesen 248ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesenvoid Tester() { 258ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen__complex short a1; 268ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen__complex int a2; 27f0179004e94259a8adab6c48f295ea9ab18af4c3Jakob Stoklund Olesen__complex float a3; 286a0dc079efe7acf7e71cc4c0948fe814f35ba091Jakob Stoklund Olesen__complex double a4; 29cfa7134a9c33c0c7f8dda359c89dc6763a258e07Jakob Stoklund Olesenshort a5; 30f0179004e94259a8adab6c48f295ea9ab18af4c3Jakob Stoklund Olesenint a6; 31f0179004e94259a8adab6c48f295ea9ab18af4c3Jakob Stoklund Olesenfloat a7; 32532de3dc6ea98387368954c0ac0e07b0adca8b62Jakob Stoklund Olesendouble a8; 338ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen#define TestPair(m,n) int x##m##n = a##m+a##n; 34e1dde7b05a83438eeba4bd83f8cf080f56d22c5bJakob Stoklund Olesen#define TestPairs(m) TestPair(m,1) TestPair(m,2) \ 35e1dde7b05a83438eeba4bd83f8cf080f56d22c5bJakob Stoklund Olesen TestPair(m,3) TestPair(m,4) \ 36e1dde7b05a83438eeba4bd83f8cf080f56d22c5bJakob Stoklund Olesen TestPair(m,5) TestPair(m,6) \ 37e1dde7b05a83438eeba4bd83f8cf080f56d22c5bJakob Stoklund Olesen TestPair(m,7) TestPair(m,8) 38e1dde7b05a83438eeba4bd83f8cf080f56d22c5bJakob Stoklund OlesenTestPairs(1); TestPairs(2); 398d0963f72c8922bafffb36ff49b18064098a3cabJakob Stoklund OlesenTestPairs(3); TestPairs(4); 40f0179004e94259a8adab6c48f295ea9ab18af4c3Jakob Stoklund OlesenTestPairs(5); TestPairs(6); 41f0179004e94259a8adab6c48f295ea9ab18af4c3Jakob Stoklund OlesenTestPairs(7); TestPairs(8); 428ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen} 4308e93b14c37277ab40b835de340f89ba357d3332Jakob Stoklund Olesen 448ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen// rdar://6097730 458ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesenvoid test3(_Complex int *x) { 468ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen *x = ~*x; 476a0dc079efe7acf7e71cc4c0948fe814f35ba091Jakob Stoklund Olesen} 488ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen 498ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesenvoid test4(_Complex float *x) { 508ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen *x = ~*x; 518ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen} 528ae0263471cc29c5f8278ee1ea5b678042ec6dceJakob Stoklund Olesen 53b5fa9333431673aac2ced8dea80152349a85cf6fJakob Stoklund Olesen