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.

Reply via email to