Patch for PR target/16155.

2004-08-02  Ben Elliston  <bje@au.ibm.com>

	PR target/16155
	* config/rs6000/altivec.h: Replace typeof with __typeof__.

[testsuite]
2004-08-02  Ben Elliston  <bje@au.ibm.com>

	* gcc.dg/pr16155.c: New test.

From-SVN: r85418
This commit is contained in:
Ben Elliston 2004-08-02 01:05:47 +00:00 committed by Ben Elliston
parent 6a3bc5b1d0
commit a4e41fdeec
4 changed files with 45 additions and 18 deletions

View file

@ -1,3 +1,8 @@
2004-08-02 Ben Elliston <bje@au.ibm.com>
PR target/16155
* config/rs6000/altivec.h: Replace typeof with __typeof__.
2004-08-01 Richard Henderson <rth@redhat.com>
* expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with

View file

@ -311,7 +311,7 @@ struct __vec_step_help<vector float>
static const int _S_elem = 4;
};
#define vec_step(t) __vec_step_help<typeof(t)>::_S_elem
#define vec_step(t) __vec_step_help<__typeof__(t)>::_S_elem
/* vec_abs */
@ -8313,31 +8313,31 @@ vec_any_out (vector float a1, vector float a2)
/* Helper macros. */
#define __un_args_eq(xtype, x) \
__builtin_types_compatible_p (xtype, typeof (x))
__builtin_types_compatible_p (xtype, __typeof__ (x))
#define __bin_args_eq(xtype, x, ytype, y) \
(__builtin_types_compatible_p (xtype, typeof (x)) \
&& __builtin_types_compatible_p (ytype, typeof (y)))
(__builtin_types_compatible_p (xtype, __typeof__ (x)) \
&& __builtin_types_compatible_p (ytype, __typeof__ (y)))
#define __tern_args_eq(xtype, x, ytype, y, ztype, z) \
(__builtin_types_compatible_p (xtype, typeof (x)) \
&& __builtin_types_compatible_p (ytype, typeof (y)) \
&& __builtin_types_compatible_p (ztype, typeof (z)))
(__builtin_types_compatible_p (xtype, __typeof__ (x)) \
&& __builtin_types_compatible_p (ytype, __typeof__ (y)) \
&& __builtin_types_compatible_p (ztype, __typeof__ (z)))
#define __ch(x, y, z) __builtin_choose_expr (x, y, z)
#define vec_step(t) \
__ch (__builtin_types_compatible_p (typeof (t), vector signed int), 4, \
__ch (__builtin_types_compatible_p (typeof (t), vector unsigned int), 4, \
__ch (__builtin_types_compatible_p (typeof (t), vector bool int), 4, \
__ch (__builtin_types_compatible_p (typeof (t), vector signed short), 8, \
__ch (__builtin_types_compatible_p (typeof (t), vector unsigned short), 8, \
__ch (__builtin_types_compatible_p (typeof (t), vector bool short), 8, \
__ch (__builtin_types_compatible_p (typeof (t), vector pixel), 8, \
__ch (__builtin_types_compatible_p (typeof (t), vector signed char), 16, \
__ch (__builtin_types_compatible_p (typeof (t), vector unsigned char), 16, \
__ch (__builtin_types_compatible_p (typeof (t), vector bool char), 16, \
__ch (__builtin_types_compatible_p (typeof (t), vector float), 4, \
__ch (__builtin_types_compatible_p (__typeof__ (t), vector signed int), 4, \
__ch (__builtin_types_compatible_p (__typeof__ (t), vector unsigned int), 4, \
__ch (__builtin_types_compatible_p (__typeof__ (t), vector bool int), 4, \
__ch (__builtin_types_compatible_p (__typeof__ (t), vector signed short), 8, \
__ch (__builtin_types_compatible_p (__typeof__ (t), vector unsigned short), 8, \
__ch (__builtin_types_compatible_p (__typeof__ (t), vector bool short), 8, \
__ch (__builtin_types_compatible_p (__typeof__ (t), vector pixel), 8, \
__ch (__builtin_types_compatible_p (__typeof__ (t), vector signed char), 16, \
__ch (__builtin_types_compatible_p (__typeof__ (t), vector unsigned char), 16, \
__ch (__builtin_types_compatible_p (__typeof__ (t), vector bool char), 16, \
__ch (__builtin_types_compatible_p (__typeof__ (t), vector float), 4, \
__builtin_altivec_compiletime_error ("vec_step"))))))))))))
#define vec_abs(a) \

View file

@ -1,3 +1,8 @@
2004-08-02 Ben Elliston <bje@au.ibm.com>
PR target/16155
* gcc.dg/pr16155.c: New test.
2004-07-31 Joseph S. Myers <jsm@polyomino.org.uk>
* gcc.dg/redecl-2.c: New test.

View file

@ -0,0 +1,17 @@
/* { dg-do compile { target powerpc*-*-* } } */
/* { dg-options "-maltivec -ansi" } */
/* PR 16155
* Compilation of a simple altivec test program fails if the -ansi flag is
* given to gcc, when compiling with -maltivec.
*/
#include <altivec.h>
void foo(void)
{
vector unsigned short a, b;
a = vec_splat(b, 0);
}
/* { dg-bogus "parse error before \"typeof\"" "-maltivec -mansi" { target powerpc*-*-* } 0 } */