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
27#undef __pixel
28#define __pixel __new_pixel
29
30#undef __bool
31#define __bool __new_bool
32
33#undef vector
34#define vector new_vector
35
36#undef pixel
37#define pixel new_pixel
38
39#undef bool
40#define bool new_bool
41
42/* Re-definition of "unconditional" macros.  */
43/* Warnings should be generated as usual.  */
44
45#define __vector	__newer_vector
46#define __pixel		__newer_pixel
47#define __bool		__newer_bool
48#define vector		newer_vector
49#define pixel		newer_pixel
50#define bool		newer_bool
51
52/* { dg-warning "redefined" "__vector redefined"  { target *-*-* } 45 } */
53/* { dg-warning "redefined" "__pixel redefined"   { target *-*-* } 46 } */
54/* { dg-warning "redefined" "__bool redefined"    { target *-*-* } 47 } */
55/* { dg-warning "redefined" "vector redefined"    { target *-*-* } 48 } */
56/* { dg-warning "redefined" "pixel redefined"     { target *-*-* } 49 } */
57/* { dg-warning "redefined" "bool redefined"      { target *-*-* } 50 } */
58
59/* { dg-message "location of the previous"  "prev __vector defn"  { target *-*-* } 25 } */
60/* { dg-message "location of the previous"  "prev __pixel defn"   { target *-*-* } 28 } */
61/* { dg-message "location of the previous"  "prev __bool defn"    { target *-*-* } 31 } */
62/* { dg-message "location of the previous"  "prev vector defn"    { target *-*-* } 34 } */
63/* { dg-message "location of the previous"  "prev pixel defn"     { target *-*-* } 37 } */
64/* { dg-message "location of the previous"  "prev bool defn"      { target *-*-* } 40 } */
65