re PR middle-end/32970 (C++ frontend can not handle vector pointer constant parameter)

PR middle-end/32970
gcc/
	* tree.c (reconstruct_complex_type): For a pointer to a vector,
	use build_qualified_type to retain qualifiers of the base type.
testsuite/
	* g++.dg/ext/altivec-14.C: New test.

From-SVN: r127578
This commit is contained in:
Ben Elliston 2007-08-17 15:24:24 +10:00
parent 64276d76e1
commit b79f09ac80
4 changed files with 27 additions and 4 deletions

View File

@ -1,4 +1,12 @@
2007-08-17 Sa Liu <saliu@de.ibm.com>
Ulrich Weigand <uweigand@de.ibm.com>
PR middle-end/32970
* tree.c (reconstruct_complex_type): For a pointer to a vector,
use build_qualified_type to retain qualifiers of the base type.
2007-08-17 Chen Liqin <liqin@sunnorth.com.cn>
* config/score/score.md : Update pattern tablejump.
* config/score/score.c : Update score_initialize_trampoline
function.

View File

@ -1,3 +1,8 @@
2007-08-17 Ben Elliston <bje@au.ibm.com>
PR middle-end/32970
* g++.dg/ext/altivec-14.C: New test.
2007-08-16 Uros Bizjak <ubizjak@gmail.com>
* gcc.dg/tree-ssa/ssa-dse-10.c: Clean up all dse dump files.

View File

@ -0,0 +1,13 @@
/* { dg-do compile { target powerpc*-*-* } } */
/* { dg-require-effective-target powerpc_altivec_ok } */
/* { dg-options "-maltivec" } */
void f (__attribute__((altivec (vector__))) signed int * a,
__attribute__((altivec (vector__))) signed int * const b);
int
foo (void)
{
__attribute__((altivec (vector__))) signed int a[1], b[1];
f (a, b);
}

View File

@ -7609,10 +7609,7 @@ reconstruct_complex_type (tree type, tree bottom)
else
return bottom;
TYPE_READONLY (outer) = TYPE_READONLY (type);
TYPE_VOLATILE (outer) = TYPE_VOLATILE (type);
return outer;
return build_qualified_type (outer, TYPE_QUALS (type));
}
/* Returns a vector tree node given a mode (integer, vector, or BLKmode) and