OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gcc.dg/] [cpp/] [tr-warn3.c] - Rev 328

Go to most recent revision | Compare with Previous | Blame | View Log

/* Test for warnings about nontraditional directives inside the unused
   clauses of #if statements.  Extensions do _not_ receive pedantic
   warnings inside unused clauses because they are often hidden this
   way on purpose.  However they do still require indentation for K&R.  */
/* { dg-do preprocess } */
/* { dg-options "-pedantic -Wtraditional" } */
 
#if 1
 
/* Block 1: K+R directives should have the # indented to warn.  */
 
#define foo bar		/* { dg-bogus "indented" "^#kandr"     } */
# define foo bar	/* { dg-bogus "indented" "^# kandr"    } */
 #define foo bar	/* { dg-warning "indented" "^ #kandr"  } */
 # define foo bar	/* { dg-warning "indented" "^ # kandr" } */
 
/* Block 2: C89 directives should not have the # indented to warn.  */
 
#pragma whatever	/* { dg-warning "indented" "^#c89"     } */
# pragma whatever	/* { dg-warning "indented" "^# c89"    } */
 #pragma whatever	/* { dg-bogus "indented" "^ #c89"      } */
 # pragma whatever	/* { dg-bogus "indented" "^ # c89"     } */
 
/* Block 3: Extensions should not have the # indented to warn, _and_
   they should get a -pedantic warning. */
 
#assert foo(bar)	/* { dg-warning "indented" "^#ext"    } */
# assert bar(baz)	/* { dg-warning "indented" "^# ext"   } */
 #assert baz(quux)	/* { dg-bogus "indented" "^ #ext"     } */
 # assert quux(weeble)	/* { dg-bogus "indented" "^ # ext"    } */
 
#else
 
/* Block 1: K+R directives should have the # indented to warn.  */
 
#undef foo bar		/* { dg-bogus "indented" "^#kandr"     } */
# undef foo bar		/* { dg-bogus "indented" "^# kandr"    } */
 #undef foo bar		/* { dg-warning "indented" "^ #kandr"  } */
 # undef foo bar	/* { dg-warning "indented" "^ # kandr" } */
 
/* Block 2: C89 directives should not have the # indented to warn.  */
 
#error whatever		/* { dg-warning "indented" "^#c89"     } */
# error whatever	/* { dg-warning "indented" "^# c89"    } */
 #error whatever	/* { dg-bogus "indented" "^ #c89"      } */
 # error whatever	/* { dg-bogus "indented" "^ # c89"     } */
 
/* Block 3: Extensions should not have the # indented to warn, and
   they should _not_ get a -pedantic warning. */
 
#unassert foo(bar)		/* { dg-warning "indented" "^#ext"    } */
# unassert bar(baz)		/* { dg-warning "indented" "^# ext"   } */
 #unassert baz(quux)		/* { dg-bogus "indented" "^ #ext"     } */
 # unassert quux(weeble)	/* { dg-bogus "indented" "^ # ext"    } */
 
#endif
 
/* { dg-warning "GCC extension" "extension warning" { target *-*-* } 27 } */
/* { dg-warning "GCC extension" "extension warning" { target *-*-* } 28 } */
/* { dg-warning "GCC extension" "extension warning" { target *-*-* } 29 } */
/* { dg-warning "GCC extension" "extension warning" { target *-*-* } 30 } */
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.