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

Reply via email to