Using va_arg with _Decimal128 for powerpc-linux results in an error
message followed by an ICE, resulting in several new failing GCC
tests.
This testcase:
void
foo (int n, ...)
{
__builtin_va_list ap;
_Decimal128 x;
__builtin_va_start (ap, n);
x = __builtin_va_arg (ap, _Decimal128);
__builtin_va_end (ap);
}
results in these messages:
elm3b145% /opt/gcc-nightly/trunk/bin/gcc -c va.c
va.c: In function foo:
va.c:3: error: type mismatch in binary expression
unsigned char
unsigned char
unsigned int
D.1240 = D.1239 | 1
va.c:3: internal compiler error: verify_gimple failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
The failure becomes apparent with r133479, but it also happens with earlier
GCC sources configured with --enable-checking=types.
I plan to continue investigating this problem.
--
Summary: invalid type for va_arg with _Decimal128
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: target
AssignedTo: janis at gcc dot gnu dot org
ReportedBy: janis at gcc dot gnu dot org
GCC target triplet: powerpc-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35713