[Bug target/85198] long long int vector mistaken as long int vector
wschmidt at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Apr 18 20:07:00 GMT 2018
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.
More information about the Gcc-bugs
mailing list