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