(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
cpp/
has-include-next-1.c
       1  /* { dg-do preprocess } */
       2  
       3  #if __has_include_next ("stdlib.h")
       4  #else
       5  #error error 1
       6  #endif
       7  #if __has_include_next (<stdlib.h>)
       8  #else
       9  #error error 2
      10  #endif
      11  #if !__has_include_next ("stdlib.h")
      12  #error error 3
      13  #elif !__has_include_next (<stdlib.h>)
      14  #error error 4
      15  #endif
      16  #if __has_include_next ("stdlib.h") && __has_include_next (<stdlib.h>)
      17  #else
      18  #error error 5
      19  #endif
      20  #if !defined(__has_include_next)
      21  #error error 6
      22  #endif
      23  #ifndef __has_include_next
      24  #error error 7
      25  #endif
      26  #ifdef __has_include_next
      27  #else
      28  #error error 8
      29  #endif
      30  #define m1 __has_include_next("stdlib.h")
      31  #define m2 ("stdlib.h")
      32  #define m3 ("has-include-1-nonexistent.h")
      33  #define m4 has-include-1-nonexistent-2.h>)
      34  #define m5 <stdlib.h>
      35  #if !m1
      36  #error error 9
      37  #endif
      38  #if !__has_include_next m2
      39  #error error 10
      40  #endif
      41  #if __has_include_next m3
      42  #error error 11
      43  #endif
      44  #if __has_include_next (<m4
      45  #error error 12
      46  #endif
      47  #if !__has_include_next (m5)
      48  #error error 13
      49  #endif
      50  __has_include_next (<stdlib.h>)		/* { dg-error "used outside of preprocessing directive" } */
      51  m1					/* { dg-error "used outside of preprocessing directive" } */
      52  #if 1
      53  m1					/* { dg-error "used outside of preprocessing directive" } */
      54  #endif
      55  #if 0
      56  #elif 1
      57  m1					/* { dg-error "used outside of preprocessing directive" } */
      58  #endif
      59  #if 0
      60  m1
      61  #endif
      62  #if 0
      63  #elif 0
      64  m1
      65  #endif
      66  #if __has_include_next "stdlib.h")	/* { dg-error "missing" } */
      67  #endif
      68  #if __has_include_next (stdlib.h)	/* { dg-error "operator|missing" } */
      69  #endif
      70  #if __has_include_next ()		/* { dg-error "operator|missing" } */
      71  #endif
      72  #if __has_include_next )		/* { dg-error "operator|missing" } */
      73  #endif
      74  #if __has_include_next ("stdlib.h)
      75  #endif
      76  /* { dg-error "operator|missing\[^\n\r]*after" "" { target *-*-* } .-2 } */
      77  /* { dg-warning "missing terminating" "" { target *-*-* } .-3 } */
      78  #if __has_include_next (stdlib.h>)	/* { dg-error "operator|missing" } */
      79  #endif
      80  #if __has_include_next ("stdlib.h"	/* { dg-error "missing" } */
      81  #endif
      82  #if __has_include_next (		/* { dg-error "operator|missing" } */
      83  #endif
      84  #if __has_include_next			/* { dg-error "operator|missing" } */
      85  #endif
      86  #if __has_include_next"stdlib.h"	/* { dg-error "missing" } */
      87  #endif
      88  #if __has_include_next'h'		/* { dg-error "operator|missing" } */
      89  #endif
      90  #if __has_include_next('h'		/* { dg-error "operator|missing" } */
      91  #endif
      92  #if __has_include_next('h')		/* { dg-error "operator" } */
      93  #endif
      94  #define H(h) __has_include_next(h)
      95  #if H(<stdlib.h>)
      96  #else
      97  #error error 14
      98  #endif
      99  void
     100  foo ()
     101  {
     102  #pragma omp parallel if (__has_include_next ("<stdlib.h>"))
     103    ;
     104  }