Commit bfab56e7 by Zack Weinberg Committed by Zack Weinberg

cppinit.c (cpp_start_read): Turn off -Wtraditional if processing C++.

	* cppinit.c (cpp_start_read): Turn off -Wtraditional if
	processing C++.
	* cpplib.c (_cpp_handle_directive): Improve warnings for
	traditional C and indented directives.

	* enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
	fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
	fixinc/inclhack.def: Indent the # of #include_next one space.
	* cp/rtti.c: Un-indent #if and #endif.

	* cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
	syntax error, but an error has already been printed.
	* cpplex.c (_cpp_parse_assertion): Give a more specific error
	message when called with nothing remaining on the line.
	(_cpp_lex_token): If _cpp_parse_assertion fails, return an
	OTHER token, not an ASSERTION.
	* cpplib.c (do_assert): When we create a 'base' node, clear
	its aschain pointer.

	* gcc.c-torture/compile/981211-1.c: Move to...
	* gcc.dg/cpp-as1.c: ...here.
	* gcc.dg/cpp-as2.c: New file.

	* gcc.dg/cpp-tradwarn1.c: Change warning regexps to match the
	compiler.

From-SVN: r32870
parent 7c3bb1de
2000-04-02 Zack Weinberg <zack@wolery.cumb.org>
* cppinit.c (cpp_start_read): Turn off -Wtraditional if
processing C++.
* cpplib.c (_cpp_handle_directive): Improve warnings for
traditional C and indented directives.
* enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
fixinc/inclhack.def: Indent the # of #include_next one space.
* cp/rtti.c: Un-indent #if and #endif.
* cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
syntax error, but an error has already been printed.
* cpplex.c (_cpp_parse_assertion): Give a more specific error
message when called with nothing remaining on the line.
(_cpp_lex_token): If _cpp_parse_assertion fails, return an
OTHER token, not an ASSERTION.
* cpplib.c (do_assert): When we create a 'base' node, clear
its aschain pointer.
2000-04-02 Neil Booth <NeilB@earthling.net> 2000-04-02 Neil Booth <NeilB@earthling.net>
* cppexp.c: New typedef op_t. struct operation and struct * cppexp.c: New typedef op_t. struct operation and struct
......
...@@ -15,7 +15,7 @@ sed 's/^@//' > "include/limits.h" <<'@//E*O*F include/limits.h//' ...@@ -15,7 +15,7 @@ sed 's/^@//' > "include/limits.h" <<'@//E*O*F include/limits.h//'
#ifndef _LIMITS_H #ifndef _LIMITS_H
#define _LIMITS_H #define _LIMITS_H
#include_next <limits.h> #include_next <limits.h>
/* Minimum and maximum values a `char' can hold. */ /* Minimum and maximum values a `char' can hold. */
#ifdef __CHAR_UNSIGNED__ #ifdef __CHAR_UNSIGNED__
...@@ -34,7 +34,7 @@ sed 's/^@//' > "include/math.h" <<'@//E*O*F include/math.h//' ...@@ -34,7 +34,7 @@ sed 's/^@//' > "include/math.h" <<'@//E*O*F include/math.h//'
#ifndef _MATH_H #ifndef _MATH_H
#define _MATH_H #define _MATH_H
#include_next <math.h> #include_next <math.h>
#undef HUGE_VAL #undef HUGE_VAL
...@@ -386,7 +386,7 @@ typedef __WCHAR_TYPE__ wchar_t; ...@@ -386,7 +386,7 @@ typedef __WCHAR_TYPE__ wchar_t;
#endif /* __WCHAR_T */ #endif /* __WCHAR_T */
#include_next <stddef.h> #include_next <stddef.h>
#endif /* _STDDEF_H */ #endif /* _STDDEF_H */
@//E*O*F include/stddef.h// @//E*O*F include/stddef.h//
...@@ -400,12 +400,12 @@ sed 's/^@//' > "include/stdlib.h" <<'@//E*O*F include/stdlib.h//' ...@@ -400,12 +400,12 @@ sed 's/^@//' > "include/stdlib.h" <<'@//E*O*F include/stdlib.h//'
#if _CONVEX_SOURCE #if _CONVEX_SOURCE
#define alloca __non_builtin_alloca #define alloca __non_builtin_alloca
#include_next <stdlib.h> #include_next <stdlib.h>
#undef alloca #undef alloca
#else #else
#include_next <stdlib.h> #include_next <stdlib.h>
#endif /* _CONVEX_SOURCE */ #endif /* _CONVEX_SOURCE */
......
...@@ -1816,9 +1816,9 @@ emit_support_tinfos () ...@@ -1816,9 +1816,9 @@ emit_support_tinfos ()
&void_type_node, &void_type_node,
&boolean_type_node, &boolean_type_node,
&wchar_type_node, &wchar_type_node,
#if 0 #if 0
&signed_wchar_type_node, &unsigned_wchar_type_node, &signed_wchar_type_node, &unsigned_wchar_type_node,
#endif #endif
&char_type_node, &signed_char_type_node, &unsigned_char_type_node, &char_type_node, &signed_char_type_node, &unsigned_char_type_node,
&short_integer_type_node, &short_unsigned_type_node, &short_integer_type_node, &short_unsigned_type_node,
&integer_type_node, &unsigned_type_node, &integer_type_node, &unsigned_type_node,
...@@ -1827,11 +1827,11 @@ emit_support_tinfos () ...@@ -1827,11 +1827,11 @@ emit_support_tinfos ()
&float_type_node, &double_type_node, &long_double_type_node, &float_type_node, &double_type_node, &long_double_type_node,
/* GCC extension types */ /* GCC extension types */
#if 0 #if 0
&complex_integer_type_node, &complex_integer_type_node,
&complex_float_type_node, &complex_double_type_node, &complex_float_type_node, &complex_double_type_node,
&complex_long_double_type_node, &complex_long_double_type_node,
#endif #endif
0 0
}; };
......
...@@ -785,6 +785,11 @@ _cpp_parse_expr (pfile) ...@@ -785,6 +785,11 @@ _cpp_parse_expr (pfile)
cpp_ice (pfile, "lex returns a NAME"); cpp_ice (pfile, "lex returns a NAME");
case ERROR: case ERROR:
goto syntax_error; goto syntax_error;
case '#':
/* We get '#' when get_directive_token hits a syntactically
invalid assertion predicate. _cpp_parse_assertion has
already issued an error. */
goto syntax_error;
default: default:
cpp_error (pfile, "invalid character in #if"); cpp_error (pfile, "invalid character in #if");
goto syntax_error; goto syntax_error;
......
...@@ -852,6 +852,10 @@ cpp_start_read (pfile, fname) ...@@ -852,6 +852,10 @@ cpp_start_read (pfile, fname)
CPP_OPTION (pfile, trigraphs) = 0; CPP_OPTION (pfile, trigraphs) = 0;
} }
/* -Wtraditional is not useful in C++ mode. */
if (CPP_OPTION (pfile, cplusplus))
CPP_OPTION (pfile, warn_traditional) = 0;
/* Set this if it hasn't been set already. */ /* Set this if it hasn't been set already. */
if (user_label_prefix == NULL) if (user_label_prefix == NULL)
user_label_prefix = USER_LABEL_PREFIX; user_label_prefix = USER_LABEL_PREFIX;
......
...@@ -604,7 +604,12 @@ _cpp_parse_assertion (pfile) ...@@ -604,7 +604,12 @@ _cpp_parse_assertion (pfile)
int c, dropwhite; int c, dropwhite;
_cpp_skip_hspace (pfile); _cpp_skip_hspace (pfile);
c = PEEKC(); c = PEEKC();
if (! is_idstart(c)) if (c == '\n')
{
cpp_error (pfile, "assertion without predicate");
return 0;
}
else if (! is_idstart(c))
{ {
cpp_error (pfile, "assertion predicate is not an identifier"); cpp_error (pfile, "assertion predicate is not an identifier");
return 0; return 0;
...@@ -709,8 +714,9 @@ _cpp_lex_token (pfile) ...@@ -709,8 +714,9 @@ _cpp_lex_token (pfile)
if (pfile->parsing_if_directive) if (pfile->parsing_if_directive)
{ {
_cpp_skip_hspace (pfile); _cpp_skip_hspace (pfile);
_cpp_parse_assertion (pfile); if (_cpp_parse_assertion (pfile))
return CPP_ASSERTION; return CPP_ASSERTION;
goto randomchar;
} }
if (pfile->parsing_define_directive && ! CPP_TRADITIONAL (pfile)) if (pfile->parsing_define_directive && ! CPP_TRADITIONAL (pfile))
......
...@@ -232,11 +232,11 @@ _cpp_handle_directive (pfile) ...@@ -232,11 +232,11 @@ _cpp_handle_directive (pfile)
if (CPP_WTRADITIONAL (pfile)) if (CPP_WTRADITIONAL (pfile))
{ {
if (!hash_at_bol && dtable[i].origin == KANDR) if (!hash_at_bol && dtable[i].origin == KANDR)
cpp_warning (pfile, "the # in #%s should be at the left margin", cpp_warning (pfile, "traditional C ignores #%s with the # indented",
dtable[i].name); dtable[i].name);
else if (hash_at_bol && dtable[i].origin != KANDR) else if (hash_at_bol && dtable[i].origin != KANDR)
cpp_warning (pfile, cpp_warning (pfile,
"the # in #%s should not be at the left margin", "traditional C rejects #%s unless the # is indented",
dtable[i].name); dtable[i].name);
} }
...@@ -1658,7 +1658,10 @@ do_assert (pfile) ...@@ -1658,7 +1658,10 @@ do_assert (pfile)
bslot = _cpp_lookup_slot (pfile, sym, blen, 1, &bhash); bslot = _cpp_lookup_slot (pfile, sym, blen, 1, &bhash);
if (! *bslot) if (! *bslot)
*bslot = base = _cpp_make_hashnode (sym, blen, T_ASSERT, bhash); {
*bslot = base = _cpp_make_hashnode (sym, blen, T_ASSERT, bhash);
base->value.aschain = 0;
}
else else
{ {
base = *bslot; base = *bslot;
......
...@@ -716,7 +716,7 @@ int main(argc, argv) int argc; char *argv[]; { ...@@ -716,7 +716,7 @@ int main(argc, argv) int argc; char *argv[]; {
printf ("#ifndef _FLOAT_H___\n"); printf ("#ifndef _FLOAT_H___\n");
printf ("#define _FLOAT_H___\n"); printf ("#define _FLOAT_H___\n");
if (SYS_FLOAT_H_WRAP) if (SYS_FLOAT_H_WRAP)
printf ("#include_next <float.h>\n"); printf (" #include_next <float.h>\n");
} }
#ifdef ID #ifdef ID
printf("%sProduced on %s by enquire version %s, CWI, Amsterdam%s\n", printf("%sProduced on %s by enquire version %s, CWI, Amsterdam%s\n",
......
...@@ -90,7 +90,7 @@ if [ -r $INPUT/$file ]; then ...@@ -90,7 +90,7 @@ if [ -r $INPUT/$file ]; then
#ifdef __cplusplus #ifdef __cplusplus
# define exception __math_exception # define exception __math_exception
#endif #endif
#include_next <math.h> #include_next <math.h>
#ifdef __cplusplus #ifdef __cplusplus
# undef exception # undef exception
#endif #endif
...@@ -123,7 +123,7 @@ if [ -r $INPUT/$file ]; then ...@@ -123,7 +123,7 @@ if [ -r $INPUT/$file ]; then
#ifdef __cplusplus #ifdef __cplusplus
# define bool __curses_bool_t # define bool __curses_bool_t
#endif #endif
#include_next <curses.h> #include_next <curses.h>
#ifdef __cplusplus #ifdef __cplusplus
# undef bool # undef bool
#endif #endif
......
...@@ -394,7 +394,7 @@ do ...@@ -394,7 +394,7 @@ do
#ifdef __cplusplus #ifdef __cplusplus
# define bool __curses_bool_t # define bool __curses_bool_t
#endif #endif
#include_next <$file> #include_next <$file>
#ifdef __cplusplus #ifdef __cplusplus
# undef bool # undef bool
#endif #endif
......
...@@ -57,7 +57,7 @@ if [ -r $INPUT/$file ]; then ...@@ -57,7 +57,7 @@ if [ -r $INPUT/$file ]; then
#ifdef __cplusplus #ifdef __cplusplus
# define exception __math_exception # define exception __math_exception
#endif #endif
#include_next <math.h> #include_next <math.h>
#ifdef __cplusplus #ifdef __cplusplus
# undef exception # undef exception
#endif #endif
...@@ -86,7 +86,7 @@ if [ -r $INPUT/$file ]; then ...@@ -86,7 +86,7 @@ if [ -r $INPUT/$file ]; then
#ifdef __cplusplus #ifdef __cplusplus
# define queue __stream_queue # define queue __stream_queue
#endif #endif
#include_next <sys/stream.h> #include_next <sys/stream.h>
#ifdef __cplusplus #ifdef __cplusplus
# undef queue # undef queue
#endif #endif
...@@ -116,7 +116,7 @@ if [ -r $INPUT/$file ]; then ...@@ -116,7 +116,7 @@ if [ -r $INPUT/$file ]; then
#ifdef __cplusplus #ifdef __cplusplus
# define bool __curses_bool_t # define bool __curses_bool_t
#endif #endif
#include_next <curses.h> #include_next <curses.h>
#ifdef __cplusplus #ifdef __cplusplus
# undef bool # undef bool
#endif #endif
......
...@@ -352,7 +352,7 @@ const char* apzAab_Fd_Zero_Asm_Posix_Types_HPatch[] = { ...@@ -352,7 +352,7 @@ const char* apzAab_Fd_Zero_Asm_Posix_Types_HPatch[] = {
for older versions of the Linux kernel. */\n\ for older versions of the Linux kernel. */\n\
#ifndef _POSIX_TYPES_H_WRAPPER\n\ #ifndef _POSIX_TYPES_H_WRAPPER\n\
#include <features.h>\n\ #include <features.h>\n\
#include_next <asm/posix_types.h>\n\ #include_next <asm/posix_types.h>\n\
\n\ \n\
#if defined(__FD_ZERO) && !defined(__GLIBC__)\n\ #if defined(__FD_ZERO) && !defined(__GLIBC__)\n\
#undef __FD_ZERO\n\ #undef __FD_ZERO\n\
...@@ -399,7 +399,7 @@ const char* apzAab_Fd_Zero_Gnu_Types_HPatch[] = { ...@@ -399,7 +399,7 @@ const char* apzAab_Fd_Zero_Gnu_Types_HPatch[] = {
"/* This file fixes a bug in the __FD_ZERO macro present in glibc 1.x. */\n\ "/* This file fixes a bug in the __FD_ZERO macro present in glibc 1.x. */\n\
#ifndef _TYPES_H_WRAPPER\n\ #ifndef _TYPES_H_WRAPPER\n\
#include <features.h>\n\ #include <features.h>\n\
#include_next <gnu/types.h>\n\ #include_next <gnu/types.h>\n\
\n\ \n\
#if defined(__FD_ZERO) && !defined(__GLIBC__)\n\ #if defined(__FD_ZERO) && !defined(__GLIBC__)\n\
#undef __FD_ZERO\n\ #undef __FD_ZERO\n\
...@@ -446,7 +446,7 @@ const char* apzAab_Fd_Zero_Selectbits_HPatch[] = { ...@@ -446,7 +446,7 @@ const char* apzAab_Fd_Zero_Selectbits_HPatch[] = {
"/* This file fixes a bug in the __FD_ZERO macro present in glibc 2.0.x. */\n\ "/* This file fixes a bug in the __FD_ZERO macro present in glibc 2.0.x. */\n\
#ifndef _SELECTBITS_H_WRAPPER\n\ #ifndef _SELECTBITS_H_WRAPPER\n\
#include <features.h>\n\ #include <features.h>\n\
#include_next <selectbits.h>\n\ #include_next <selectbits.h>\n\
\n\ \n\
#if defined(__FD_ZERO) && defined(__GLIBC__) \\\n\ #if defined(__FD_ZERO) && defined(__GLIBC__) \\\n\
\t&& defined(__GLIBC_MINOR__) && __GLIBC__ == 2 \\\n\ \t&& defined(__GLIBC_MINOR__) && __GLIBC__ == 2 \\\n\
......
...@@ -180,7 +180,7 @@ fix = { ...@@ -180,7 +180,7 @@ fix = {
for older versions of the Linux kernel. */ for older versions of the Linux kernel. */
\#ifndef _POSIX_TYPES_H_WRAPPER \#ifndef _POSIX_TYPES_H_WRAPPER
\#include <features.h> \#include <features.h>
\#include_next <asm/posix_types.h> \#include_next <asm/posix_types.h>
\#if defined(__FD_ZERO) && !defined(__GLIBC__) \#if defined(__FD_ZERO) && !defined(__GLIBC__)
\#undef __FD_ZERO \#undef __FD_ZERO
...@@ -219,7 +219,7 @@ fix = { ...@@ -219,7 +219,7 @@ fix = {
'/* This file fixes a bug in the __FD_ZERO macro present in glibc 1.x. */ '/* This file fixes a bug in the __FD_ZERO macro present in glibc 1.x. */
\#ifndef _TYPES_H_WRAPPER \#ifndef _TYPES_H_WRAPPER
\#include <features.h> \#include <features.h>
\#include_next <gnu/types.h> \#include_next <gnu/types.h>
\#if defined(__FD_ZERO) && !defined(__GLIBC__) \#if defined(__FD_ZERO) && !defined(__GLIBC__)
\#undef __FD_ZERO \#undef __FD_ZERO
...@@ -258,7 +258,7 @@ fix = { ...@@ -258,7 +258,7 @@ fix = {
'/* This file fixes a bug in the __FD_ZERO macro present in glibc 2.0.x. */ '/* This file fixes a bug in the __FD_ZERO macro present in glibc 2.0.x. */
\#ifndef _SELECTBITS_H_WRAPPER \#ifndef _SELECTBITS_H_WRAPPER
\#include <features.h> \#include <features.h>
\#include_next <selectbits.h> \#include_next <selectbits.h>
\#if defined(__FD_ZERO) && defined(__GLIBC__) \\ \#if defined(__FD_ZERO) && defined(__GLIBC__) \\
&& defined(__GLIBC_MINOR__) && __GLIBC__ == 2 \\ && defined(__GLIBC_MINOR__) && __GLIBC__ == 2 \\
......
...@@ -563,7 +563,7 @@ _EOF_ ...@@ -563,7 +563,7 @@ _EOF_
for older versions of the Linux kernel. */ for older versions of the Linux kernel. */
#ifndef _POSIX_TYPES_H_WRAPPER #ifndef _POSIX_TYPES_H_WRAPPER
#include <features.h> #include <features.h>
#include_next <asm/posix_types.h> #include_next <asm/posix_types.h>
#if defined(__FD_ZERO) && !defined(__GLIBC__) #if defined(__FD_ZERO) && !defined(__GLIBC__)
#undef __FD_ZERO #undef __FD_ZERO
...@@ -600,7 +600,7 @@ _EOF_ ...@@ -600,7 +600,7 @@ _EOF_
/* This file fixes a bug in the __FD_ZERO macro present in glibc 1.x. */ /* This file fixes a bug in the __FD_ZERO macro present in glibc 1.x. */
#ifndef _TYPES_H_WRAPPER #ifndef _TYPES_H_WRAPPER
#include <features.h> #include <features.h>
#include_next <gnu/types.h> #include_next <gnu/types.h>
#if defined(__FD_ZERO) && !defined(__GLIBC__) #if defined(__FD_ZERO) && !defined(__GLIBC__)
#undef __FD_ZERO #undef __FD_ZERO
...@@ -636,7 +636,7 @@ _EOF_ ...@@ -636,7 +636,7 @@ _EOF_
/* This file fixes a bug in the __FD_ZERO macro present in glibc 2.0.x. */ /* This file fixes a bug in the __FD_ZERO macro present in glibc 2.0.x. */
#ifndef _SELECTBITS_H_WRAPPER #ifndef _SELECTBITS_H_WRAPPER
#include <features.h> #include <features.h>
#include_next <selectbits.h> #include_next <selectbits.h>
#if defined(__FD_ZERO) && defined(__GLIBC__) \ #if defined(__FD_ZERO) && defined(__GLIBC__) \
&& defined(__GLIBC_MINOR__) && __GLIBC__ == 2 \ && defined(__GLIBC_MINOR__) && __GLIBC__ == 2 \
......
...@@ -4,5 +4,5 @@ ...@@ -4,5 +4,5 @@
instead of this text. */ instead of this text. */
#define _GCC_NEXT_LIMITS_H /* tell gcc's limits.h to recurse */ #define _GCC_NEXT_LIMITS_H /* tell gcc's limits.h to recurse */
#include_next <limits.h> #include_next <limits.h>
#undef _GCC_NEXT_LIMITS_H #undef _GCC_NEXT_LIMITS_H
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
#else /* not _GCC_LIMITS_H_ */ #else /* not _GCC_LIMITS_H_ */
#ifdef _GCC_NEXT_LIMITS_H #ifdef _GCC_NEXT_LIMITS_H
#include_next <limits.h> /* recurse down to the real one */ #include_next <limits.h> /* recurse down to the real one */
#endif #endif
#endif /* not _GCC_LIMITS_H_ */ #endif /* not _GCC_LIMITS_H_ */
2000-04-02 Zack Weinberg <zack@wolery.cumb.org>
* gcc.c-torture/compile/981211-1.c: Move to...
* gcc.dg/cpp-as1.c: ...here.
* gcc.dg/cpp-as2.c: New file.
* gcc.dg/cpp-tradwarn1.c: Change warning regexps to match the
compiler.
2000-04-02 Neil Booth <NeilB@earthling.net> 2000-04-02 Neil Booth <NeilB@earthling.net>
* gcc.dg/cpp-cond.c New tests. * gcc.dg/cpp-cond.c New tests.
......
/* Basic tests of the #assert preprocessor extension. */ /* Basic tests of the #assert preprocessor extension. */
/* { dg-do compile } */
/* { dg-options "" } */
#define fail int fail #define fail int fail
......
/* Malformed assertion tests. */
/* { dg-do preprocess } */
/* { dg-options "" } */
#assert /* { dg-error "without predicate" "assert w/o predicate" } */
#assert % /* { dg-error "not an identifier" "assert punctuation" } */
#assert 12 /* { dg-error "not an identifier" "assert number" } */
#assert abc /* { dg-error "missing token-sequence" "assert w/o answer" } */
#if # /* { dg-error "without predicate" "test w/o predicate" } */
#endif
#if #% /* { dg-error "not an identifier" "test punctuation" } */
#endif
#if #12 /* { dg-error "not an identifier" "test number" } */
#endif
#if #abc
#error /* { dg-bogus "error" "test w/o answer" } */
#endif
#if #abc[def] /* { dg-error "invalid char" "test with malformed answer" } */
#endif
...@@ -2,27 +2,27 @@ ...@@ -2,27 +2,27 @@
/* { dg-do preprocess } */ /* { dg-do preprocess } */
/* { dg-options "-pedantic -Wtraditional" } */ /* { dg-options "-pedantic -Wtraditional" } */
/* Block 1: K+R directives should have the # at the left margin. */ /* Block 1: K+R directives should have the # indented. */
#define foo bar /* { dg-bogus "left margin" "^#kandr" } */ #define foo bar /* { dg-bogus "indented" "^#kandr" } */
# define foo bar /* { dg-bogus "left margin" "^# kandr" } */ # define foo bar /* { dg-bogus "indented" "^# kandr" } */
#define foo bar /* { dg-warning "left margin" "^ #kandr" } */ #define foo bar /* { dg-warning "indented" "^ #kandr" } */
# define foo bar /* { dg-warning "left margin" "^ # kandr" } */ # define foo bar /* { dg-warning "indented" "^ # kandr" } */
/* Block 2: C89 directives should not have the # at the left margin. */ /* Block 2: C89 directives should not have the # indented. */
#pragma whatever /* { dg-warning "left margin" "^#c89" } */ #pragma whatever /* { dg-warning "indented" "^#c89" } */
# pragma whatever /* { dg-warning "left margin" "^# c89" } */ # pragma whatever /* { dg-warning "indented" "^# c89" } */
#pragma whatever /* { dg-bogus "left margin" "^ #c89" } */ #pragma whatever /* { dg-bogus "indented" "^ #c89" } */
# pragma whatever /* { dg-bogus "left margin" "^ # c89" } */ # pragma whatever /* { dg-bogus "indented" "^ # c89" } */
/* Block 3: Extensions should not have the # at the left margin, /* Block 3: Extensions should not have the # indented,
_and_ they should get a -pedantic warning. */ _and_ they should get a -pedantic warning. */
#assert foo(bar) /* { dg-warning "left margin" "^#ext" } */ #assert foo(bar) /* { dg-warning "indented" "^#ext" } */
# assert bar(baz) /* { dg-warning "left margin" "^# ext" } */ # assert bar(baz) /* { dg-warning "indented" "^# ext" } */
#assert baz(quux) /* { dg-bogus "left margin" "^ #ext" } */ #assert baz(quux) /* { dg-bogus "indented" "^ #ext" } */
# assert quux(weeble) /* { dg-bogus "left margin" "^ # ext" } */ # assert quux(weeble) /* { dg-bogus "indented" "^ # ext" } */
/* { dg-warning "ISO C does not" "extension warning" { target native } 22 } */ /* { dg-warning "ISO C does not" "extension warning" { target native } 22 } */
/* { dg-warning "ISO C does not" "extension warning" { target native } 23 } */ /* { dg-warning "ISO C does not" "extension warning" { target native } 23 } */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment