[Bug c/88172] attribute aligned of zero silently accepted but ignored

2018-11-29 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88172

Martin Sebor  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |9.0

--- Comment #4 from Martin Sebor  ---
Done in r266633.

[Bug c/88172] attribute aligned of zero silently accepted but ignored

2018-11-29 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88172

--- Comment #3 from Martin Sebor  ---
Author: msebor
Date: Thu Nov 29 17:48:58 2018
New Revision: 266633

URL: https://gcc.gnu.org/viewcvs?rev=266633=gcc=rev
Log:
PR c/88172 - attribute aligned of zero silently accepted but ignored
PR testsuite/88208 - new test case c-c++-common/builtin-has-attribute-3.c in
r266335 has multiple excess errors

gcc/ChangeLog:

PR c/88172
PR testsuite/88208
* doc/extend.texi (attribute constructor): Clarify.

gcc/c/ChangeLog:

PR c/88172
PR testsuite/88208
* c-decl.c (declspec_add_alignas): Adjust call to check_user_alignment.

gcc/c-family/ChangeLog:

PR c/88172
PR testsuite/88208
* c-attribs.c (common_handle_aligned_attribute): Silently avoid setting
alignments to values less than the target requires.
(has_attribute): For attribute aligned consider both the attribute
and the alignment bits.
* c-common.c (c_init_attributes): Optionally issue a warning for
zero alignment.

gcc/testsuite/ChangeLog:

PR c/88172
PR testsuite/88208
* gcc.dg/attr-aligned-2.c: New test.
* gcc.dg/builtin-has-attribute.c: Adjust.
* c-c++-common/builtin-has-attribute-2.c: Same.
* c-c++-common/builtin-has-attribute-3.c: Same.
* c-c++-common/builtin-has-attribute-4.c: Same.
* c-c++-common/builtin-has-attribute-5.c: New test.
* gcc.target/aarch64/attr-aligned.c: Same.
* gcc.target/i386/attr-aligned.c: Same.
* gcc.target/powerpc/attr-aligned.c: Same.
* gcc.target/sparc/attr-aligned.c: Same.


Added:
trunk/gcc/testsuite/c-c++-common/builtin-has-attribute-5.c
trunk/gcc/testsuite/gcc.dg/attr-aligned-2.c
trunk/gcc/testsuite/gcc.target/aarch64/attr-aligned.c
trunk/gcc/testsuite/gcc.target/i386/attr-aligned.c
trunk/gcc/testsuite/gcc.target/powerpc/attr-aligned.c
trunk/gcc/testsuite/gcc.target/sparc/attr-aligned.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-attribs.c
trunk/gcc/c-family/c-common.c
trunk/gcc/c/ChangeLog
trunk/gcc/c/c-decl.c
trunk/gcc/doc/extend.texi
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/c-c++-common/builtin-has-attribute-2.c
trunk/gcc/testsuite/c-c++-common/builtin-has-attribute-3.c
trunk/gcc/testsuite/c-c++-common/builtin-has-attribute-4.c
trunk/gcc/testsuite/gcc.dg/builtin-has-attribute.c

[Bug c/88172] attribute aligned of zero silently accepted but ignored

2018-11-27 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88172

Martin Sebor  changed:

   What|Removed |Added

   Keywords||patch
 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2018-11-28
   Assignee|unassigned at gcc dot gnu.org  |msebor at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #2 from Martin Sebor  ---
The patch for pr88208 adds a warning for attribute aligned (0):
 https://gcc.gnu.org/ml/gcc-patches/2018-11/msg02261.html

[Bug c/88172] attribute aligned of zero silently accepted but ignored

2018-11-23 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88172

Martin Sebor  changed:

   What|Removed |Added

   Keywords||accepts-invalid

--- Comment #1 from Martin Sebor  ---
Clang rejects the test case with the following errors:

t.c:1:17: error: requested alignment is not a power of 2
__attribute__ ((aligned (0))) void f (void);
^~
t.c:4:17: error: requested alignment is not a power of 2
__attribute__ ((aligned (0))) int i;
^~
t.c:7:17: error: requested alignment is not a power of 2
__attribute__ ((aligned (0))) typedef int Int0;
^~
t.c:11:17: warning: '_Alignof' applied to an expression is a GNU extension
[-Wgnu-alignof-expression]
_Static_assert (_Alignof (i) == _Alignof (int), "#4");