Don't warn function alignment if warn_if_not_aligned_p is true

When warn_if_not_aligned_p is true, a warning will be issued on function
declaration later.  There is no need to warn function alignment when
warn_if_not_aligned_p is true.

	* c-attribs.c (common_handle_aligned_attribute): Don't warn
	function alignment if warn_if_not_aligned_p is true.

From-SVN: r252036
This commit is contained in:
H.J. Lu 2017-09-12 16:35:39 +00:00 committed by H.J. Lu
parent 917a804c61
commit 12263f13ac
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2017-09-12 H.J. Lu <hongjiu.lu@intel.com>
* c-attribs.c (common_handle_aligned_attribute): Don't warn
function alignment if warn_if_not_aligned_p is true.
2017-09-12 Nathan Sidwell <nathan@acm.org>
* c-common.c (field_decl_cmp, resort_data, resort_field_decl_cmp,

View File

@ -1754,9 +1754,12 @@ common_handle_aligned_attribute (tree *node, tree args, int flags,
This formally comes from the c++11 specification but we are
doing it for the GNU attribute syntax as well. */
*no_add_attrs = true;
else if (TREE_CODE (decl) == FUNCTION_DECL
else if (!warn_if_not_aligned_p
&& TREE_CODE (decl) == FUNCTION_DECL
&& DECL_ALIGN (decl) > (1U << i) * BITS_PER_UNIT)
{
/* Don't warn function alignment here if warn_if_not_aligned_p is
true. It will be warned later. */
if (DECL_USER_ALIGN (decl))
error ("alignment for %q+D was previously specified as %d "
"and may not be decreased", decl,