Commit 16d12992 by Kyrylo Tkachov Committed by Kyrylo Tkachov

[AArch64] Properly reject invalid attribute strings

	* config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
	false when argument string is not found in the attributes table
	at all.

	* gcc.target/aarch64/target_attr_17.c: New test.

From-SVN: r232440
parent ad45ac43
2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
false when argument string is not found in the attributes table
at all.
2016-01-15 David Edelsohn <dje.gcc@gmail.com>
PR target/68609
......
......@@ -8898,6 +8898,7 @@ aarch64_process_one_target_attr (char *arg_str, const char* pragma_or_attr)
arg++;
}
const struct aarch64_attribute_info *p_attr;
bool found = false;
for (p_attr = aarch64_attributes; p_attr->name; p_attr++)
{
/* If the names don't match up, or the user has given an argument
......@@ -8906,6 +8907,7 @@ aarch64_process_one_target_attr (char *arg_str, const char* pragma_or_attr)
if (strcmp (str_to_check, p_attr->name) != 0)
continue;
found = true;
bool attr_need_arg_p = p_attr->attr_type == aarch64_attr_custom
|| p_attr->attr_type == aarch64_attr_enum;
......@@ -8985,7 +8987,10 @@ aarch64_process_one_target_attr (char *arg_str, const char* pragma_or_attr)
}
}
return true;
/* If we reached here we either have found an attribute and validated
it or didn't match any. If we matched an attribute but its arguments
were malformed we will have returned false already. */
return found;
}
/* Count how many times the character C appears in
......
2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* gcc.target/aarch64/target_attr_17.c: New test.
2016-01-15 Richard Biener <rguenther@suse.de>
PR tree-optimization/66856
......
__attribute__((target("invalid-attr-string")))
int
foo (int a)
{
return a + 5;
}
/* { dg-error "target attribute.*is invalid" "" { target *-*-* } 0 } */
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment