Reland [OffloadBundler] Compress bundles over 4GB (#122307)
[llvm-project.git] / flang / test / Preprocessing / defined-in-macro.F90
blob9416b9c81b5523aa138a716261f71ad82a1baf07
1 ! RUN: %flang -E %s 2>&1 | FileCheck %s
3 ! CHECK: print *, 'pass 1'
4 #define IS_DEFINED
5 #define M1 defined(IS_DEFINED)
6 #if M1
7 print *, 'pass 1'
8 #else
9 print *, 'fail 1'
10 #endif
12 ! CHECK: print *, 'pass 2'
13 #define M2 defined IS_DEFINED
14 #if M2
15 print *, 'pass 2'
16 #else
17 print *, 'fail 2'
18 #endif
20 ! CHECK: print *, 'pass 3'
21 #define M3 defined(IS_UNDEFINED)
22 #if M3
23 print *, 'fail 3'
24 #else
25 print *, 'pass 3'
26 #endif
28 ! CHECK: print *, 'pass 4'
29 #define M4 defined IS_UNDEFINED
30 #if M4
31 print *, 'fail 4'
32 #else
33 print *, 'pass 4'
34 #endif
36 ! CHECK: print *, 'pass 5'
37 #define DEFINED_KEYWORD defined
38 #define M5(x) DEFINED_KEYWORD(x)
39 #define KWM1 1
40 #if M5(KWM1)
41 print *, 'pass 5'
42 #else
43 print *, 'fail 5'
44 #endif
46 ! CHECK: print *, 'pass 6'
47 #define KWM2 KWM1
48 #if M5(KWM2)
49 print *, 'pass 6'
50 #else
51 print *, 'fail 6'
52 #endif
54 ! CHECK: print *, 'pass 7'
55 #if M5(IS_UNDEFINED)
56 print *, 'fail 7'
57 #else
58 print *, 'pass 7'
59 #endif
61 ! CHECK: print *, 'pass 8'
62 #define KWM3 IS_UNDEFINED
63 #if M5(KWM3)
64 print *, 'pass 8'
65 #else
66 print *, 'fail 8'
67 #endif
69 ! CHECK: print *, 'pass 9'
70 #define M6(x) defined(x)
71 #if M6(KWM1)
72 print *, 'pass 9'
73 #else
74 print *, 'fail 9'
75 #endif
77 ! CHECK: print *, 'pass 10'
78 #if M6(KWM2)
79 print *, 'pass 10'
80 #else
81 print *, 'fail 10'
82 #endif
84 ! CHECK: print *, 'pass 11'
85 #if M6(IS_UNDEFINED)
86 print *, 'fail 11'
87 #else
88 print *, 'pass 11'
89 #endif
91 ! CHECK: print *, 'pass 12'
92 #if M6(KWM3)
93 print *, 'pass 12'
94 #else
95 print *, 'fail 12'
96 #endif
98 ! CHECK: print *, 'pass 13'
99 #define M7(A, B) ((A) * 10000 + (B) * 100)
100 #define M8(A, B, C, AA, BB) ( \
101   (defined(AA) && defined(BB)) && \
102   (M7(A, B) C M7(AA, BB)))
103 #if M8(9, 5, >, BAZ, FUX)
104 print *, 'fail 13'
105 #else
106 print *, 'pass 13'
107 #endif
109 ! CHECK: print *, 'pass 14'
110 #define M9() (defined(IS_UNDEFINED))
111 #if M9()
112 print *, 'fail 14'
113 #else
114 print *, 'pass 14'
115 #endif