https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68934
Bug ID: 68934 Summary: ARM using simd types should be rejected if not fpu=neon Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: chrbr at gcc dot gnu.org Target Milestone: --- the declaration: -------------- #pragma GCC target ("fpu=vfp") __simd64_int8_t b; -------------- legitimately fails with error: unknown type name '__simd64_int8_t' However, if the type was previously created as (for instance) with ---------------- #pragma GCC target ("fpu=neon") __simd64_int8_t a; #pragma GCC target ("fpu=vfp") __simd64_int8_t b; ----------------- then it compiles, but this is wrong for 2 reasons: 1) it's not consistent (the user doesn't know if neon types are available or not) 2) nothing prevents "b" to be latter used in a code compiled for NEON, creating discrepancies between modes and possible wrong code (or ICEs) A mechanism to deactivate SIMD types in arm_set_current_function is needed.