[Bug c/88172] attribute aligned of zero silently accepted but ignored
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
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
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
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");