+++ /dev/null
-/* Copyright (C) 2000 Free Software Foundation, Inc. */
-
-/* { dg-do run } */
-/* { dg-options "-trigraphs" } */
-
-/* Test lexing of strings and character constants. */
-
-#ifndef __WCHAR_TYPE__
-#define __WCHAR_TYPE__ int
-#endif
-typedef __WCHAR_TYPE__ wchar_t;
-
-extern int strcmp (const char *, const char *);
-extern int puts (const char *);
-extern void abort (void);
-#define err(str) do { puts(str); abort(); } while (0)
-
-/* Escaped newlines. */
-const char *str1 = "s\
-t\
-\
-r??/
- 1";
-
-const char x = '\
-??/
-b';
-
-/* Test escaped terminators. */
-const char *term = "\"\\\"\\";
-const char termc = '\'';
-const char *terms = "'";
-
-/* Test wide strings and chars are lexed. */
-const wchar_t wchar = L'w';
-const wchar_t* wstring = L"wide string";
-
-/* Test all 9 trigraphs embedded in a string. Test trigraphs do not
- survive an embedded backslash newline. Test trigraphs preceded by
- a '?' are still noticed. */
-const char *t = "??/\??<??>??=??)??\
-(??(??!??'??-???=???/
-?-";
-
-int main (int argc, char *argv[])
-{
- if (strcmp (str1, "str 1"))
- err ("str1");
-
- if (x != 'b')
- err ("b");
-
- /* We have to split the string up to avoid trigraph replacement
- here. Split the 2 trigraphs after both 1 and 2 ?s; just doing
- this exposed a bug in the initial release of the tokenized lexer. */
- if (strcmp (t, "\\{}#]?" "?([|^~?#??" "-"))
- err ("Embedded trigraphs");
-
- if (term[0] != '"' || term[1] != '\\' || term[2] != '"'
- || term[3] != '\\' || term[4] != '\0')
- err ("Escaped string terminators");
-
- if (termc != terms[0])
- err ("Escaped character constant terminator");
-
- return 0;
-}