diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index a9a1800af53..975f7faf968 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -17821,7 +17821,16 @@ aarch64_process_target_attr (tree args) num_attrs++; if (!aarch64_process_one_target_attr (token)) { - error ("pragma or attribute % is not valid", token); + /* Check if token is possibly an arch extension without + leading '+'. */ + char *str = (char *) xmalloc (strlen (token) + 2); + str[0] = '+'; + strcpy(str + 1, token); + if (aarch64_handle_attr_isa_flags (str)) + error("arch extension %<%s%> should be prepended with %<+%>", token); + else + error ("pragma or attribute % is not valid", token); + free (str); return false; }