This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/65624] ICE in aarch64-builtins.c when expanding 4-argument aarch64 intrinsic.


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65624

--- Comment #4 from Maxim Ostapenko <chefmax at gcc dot gnu.org> ---
(In reply to ktkachov from comment #3)
> Actually, r218021 touches the argument expansion rather than builtin
> expansion functions, so I'm not sure that would fix it. But still, I can't
> reproduce this on current trunk with aarch64-none-linux-gnu

I'm sorry, but did you try to reproduce on i686 host? This is the only host I
can reproduce this on, for x86_64 everything is fine.

When aarch64_simd_expand_builtin fills args array for 4-argument intrinsic with
return value, it feels it with values like this:

1070      args[k] = SIMD_ARG_STOP;
(gdb) p args
$4 = {SIMD_ARG_COPY_TO_REG, SIMD_ARG_COPY_TO_REG, SIMD_ARG_COPY_TO_REG,
SIMD_ARG_COPY_TO_REG, SIMD_ARG_LANE_INDEX}
(gdb) p args[5]
$6 = SIMD_ARG_STOP

Note, that SIMD_ARG_STOP was written right after args array, since it's size is
5. Isn't it a UB here?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]