[C PATCH] Make attributes accept enum values (PR c/50459)

Marek Polacek polacek@redhat.com
Tue May 13 07:51:00 GMT 2014


On Mon, May 12, 2014 at 03:44:42PM +0000, Joseph S. Myers wrote:
> On Sun, 11 May 2014, Marek Polacek wrote:
> 
> > > FAIL: c-c++-common/pr50459.c -std=gnu++1y (test for excess errors)
> > > FAIL: c-c++-common/pr50459.c  -Wc++-compat  (test for excess errors)
> > > 
> > > The errors are
> > > 
> > > /opt/gcc/work/gcc/testsuite/c-c++-common/pr50459.c:8:1: error: constructor priorities are not supported
> > > /opt/gcc/work/gcc/testsuite/c-c++-common/pr50459.c:9:1: error: destructor priorities are not supported
> > 
> > Ah.  The following untested patch should skip that test on Darwin.
> > 
> > Ok?
> 
> I don't think the whole test should be skipped for that issue; I think the 
> part requiring this feature should be split out into a separate testcase, 
> so that as much as possible is still tested on Darwin.

Yeah, I should've done that in the first place, sorry.  Is the
following ok then?

2014-05-13  Marek Polacek  <polacek@redhat.com>

	* c-c++-common/pr50459.c: Move cdtor tests to a separate testcase.
	* c-c++-common/pr50459-2.c: New test.

diff --git gcc/testsuite/c-c++-common/pr50459-2.c gcc/testsuite/c-c++-common/pr50459-2.c
index e69de29..0e8fec3 100644
--- gcc/testsuite/c-c++-common/pr50459-2.c
+++ gcc/testsuite/c-c++-common/pr50459-2.c
@@ -0,0 +1,7 @@
+/* PR c/50459 */
+/* { dg-do compile { target init_priority } } */
+/* { dg-options "-Wall -Wextra" } */
+
+enum { A = 128, B = 1 };
+void fn3 (void) __attribute__((constructor (A)));
+void fn4 (void) __attribute__((destructor (A)));
diff --git gcc/testsuite/c-c++-common/pr50459.c gcc/testsuite/c-c++-common/pr50459.c
index f837b63..8d75228 100644
--- gcc/testsuite/c-c++-common/pr50459.c
+++ gcc/testsuite/c-c++-common/pr50459.c
@@ -5,8 +5,6 @@
 enum { A = 128, B = 1 };
 void *fn1 (void) __attribute__((assume_aligned (A)));
 void *fn2 (void) __attribute__((assume_aligned (A, 4)));
-void fn3 (void) __attribute__((constructor (A)));
-void fn4 (void) __attribute__((destructor (A)));
 void *fn5 (int) __attribute__((alloc_size (B)));
 void *fn6 (int) __attribute__((alloc_align (B)));
 void fn7 (const char *, ...) __attribute__ ((sentinel (B)));

	Marek



More information about the Gcc-patches mailing list