summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/cpp/escape-1.c
blob: 0f5c11e9ab3dda2285e8db8026d89c0e60e1f389 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/* Copyright (C) 2001 Free Software Foundation, Inc.  */

/* { dg-do compile } */

/* This tests various diagnostics about escape sequences, for both
   the preprocessor and the compiler.

   Neil Booth, 22 May 2001.  */

#if '\x'	/* { dg-error "no following" "\x with no digits" } */
#endif
#if '\x400'	/* { dg-error "out of range" "\x out of range" } */
#endif
#if '\x0ff'	/* { dg-bogus "out of range" "\x out of range" } */
#endif
#if '\400'	/* { dg-error "out of range" "\x out of range" } */
#endif
#if '\377'	/* { dg-bogus "out of range" "bogus \x out of range" } */
#endif
#if '\177' != 0x7f /* { dg-bogus "out of range" "bogus \x out of range" } */
#error bad octal /* { dg-bogus "bad" "bad octal evaluation" } */
#endif
#if '\0377'	/* { dg-warning "multi" "too long octal" } */
#endif
#if '\p'	/* { dg-error "unknown escape" "unknown escape seq" } */
#endif

void foo ()
{
  int c;

  c = '\x';	/* { dg-error "no following" "\x with no digits" } */
  c = '\x100';	/* { dg-error "out of range" "\x out of range" } */
  c = '\x0ff';	/* { dg-bogus "out of range" "\x out of range" } */
  c = '\400';	/* { dg-error "out of range" "\x out of range" } */
  c = '\377';	/* { dg-bogus "out of range" "bogus \x out of range" } */
  c = '\0377';	/* { dg-warning "multi" "too long octal" } */
  c = '\p';	/* { dg-error "unknown escape" "unknown escape seq" } */
}