1  /* Copyright (C) 2007 Free Software Foundation, Inc.  */
       2  
       3  /* { dg-do preprocess } */
       4  /* { dg-require-effective-target powerpc_altivec_ok } */
       5  /* { dg-options "-maltivec" } */
       6  
       7  /* Conditional macros should not be expanded by pragmas.  */
       8  #pragma __vector
       9  _Pragma ("__vector")
      10  
      11  /* Redefinition of conditional macros.  */
      12  /* No warning should be generated.  */
      13  
      14  #define __vector __new_vector
      15  #define __pixel __new_pixel
      16  #define __bool __new_bool
      17  #define vector new_vector
      18  #define pixel new_pixel
      19  #define bool new_bool
      20  
      21  /* Definition of conditional macros.  */
      22  /* No warning should be generated.  */
      23  
      24  #undef __vector
      25  #define __vector __new_vector
      26  /* { dg-message "-:location of the previous"  "prev __vector defn"  { target *-*-* } .-1 } */
      27  
      28  #undef __pixel
      29  #define __pixel __new_pixel
      30  /* { dg-message "-:location of the previous"  "prev __pixel defn"   { target *-*-* } .-1 } */
      31  
      32  #undef __bool
      33  #define __bool __new_bool
      34  /* { dg-message "-:location of the previous"  "prev __bool defn"    { target *-*-* } .-1 } */
      35  
      36  #undef vector
      37  #define vector new_vector
      38  /* { dg-message "-:location of the previous"  "prev vector defn"    { target *-*-* } .-1 } */
      39  
      40  #undef pixel
      41  #define pixel new_pixel
      42  /* { dg-message "-:location of the previous"  "prev pixel defn"     { target *-*-* } .-1 } */
      43  
      44  #undef bool
      45  #define bool new_bool
      46  /* { dg-message "-:location of the previous"  "prev bool defn"      { target *-*-* } .-1 } */
      47  
      48  /* Re-definition of "unconditional" macros.  */
      49  /* Warnings should be generated as usual.  */
      50  
      51  #define __vector	__newer_vector
      52  /* { dg-warning "-:redefined" "__vector redefined"  { target *-*-* } .-1 } */
      53  
      54  #define __pixel		__newer_pixel
      55  /* { dg-warning "-:redefined" "__pixel redefined"   { target *-*-* } .-1 } */
      56  
      57  #define __bool		__newer_bool
      58  /* { dg-warning "-:redefined" "__bool redefined"    { target *-*-* } .-1 } */
      59  
      60  #define vector		newer_vector
      61  /* { dg-warning "-:redefined" "vector redefined"    { target *-*-* } .-1 } */
      62  
      63  #define pixel		newer_pixel
      64  /* { dg-warning "-:redefined" "pixel redefined"     { target *-*-* } .-1 } */
      65  
      66  #define bool		newer_bool
      67  /* { dg-warning "-:redefined" "bool redefined"      { target *-*-* } .-1 } */