1156215Sbrueffer/* Basic tests of the #assert preprocessor extension. */
2156215Sbrueffer/* { dg-do compile } */
3156215Sbrueffer/* { dg-options "" } */
4156215Sbrueffer
5156215Sbrueffer#define def unused expansion
6156215Sbrueffer#define fail  int fail
7156215Sbrueffer
8156215Sbrueffer#assert abc (def)
9156215Sbrueffer#assert abc (ghi)
10156215Sbrueffer#assert abc (jkl)
11156215Sbrueffer#assert space ( s p a c e )
12156215Sbrueffer
13156215Sbrueffer/* Basic: */
14156215Sbrueffer#if !#abc (def) || !#abc (ghi) || !#abc (jkl)
15156215Sbruefferfail
16156215Sbrueffer#endif
17156215Sbrueffer
18156215Sbrueffer/* any answer for #abc */
19156215Sbrueffer#if !#abc
20156215Sbruefferfail
21156215Sbrueffer#endif
22156215Sbrueffer
23156215Sbrueffer/* internal whitespace is collapsed,
24156215Sbrueffer   external whitespace is deleted  */
25156215Sbrueffer#if !#space (s p  a  c e) || !#space (  s p a c e  ) || #space (space)
26156215Sbruefferfail
27156215Sbrueffer#endif
28156215Sbrueffer
29156215Sbrueffer/* removing assertions */
30156215Sbrueffer#unassert abc (jkl)
31156215Sbrueffer#if !#abc || !#abc (def) || !#abc (ghi) || #abc (jkl)
32156215Sbruefferfail
33156215Sbrueffer#endif
34156215Sbrueffer
35#unassert abc
36#if #abc || #abc (def) || #abc (ghi) || #abc (jkl)
37fail
38#endif
39
40int gobble
41
42/* make sure it can succeed too.
43   also check space before open paren isn't significant */
44#if #space(s p a c e)
45;
46#endif
47