mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-10 00:47:33 +08:00
Test cases for c++ comments and endif labels in system headers.
I made them up all by myself. From-SVN: r31653
This commit is contained in:
parent
35ac3890ec
commit
73b5cdf98a
20
gcc/testsuite/gcc.dg/cxx-comments-1.c
Normal file
20
gcc/testsuite/gcc.dg/cxx-comments-1.c
Normal file
@ -0,0 +1,20 @@
|
||||
/* { dg-do preprocess } */
|
||||
/* { dg-options "-pedantic -std=gnu89" } */
|
||||
|
||||
/* You can't do this in your own code... */
|
||||
// C++ comment is not in C89 { dg-warning "style comment|reported only once" "good warning" }
|
||||
|
||||
/* ...but we don't bitch about it more than once. */
|
||||
// C++ comment is not in C89 { dg-bogus "style comment" "bad warning" }
|
||||
|
||||
/*
|
||||
{ dg-final { if ![file exists cxx-comments-1.i] { return } } }
|
||||
{ dg-final { set tmp [grep cxx-comments-1.i "is not in C89" line] } }
|
||||
{ dg-final { # send_user "$tmp\n" } }
|
||||
{ dg-final { if [regexp "is not in C89" $tmp] \{ } }
|
||||
{ dg-final { fail "cxx-comments-1: comment strip check" } }
|
||||
{ dg-final { \} else \{ } }
|
||||
{ dg-final { pass "cxx-comments-1: comment strip check" } }
|
||||
{ dg-final { \} } }
|
||||
*/
|
||||
|
20
gcc/testsuite/gcc.dg/cxx-comments-2.c
Normal file
20
gcc/testsuite/gcc.dg/cxx-comments-2.c
Normal file
@ -0,0 +1,20 @@
|
||||
/* { dg-do preprocess } */
|
||||
/* { dg-options "-pedantic -std=c89" } */
|
||||
|
||||
/* This is an extension and therefore gets a warning. */
|
||||
#line 5 "cxx-comments-2.c" 3 /* { dg-warning "garbage at end" "#line extension" } */
|
||||
|
||||
/* A system header may contain C++ comments irrespective of mode. */
|
||||
// C++ comment is not in C89 { dg-bogus "style comment" "bad warning" }
|
||||
|
||||
/*
|
||||
{ dg-final { if ![file exists cxx-comments-2.i] { return } } }
|
||||
{ dg-final { set tmp [grep cxx-comments-2.i "is not in C89" line] } }
|
||||
{ dg-final { # send_user "$tmp\n" } }
|
||||
{ dg-final { if [regexp "is not in C89" $tmp] \{ } }
|
||||
{ dg-final { fail "cxx-comments-2: comment strip check" } }
|
||||
{ dg-final { \} else \{ } }
|
||||
{ dg-final { pass "cxx-comments-2: comment strip check" } }
|
||||
{ dg-final { \} } }
|
||||
*/
|
||||
|
15
gcc/testsuite/gcc.dg/endif-label.c
Normal file
15
gcc/testsuite/gcc.dg/endif-label.c
Normal file
@ -0,0 +1,15 @@
|
||||
/* { dg-do preprocess } */
|
||||
/* { dg-options "-pedantic -Wall" } */
|
||||
|
||||
/* You can't get away with this in your own code... */
|
||||
#ifdef KERNEL
|
||||
#define foo
|
||||
#endif KERNEL /* { dg-warning "text following" "good warning" } */
|
||||
|
||||
/* This will provoke a warning because the '3' is an extension. */
|
||||
#line 10 "endif-label.c" 3 /* { dg-warning "garbage at end" "#line extension" } */
|
||||
|
||||
/* ... but in a system header, it's acceptable. */
|
||||
#ifdef KERNEL
|
||||
#define foo
|
||||
#endif KERNEL /* { dg-bogus "text following" "bad warning" } */
|
Loading…
Reference in New Issue
Block a user