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/68674] ARM/AARCH64 attribute target neon internal compiler error: in copy_to_mode_reg, at explow.c:595


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

--- Comment #8 from ktkachov at gcc dot gnu.org ---
(In reply to chrbr from comment #7)
> I was suggesting in #68934 to make this code invalid and report an error.
> Since SIMD types should not be used for declarations in NOSIMD context. But
> I don't have a strong position about this. We might make this code work by
> repairing the DECL_MODE depending on the usage context, but certainly less
> practical than handle the error.
> 
> Other opinions ?
> 
> thanks

I agree about considering this code invalid.
In the context where the variables are being declared there is no SIMD, so they
don't really have a meaning. In the testcase if we wrap the declarations in a
pargma like so:
#pragma GCC push_options
#pragma GCC target ("+simd")
int8x8_t a, b;
int16x8_t e;
#pragma GCC pop_options

then we don't ICE.
I suspect repairing DECL_MODE will be a messy affair. So unless you see a
clean/safe way of doing this I'd propose just somehow detecting this error and
throwing an error instead of an ICE.

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