1/* Test that builtin-macros are OK.  */
2
3/* { dg-do run } */
4
5#include "builtins.h"
6
7void abort (void);
8char *strstr (const char *, const char *);
9int strcmp (const char *, const char *);
10
11#define LINE __LINE__
12
13#if __LINE__ != 13
14# error __LINE__ part 1  /* { dg-bogus "__LINE__" } */
15#endif
16
17#if \
18  __LINE__ != 18
19# error __LINE__ part 2  /* { dg-bogus "__LINE__" } */
20#endif
21
22#if LINE != 22
23# error __LINE__ part 3  /* { dg-bogus "__LINE__" } */
24#endif
25
26#if __INCLUDE_LEVEL != 0
27# error __INCLUDE_LEVEL__  /* { dg-bogus "__INCLUDE_LEVEL__" } */
28#endif
29
30#if !defined (__TIME__)
31# error __TIME__  /* { dg-bogus "__TIME__" } */
32#endif
33
34#if !defined (__DATE__)
35# error __DATE__  /* { dg-bogus "__DATE__" } */
36#endif
37
38
39int main ()
40{
41  /* level is defined in builtins.h.  */
42  if (level != 1)
43    abort ();
44
45  if (!strstr (__FILE__, "builtins.c"))
46    abort ();
47
48  if (!strcmp (__BASE_FILE__, "builtins.c"))
49    abort ();
50
51  return 0;
52}
53