https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85198
Bill Schmidt <wschmidt at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2018-04-18 Ever confirmed|0 |1 --- Comment #3 from Bill Schmidt <wschmidt at gcc dot gnu.org> --- Seems like something else weird is going on. For experimenting, I changed rs6000_handle_altivec_attribute to create vector long long types only for these cases, and we still have a problem. During parsing, we have a VIEW_CONVERT_EXPR that reinterprets vulli as an array of long int, even though vulli has type __vector long long. #9 0x000000001052ba54 in check_function_arguments (loc=20555813, fndecl=0x3fffb5c17600, fntype=0x3fffb5dc3678, nargs=2, argarray=0x3fffb5dd1e58, arglocs=0x3fffffffdb30) at /home/wschmidt/gcc/gcc-mainline-test/gcc/c-family/c-common.c:5627 5627 check_function_format (TYPE_ATTRIBUTES (fntype), nargs, argarray, arglocs); (gdb) ptr argarray[1] <array_ref 0x3fffb5cd0968 type <integer_type 0x3fffb5b10888 long int public DI size <integer_cst 0x3fffb5ae1008 constant 64> unit-size <integer_cst 0x3fffb5ae1020 constant 8> align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x3fffb5b10888 precision:64 min <integer_cst 0x3fffb5ae1290 -9223372036854775808> max <integer_cst 0x3fffb5ae12a8 9223372036854775807> pointer_to_this <pointer_type 0x3fffb5b14b78>> arg:0 <view_convert_expr 0x3fffb5afd9c0 type <array_type 0x3fffb5dc1308 type <integer_type 0x3fffb5b10888 long int> TI size <integer_cst 0x3fffb5ae1050 constant 128> unit-size <integer_cst 0x3fffb5ae1068 constant 16> align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x3fffb5dc1308 domain <integer_type 0x3fffb5c998e8>> arg:0 <var_decl 0x3fffb7f71320 vulli type <vector_type 0x3fffb5bc5e80 __vector long long> addressable used public static common read V2DI defer-output pr85198-2.c:3:22 size <integer_cst 0x3fffb5ae1050 128> unit-size <integer_cst 0x3fffb5ae1068 16> align:128 warn_if_not_align:0>> arg:1 <integer_cst 0x3fffb5ae1398 type <integer_type 0x3fffb5b10738 int> constant 0> pr85198-2.c:7:44 start: pr85198-2.c:7:39 finish: pr85198-2.c:7:46> Confirmed, BTW.