1 /* Copyright (C) 2003, 2006, 2008, 2009, 2011, 2012 2 Free Software Foundation, Inc. 3 4 Test builtin preprocessor assertions. 5 By Kaveh Ghazi <ghazi@caip.rutgers.edu>. */ 6 7 /* { dg-do preprocess } */ 8 /* { dg-options "-ansi -Wno-deprecated" } */ 9 10 /* Check for #system assertions. */ 11 12 #if defined __linux__ 13 # if !#system(linux) || !#system(unix) || !#system(posix) 14 # error 15 # endif 16 #elif #system(linux) 17 # error 18 #endif 19 20 #if defined __gnu_hurd__ 21 # if !#system(gnu) || !#system(unix) || !#system(posix) || !#system(mach) 22 # error 23 # endif 24 #elif #system(gnu) 25 # error 26 #endif 27 28 #if defined __FreeBSD__ 29 # if !#system(FreeBSD) || !#system(unix) || !#system(bsd) 30 # error 31 # endif 32 #elif #system(FreeBSD) 33 # error 34 #endif 35 36 #if defined __NetBSD__ 37 # if !#system(NetBSD) || !#system(unix) || !#system(bsd) 38 # error 39 # endif 40 #elif #system(NetBSD) 41 # error 42 #endif 43 44 #if defined __OpenBSD__ 45 # if !#system(OpenBSD) || !#system(unix) || !#system(bsd) 46 # error 47 # endif 48 #elif #system(OpenBSD) 49 # error 50 #endif 51 52 #if defined __svr4__ || defined __SYSTYPE_SVR4__ 53 # if !#system(svr4) || !#system(unix) 54 # error 55 # endif 56 #elif #system(svr4) 57 # error 58 #endif 59 60 #if defined __hpux__ 61 # if !#system(hpux) || !#system(unix) 62 # error 63 # endif 64 #elif #system(hpux) 65 # error 66 #endif 67 68 #if defined _AIX 69 # if !#system(aix) || !#system(unix) 70 # error 71 # endif 72 #elif #system(aix) 73 # error 74 #endif 75 76 #if defined __lynx__ 77 # if !#system(lynx) || !#system(unix) 78 # error 79 # endif 80 #elif #system(lynx) 81 # error 82 #endif 83 84 #if ( defined __unix__ && !defined __CYGWIN__ ) || defined _AIX \ 85 || defined __vxworks 86 # if !#system(unix) 87 # error 88 # endif 89 #elif #system(unix) 90 # error 91 #endif 92 93 #if defined __rtems__ 94 # if !#system(rtems) 95 # error 96 # endif 97 #elif #system(rtems) 98 # error 99 #endif 100 101 #if defined __vms__ 102 # if !#system(vms) 103 # error 104 # endif 105 #elif #system(vms) 106 # error 107 #endif 108 109 #if defined __mvs__ 110 # if !#system(mvs) 111 # error 112 # endif 113 #elif #system(mvs) 114 # error 115 #endif 116 117 #if defined __MSDOS__ 118 # if !#system(msdos) 119 # error 120 # endif 121 #elif #system(msdos) 122 # error 123 #endif 124 125 #if defined __WINNT__ || defined __CYGWIN__ 126 # if !#system(winnt) 127 # error 128 # endif 129 #elif #system(winnt) 130 # error 131 #endif 132 133 134 /* Check for #cpu and #machine assertions. */ 135 136 #if defined __alpha__ 137 # if !#cpu(alpha) || !#machine(alpha) \ 138 || (defined __alpha_cix__ && !#cpu(cix)) \ 139 || (!defined __alpha_cix__ && #cpu(cix)) \ 140 || (defined __alpha_fix__ && !#cpu(fix)) \ 141 || (!defined __alpha_fix__ && #cpu(fix)) \ 142 || (defined __alpha_bwx__ && !#cpu(bwx)) \ 143 || (!defined __alpha_bwx__ && #cpu(bwx)) \ 144 || (defined __alpha_max__ && !#cpu(max)) \ 145 || (!defined __alpha_max__ && #cpu(max)) \ 146 || (defined __alpha_ev6__ && !#cpu(ev6)) \ 147 || (!defined __alpha_ev6__ && #cpu(ev6)) \ 148 || (defined __alpha_ev5__ && !#cpu(ev5)) \ 149 || (!defined __alpha_ev5__ && #cpu(ev5)) \ 150 || (defined __alpha_ev4__ && !#cpu(ev4)) \ 151 || (!defined __alpha_ev4__ && #cpu(ev4)) 152 # error 153 # endif 154 #elif #cpu(alpha) || #machine(alpha) || #cpu(cix) || #cpu(fix) || #cpu(bwx) \ 155 || #cpu(max) || #cpu(ev6) || #cpu(ev5) || #cpu(ev4) 156 # error 157 #endif 158 159 #if defined __arm__ 160 # if !#cpu(arm) || !#machine(arm) 161 # error 162 # endif 163 #elif #cpu(arm) || #machine(arm) 164 # error 165 #endif 166 167 #if defined __cris__ 168 # if !#cpu(cris) || !#machine(cris) 169 # error 170 # endif 171 #elif #cpu(cris) || #machine(cris) 172 # error 173 #endif 174 175 #if defined __fr30__ 176 # if !#cpu(fr30) || !#machine(fr30) 177 # error 178 # endif 179 #elif #cpu(fr30) || #machine(fr30) 180 # error 181 #endif 182 183 #if defined __frv__ 184 # if !#cpu(frv) || !#machine(frv) 185 # error 186 # endif 187 #elif #cpu(frv) || #machine(frv) 188 # error 189 #endif 190 191 #if defined __H8300__ 192 # if !#cpu(h8300) || !#machine(h8300) \ 193 || (defined __H8300__ && (!#cpu(h8300) || !#machine(h8300))) \ 194 || (defined __H8300H__ && (!#cpu(h8300h) || !#machine(h8300h))) \ 195 || (!defined __H8300H__ && (#cpu(h8300h) || #machine(h8300h))) \ 196 || (defined __H8300S__ && (!#cpu(h8300s) || !#machine(h8300s))) \ 197 || (!defined __H8300S__ && (#cpu(h8300s) || #machine(h8300s))) 198 # error 199 # endif 200 #elif #cpu(h8300) || #machine(h8300) || #cpu(h8300h) || #machine(h8300h) || \ 201 #cpu(h8300s) || #machine(h8300s) 202 # error 203 #endif 204 205 #if defined __hppa__ 206 # if !#cpu(hppa) || !#machine(hppa) 207 # error 208 # endif 209 #elif #cpu(hppa) || #machine(hppa) 210 # error 211 #endif 212 213 #if defined __i370__ 214 # if !#cpu(i370) || !#machine(i370) 215 # error 216 # endif 217 #elif #cpu(i370) || #machine(i370) 218 # error 219 #endif 220 221 #if defined __x86_64__ 222 # if !#cpu(x86_64) || !#machine(x86_64) 223 # error 224 # endif 225 #elif #cpu(x86_64) || #machine(x86_64) 226 # error 227 #endif 228 229 #if defined __i386__ 230 # if !#cpu(i386) || !#machine(i386) 231 # error 232 # endif 233 #elif #cpu(i386) || #machine(i386) 234 # error 235 #endif 236 237 #if defined __ia64__ 238 # if !#cpu(ia64) || !#machine(ia64) 239 # error 240 # endif 241 #elif #cpu(ia64) || #machine(ia64) 242 # error 243 #endif 244 245 #if defined __iq2000__ 246 # if !#cpu(iq2000) || !#machine(iq2000) 247 # error 248 # endif 249 #elif #cpu(iq2000) || #machine(iq2000) 250 # error 251 #endif 252 253 #if defined __M32R__ 254 # if !#cpu(m32r) || !#machine(m32r) 255 # error 256 # endif 257 #elif #cpu(m32r) || #machine(m32r) 258 # error 259 #endif 260 261 #if defined __m68k__ 262 # if !#cpu(m68k) || !#machine(m68k) 263 # error 264 # endif 265 #elif #cpu(m68k) || #machine(m68k) 266 # error 267 #endif 268 269 #if defined __mcore__ 270 # if !#cpu(mcore) || !#machine(mcore) 271 # error 272 # endif 273 #elif #cpu(mcore) || #machine(mcore) 274 # error 275 #endif 276 277 #if defined __mips__ 278 # if !#cpu(mips) 279 # error 280 # endif 281 #elif #cpu(mips) || #machine(mips) 282 # error 283 #endif 284 285 #if defined __mn10300__ 286 # if !#cpu(mn10300) || !#machine(mn10300) 287 # error 288 # endif 289 #elif #cpu(mn10300) || #machine(mn10300) 290 # error 291 #endif 292 293 #if defined __pdp11__ 294 # if !#cpu(pdp11) || !#machine(pdp11) 295 # error 296 # endif 297 #elif #cpu(pdp11) || #machine(pdp11) 298 # error 299 #endif 300 301 #if defined __powerpc__ || defined __PPC__ 302 # if defined __powerpc64__ 303 # if (#cpu(powerpc) || #machine(powerpc) \ 304 || !#cpu(powerpc64) || !#machine(powerpc64)) 305 # error 306 # endif 307 # else 308 # if (!#cpu(powerpc) || !#machine(powerpc) \ 309 || #cpu(powerpc64) || #machine(powerpc64)) 310 # error 311 # endif 312 # endif 313 #elif (#cpu(powerpc) || #machine(powerpc) \ 314 || #cpu(powerpc64) || #machine(powerpc64)) 315 # error 316 #endif 317 318 #if defined __rs6000__ 319 # if !#cpu(rs6000) || !#machine(rs6000) 320 # error 321 # endif 322 #elif #cpu(rs6000) || #machine(rs6000) 323 # error 324 #endif 325 326 #if defined __s390__ 327 # if !#cpu(s390) || !#machine(s390) 328 # error 329 # endif 330 #elif #cpu(s390) || #machine(s390) 331 # error 332 #endif 333 334 #if defined __sh__ 335 # if !#cpu(sh) || !#machine(sh) 336 # error 337 # endif 338 #elif #cpu(sh) || #machine(sh) 339 # error 340 #endif 341 342 #if defined __sparc__ 343 # if (defined __arch64__ \ 344 && (!#cpu(sparc64) || !#machine(sparc64) || #cpu(sparc) || #machine(sparc))) 345 || (!defined __arch64__ \ 346 && (#cpu(sparc64) || #machine(sparc64) || !#cpu(sparc) || !#machine(sparc))) 347 # error 348 # endif 349 #elif #cpu(sparc64) || #machine(sparc64) || #cpu(sparc) || #machine(sparc) 350 # error 351 #endif 352 353 #if defined __xstormy16__ 354 # if !#cpu(xstormy16) || !#machine(xstormy16) 355 # error 356 # endif 357 #elif #cpu(xstormy16) || #machine(xstormy16) 358 # error 359 #endif 360 361 #if defined __v850__ 362 # if !#cpu(v850) || !#machine(v850) 363 # error 364 # endif 365 #elif #cpu(v850) || #machine(v850) 366 # error 367 #endif 368 369 #if defined __vax__ 370 # if !#cpu(vax) || !#machine(vax) 371 # error 372 # endif 373 #elif #cpu(vax) || #machine(vax) 374 # error 375 #endif 376 377 #if defined __XTENSA__ 378 # if !#cpu(xtensa) || !#machine(xtensa) 379 # error 380 # endif 381 #elif #cpu(xtensa) || #machine(xtensa) 382 # error 383 #endif 384 385