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.
OK for trunk? H.J. -- * c-attribs.c (common_handle_aligned_attribute): Don't warn function alignment if warn_if_not_aligned_p is true. --- gcc/c-family/c-attribs.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/c-family/c-attribs.c b/gcc/c-family/c-attribs.c index 5f79468407f..78969532543 100644 --- a/gcc/c-family/c-attribs.c +++ b/gcc/c-family/c-attribs.c @@ -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, -- 2.13.5