xref: /aosp_15_r20/external/clang/test/Sema/complex-imag.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -verify %s
2*67e74705SXin Li 
f1()3*67e74705SXin Li void f1() {
4*67e74705SXin Li   int a = 1;
5*67e74705SXin Li   int b = __imag a;
6*67e74705SXin Li   int *c = &__real a;
7*67e74705SXin Li   int *d = &__imag a; // expected-error {{cannot take the address of an rvalue of type 'int'}}
8*67e74705SXin Li }
9*67e74705SXin Li 
f2()10*67e74705SXin Li void f2() {
11*67e74705SXin Li   _Complex int a = 1;
12*67e74705SXin Li   int b = __imag a;
13*67e74705SXin Li   int *c = &__real a;
14*67e74705SXin Li   int *d = &__imag a;
15*67e74705SXin Li }
16*67e74705SXin Li 
f3()17*67e74705SXin Li void f3() {
18*67e74705SXin Li   double a = 1;
19*67e74705SXin Li   double b = __imag a;
20*67e74705SXin Li   double *c = &__real a;
21*67e74705SXin Li   double *d = &__imag a; // expected-error {{cannot take the address of an rvalue of type 'double'}}
22*67e74705SXin Li }
23*67e74705SXin Li 
f4()24*67e74705SXin Li void f4() {
25*67e74705SXin Li   _Complex double a = 1;
26*67e74705SXin Li   double b = __imag a;
27*67e74705SXin Li   double *c = &__real a;
28*67e74705SXin Li   double *d = &__imag a;
29*67e74705SXin Li }
30