[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

rpms/gcc/devel gcc4-builtin-apply.patch, NONE, 1.1 gcc4-g++-struct-layout.patch, NONE, 1.1 gcc4-macrospace.patch, NONE, 1.1 .cvsignore, 1.80, 1.81 gcc4.spec, 1.24, 1.25 sources, 1.81, 1.82 gcc4-c++-pr20381.patch, 1.1, NONE gcc4-pr16104.patch, 1.2, NONE gcc4-pr19769-workaround.patch, 1.1, NONE



Update of /cvs/dist/rpms/gcc/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv3635

Modified Files:
	.cvsignore gcc4.spec sources 
Added Files:
	gcc4-builtin-apply.patch gcc4-g++-struct-layout.patch 
	gcc4-macrospace.patch 
Removed Files:
	gcc4-c++-pr20381.patch gcc4-pr16104.patch 
	gcc4-pr19769-workaround.patch 
Log Message:
4.0.0-0.40


gcc4-builtin-apply.patch:
 testsuite/gcc.dg/builtin-apply4.c |   30 ++++++++++++++++++++++++++++++
 tree-inline.c                     |   11 +++++++++++
 2 files changed, 41 insertions(+)

--- NEW FILE gcc4-builtin-apply.patch ---
2005-04-05  Jakub Jelinek  <jakub redhat com>

	PR tree-optimization/20076
	* tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
	that call __builtin_return or __builtin_apply_args.

	* gcc.dg/builtin-apply4.c: New test.

--- gcc/tree-inline.c.jj	2005-04-04 13:06:29.000000000 +0200
+++ gcc/tree-inline.c	2005-04-05 13:09:02.000000000 +0200
@@ -1017,6 +1017,17 @@ inline_forbidden_p_1 (tree *nodep, int *
 		   "it uses non-local goto");
 	    return node;
 
+	  case BUILT_IN_RETURN:
+	  case BUILT_IN_APPLY_ARGS:
+	    /* If a __builtin_apply_args caller would be inlined,
+	       it would be saving arguments of the function it has
+	       been inlined into.  Similarly __builtin_return would
+	       return from the function the inline has been inlined into.  */
+	    inline_forbidden_reason
+	      = N_("%Jfunction %qF can never be inlined because "
+		   "it uses __builtin_return or __builtin_apply_args");
+	    return node;
+
 	  default:
 	    break;
 	  }
--- gcc/testsuite/gcc.dg/builtin-apply4.c.jj	2005-04-05 12:59:51.000000000 +0200
+++ gcc/testsuite/gcc.dg/builtin-apply4.c	2005-04-05 13:04:25.000000000 +0200
@@ -0,0 +1,30 @@
+/* PR tree-optimization/20076 */
+/* { dg-options "-O2" } */
+/* { dg-do run } */
+
+extern void abort (void);
+
+double
+foo (int arg)
+{
+  if (arg != 116)
+    abort();
+  return arg + 1;
+}
+
+inline double
+bar (int arg)
+{
+  foo (arg);
+  __builtin_return (__builtin_apply ((void (*) ()) foo,
+				     __builtin_apply_args (), 16));
+}
+
+int
+main (int argc, char **argv)
+{
+  if (bar (116) != 117.0)
+    abort ();
+
+  return 0;
+}

gcc4-g++-struct-layout.patch:
 struct-layout-1.exp        |  155 +++++
 struct-layout-1.h          |  342 +++++++++++
 struct-layout-1_generate.c | 1339 +++++++++++++++++++++++++++++++++++++++++++++
 struct-layout-1_x1.h       |   68 ++
 struct-layout-1_x2.h       |   14 
 struct-layout-1_y1.h       |   76 ++
 struct-layout-1_y2.h       |   69 ++
 7 files changed, 2063 insertions(+)

--- NEW FILE gcc4-g++-struct-layout.patch ---
2005-04-05  Jakub Jelinek  <jakub redhat com>

	* g++.dg/compat/struct-layout-1.exp: New file.
	* g++.dg/compat/struct-layout-1.h: New.
	* g++.dg/compat/struct-layout-1_generate.c: New.
	* g++.dg/compat/struct-layout-1_x1.h: New.
	* g++.dg/compat/struct-layout-1_x2.h: New.
	* g++.dg/compat/struct-layout-1_y1.h: New.
	* g++.dg/compat/struct-layout-1_y2.h: New.

--- gcc/testsuite/g++.dg/compat/struct-layout-1_y1.h.jj	2005-04-05 16:46:13.000000000 +0200
+++ gcc/testsuite/g++.dg/compat/struct-layout-1_y1.h	2004-07-21 16:28:22.000000000 +0200
@@ -0,0 +1,76 @@
+#include "struct-layout-1.h"
+
+#define F(n, x, v, w) 						\
+  if (info.flds[i] != &s##n.x)					\
+    FAIL (n, 50);						\
+  if (info.sizes[i] != sizeof (s##n.x))				\
+    FAIL (n, 51);						\
+  if (info.aligns[i] != __alignof__ (s##n.x))			\
+    FAIL (n, 52);						\
+  if (s##n.x != (__typeof__ (s##n.x)) v)			\
+    FAIL (n, 53);						\
+  if (a##n[2].x != (__typeof__ (s##n.x)) w)			\
+    FAIL (n, 54);						\
+  if (arg0.x != s##n.x)						\
+    FAIL (n, 55);						\
+  if (arg2.x != a##n[2].x)					\
+    FAIL (n, 56);						\
+  ret.x = s##n.x;						\
+  ++i;
+#define N(n, x) 						\
+  if (info.flds[i] != &s##n.x)					\
+    FAIL (n, 50);						\
+  if (info.sizes[i] != sizeof (s##n.x))				\
+    FAIL (n, 51);						\
+  if (info.aligns[i] != __alignof__ (s##n.x))			\
+    FAIL (n, 52);						\
+  ++i;
+#define B(n, x, v, w) 						\
+  b1.x = v; b2.x = w;						\
+  if (s##n.x != b1.x)						\
+    FAIL (n, 53);						\
+  if (a##n[2].x != b2.x)					\
+    FAIL (n, 54);						\
+  if (arg0.x != s##n.x)						\
+    FAIL (n, 55);						\
+  if (arg2.x != a##n[2].x)					\
+    FAIL (n, 56);						\
+  ret.x = s##n.x;						\
+  ++j;
+#define TX(n, type, attrs, fields, ops) 			\
+type S##n { fields } attrs;					\
+extern type S##n s##n;						\
+type S##n a##n[5];						\
+type S##n							\
+check##n (type S##n arg0, type S##n *arg1, type S##n arg2)	\
+{								\
+  type S##n ret;						\
+  type S##n b1, b2;						\
+  int i, j;							\
+								\
+  memset (&ret, 0, sizeof (ret));				\
+  memset (&b1, 0, sizeof (b1));					\
+  memset (&b2, 0, sizeof (b2));					\
+  if (info.sp != &s##n)						\
+    FAIL (n, 10);						\
+  if (info.a0p != &a##n[0])					\
+    FAIL (n, 11);						\
+  if (info.a3p != &a##n[3])					\
+    FAIL (n, 12);						\
+  if (info.sz != sizeof (s##n))					\
+    FAIL (n, 13);						\
+  if (info.als != __alignof__ (s##n))				\
+    FAIL (n, 14);						\
+  if (info.ala0 != __alignof__ (a##n[0]))			\
+    FAIL (n, 15);						\
+  if (info.ala3 != __alignof__ (a##n[3]))			\
+    FAIL (n, 16);						\
+  if (arg1 != &a##n[1])						\
+    FAIL (n, 17);						\
+  i = 0; j = 0;							\
+  ops								\
+  if (i != info.nfields || j != info.nbitfields)		\
+    FAIL (n, 18);						\
+								\
+  return ret;							\
+}
--- gcc/testsuite/g++.dg/compat/struct-layout-1.h.jj	2005-04-05 16:43:30.000000000 +0200
+++ gcc/testsuite/g++.dg/compat/struct-layout-1.h	2005-04-05 18:41:57.000000000 +0200
@@ -0,0 +1,342 @@
+#include <limits.h>
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "../../gcc.dg/compat/compat-common.h"
+
+#ifndef SKIP_ATTRIBUTE
+# include "../../gcc.dg/compat/vector-defs.h"
+#else
+typedef int qi;
+typedef int hi;
+typedef int si;
+typedef int di;
+typedef float sf;
+typedef float df;
+typedef int v8qi;
+typedef int v16qi;
+typedef int v2hi;
+typedef int v4hi;
+typedef int v8hi;
+typedef int v2si;
+typedef int v4si;
+typedef int v1di;
+typedef int v2di;
+typedef int v2sf;
+typedef int v4sf;
+typedef int v16sf;
+typedef int v2df;
+typedef int u8qi;
+typedef int u16qi;
+typedef int u2hi;
+typedef int u4hi;
+typedef int u8hi;
+typedef int u2si;
+typedef int u4si;
+typedef int u1di;
+typedef int u2di;
+typedef int u2sf;
+typedef int u4sf;
+typedef int u16sf;
+typedef int u2df;
+#endif
+#if (defined __i386__ || defined __x86_64__) && !defined SKIP_ATTRIBUTE
+# ifdef __MMX__
+#  include <mmintrin.h>
+# else
+typedef int __m64;
+# endif
+# ifdef __SSE__
+#  include <xmmintrin.h>
+# else
+typedef int __m128;
+# endif
+#else
+typedef int __m64;
+typedef int __m128;
+#endif
+
+#define FLDS_MAX	32
+extern struct Info
+{
+  int nfields, nbitfields;
+  void *sp, *a0p, *a3p;
+  void *flds[FLDS_MAX];
+  size_t sz, sizes[FLDS_MAX];
+  size_t als, ala0, ala3, aligns[FLDS_MAX];
+} info;
+
+extern int intarray[256];
+extern int fn0 (void), fn1 (void), fn2 (void), fn3 (void), fn4 (void);
+extern int fn5 (void), fn6 (void), fn7 (void), fn8 (void), fn9 (void);
+
+#ifdef DBG
+#define FAIL(n, m) printf ("fail %d.%d\n", n, m), ++fails
+#else
+#define FAIL(n, m) ++fails
+#endif
+
+#ifdef SKIP_ATTRIBUTE
+# define __attribute__(x)
+#endif
+#define atal		__attribute__((aligned))
+#define atpa		__attribute__((packed))
+#define atalpa		__attribute__((aligned, packed))
+#define atpaal		__attribute__((packed, aligned))
+#define atal1		__attribute__((aligned (1)))
+#define atal2		__attribute__((aligned (2)))
+#define atal4		__attribute__((aligned (4)))
+#define atal8		__attribute__((aligned (8)))
+#define atal16		__attribute__((aligned (16)))
+#define atal1pa		__attribute__((aligned (1), packed))
+#define atal2pa		__attribute__((aligned (2), packed))
+#define atal4pa		__attribute__((aligned (4), packed))
+#define atal8pa		__attribute__((aligned (8), packed))
+#define atal16pa	__attribute__((aligned (16), packed))
+#define atpaal1		__attribute__((packed, aligned (1)))
+#define atpaal2		__attribute__((packed, aligned (2)))
+#define atpaal4		__attribute__((packed, aligned (4)))
+#define atpaal8		__attribute__((packed, aligned (8)))
+#define atpaal16	__attribute__((packed, aligned (16)))
+
+#define atQI		__attribute__((mode (QI)))
+#define atHI		__attribute__((mode (HI)))
+#define atSI		__attribute__((mode (SI)))
+#define atDI		__attribute__((mode (DI)))
[...1695 lines suppressed...]
+{ "aligned packed vector [0] :0",
+  FEATURE_VECTOR | FEATURE_ZEROARRAY
+  | FEATURE_ALIGNEDPACKED | FEATURE_ZEROBITFLD },
+};
+
+int
+main (int argc, char **argv)
+{
+  int i, j, count, c, n = 3000;
+
+  if (sizeof (int) != 4 || sizeof (long long) != 8)
+    return 1;
+
+  while ((c = getopt (argc, argv, "d:i:n:s:")) != -1)
+    switch (c)
+      {
+      case 'n':
+	n = atoi (optarg);
+	break;
+      case 'd':
+	destdir = optarg;
+	break;
+      case 's':
+	srcdir = optarg;
+	break;
+      case 'i':
+	output_one = 1;
+	limidx = atoi (optarg);
+	break;
+      default:
+	goto usage;
+      }
+
+  if (output_one)
+    {
+      outfile = fopen ("/dev/null", "w");
+      if (outfile == NULL)
+	{
+	  fputs ("could not open /dev/null", stderr);
+	  return 1;
+	}
+      n = limidx + 1;
+    }
+
+  if (destdir == NULL && !output_one)
+    {
+    usage:
+      fprintf (stderr, "Usage:\n\
+%s [-s srcdir -d destdir] [-n count] [-i idx]\n\
+Either -s srcdir -d destdir or -i idx must be used\n", argv[0]);
+      return 1;
+    }
+
+  if (srcdir == NULL && !output_one)
+    goto usage;
+
+  hasht = htab_create (40000, e_hash, e_eq, NULL);
+  for (i = 0; i < NTYPES2; ++i)
+    if (base_types[i].bitfld)
+      bitfld_types[n_bitfld_types++] = base_types[i];
+  for (i = 0; i < NATYPES2; ++i)
+    if (attrib_types[i].bitfld)
+      aligned_bitfld_types[n_aligned_bitfld_types++] = attrib_types[i];
+  for (i = 0; i < sizeof (features) / sizeof (features[0]); ++i)
+    {
+      int startidx = idx;
+      if (! output_one)
+	limidx = idx;
+      if (!i)
+	count = 200;
+      else
+	count = 20;
+      for (j = 1; j <= 9; ++j)
+	while (idx < startidx + j * count)
+	  generate_random_tests (features[i].f, j);
+      while (idx < startidx + count * 10)
+	generate_random_tests (features[i].f, 10 + (generate_random () % 16));
+    }
+  for (i = 0; n > 3000 && i < sizeof (features) / sizeof (features[0]); ++i)
+    {
+      int startidx;
+      startidx = idx;
+      if (! output_one)
+	limidx = idx;
+      singles (features[i].f);
+      if (!i)
+	{
+	  count = 1000;
+	  while (idx < startidx + 1000)
+	    generate_random_tests (features[i].f, 1);
+	}
+      else
+	{
+	  startidx = idx;
+	  count = 100;
+	  while (idx < startidx + 100)
+	    generate_random_tests (features[i].f, 1);
+	}
+      startidx = idx;
+      for (j = 2; j <= 9; ++j)
+	while (idx < startidx + (j - 1) * count)
+	  generate_random_tests (features[i].f, j);
+      while (idx < startidx + count * 9)
+	generate_random_tests (features[i].f, 10 + (generate_random () % 16));
+    }
+  if (! output_one)
+    limidx = idx;
+  while (idx < n)
+    generate_random_tests (ALL_FEATURES, 1 + (generate_random () % 25));
+  fclose (outfile);
+  return 0;
+}
--- gcc/testsuite/g++.dg/compat/struct-layout-1_x2.h.jj	2005-04-05 16:46:05.000000000 +0200
+++ gcc/testsuite/g++.dg/compat/struct-layout-1_x2.h	2004-07-13 18:53:18.000000000 +0200
@@ -0,0 +1,14 @@
+#undef F
+#undef N
+#undef B
+#undef TX
+#define F(n, x, v, w) 						\
+  if (arg.x != s##n.x) FAIL (n, 30);
+#define N(n, x)
+#define B(n, x, v, w)						\
+  if (arg.x != s##n.x) FAIL (n, 30);
+#define TX(n, type, attrs, fields, ops) 			\
+void checkx##n (type S##n arg)					\
+{								\
+  ops								\
+}
--- gcc/testsuite/g++.dg/compat/struct-layout-1_x1.h.jj	2005-04-05 16:46:03.000000000 +0200
+++ gcc/testsuite/g++.dg/compat/struct-layout-1_x1.h	2004-10-16 09:02:45.000000000 +0200
@@ -0,0 +1,68 @@
+#include "struct-layout-1.h"
+
+struct Info info;
+int fails;
+int intarray[256];
+int fn0 (void) { return 0; }
+int fn1 (void) { return 1; }
+int fn2 (void) { return 2; }
+int fn3 (void) { return 3; }
+int fn4 (void) { return 4; }
+int fn5 (void) { return 5; }
+int fn6 (void) { return 6; }
+int fn7 (void) { return 7; }
+int fn8 (void) { return 8; }
+int fn9 (void) { return 9; }
+
+/* This macro is intended for fields where their
+   addresses/sizes/alignments and value passing should be checked.  */
+#define F(n, x, v, w) 						\
+  info.flds[i] = &s##n.x;					\
+  info.sizes[i] = sizeof (s##n.x);				\
+  info.aligns[i] = __alignof__ (s##n.x);			\
+  s##n.x = v;							\
+  a##n[2].x = w;						\
+  ++i;
+/* This macro is for fields where just their addresses/sizes/alignments
+   should be checked.  */
+#define N(n, x) 						\
+  info.flds[i] = &s##n.x;					\
+  info.sizes[i] = sizeof (s##n.x);				\
+  info.aligns[i] = __alignof__ (s##n.x);			\
+  ++i;
+/* This macro is for fields where just value passing should be checked.  */
+#define B(n, x, v, w)						\
+  s##n.x = v;							\
+  a##n[2].x = w;						\
+  ++j;
+#define TX(n, type, attrs, fields, ops) 			\
+type S##n { fields } attrs;					\
+type S##n s##n;							\
+extern type S##n a##n[5];					\
+extern type S##n check##n (type S##n, type S##n *,		\
+			     type S##n);			\
+extern void check##n##va (int i, ...);				\
+extern void checkx##n (type S##n);				\
+void test##n (void)						\
+{								\
+  int i, j;							\
+  memset (&s##n, '\0', sizeof (s##n));				\
+  memset (a##n, '\0', sizeof (a##n));				\
+  memset (&info, '\0', sizeof (info));				\
+  info.sp = &s##n;						\
+  info.a0p = &a##n[0];						\
+  info.a3p = &a##n[3];						\
+  info.sz = sizeof (s##n);					\
+  info.als = __alignof__ (s##n);				\
+  info.ala0 = __alignof__ (a##n[0]);				\
+  info.ala3 = __alignof__ (a##n[3]);				\
+  if (((long) &a##n[3]) & (info.als - 1))			\
+    FAIL (n, 1);						\
+  i = 0; j = 0;							\
+  ops								\
+  info.nfields = i;						\
+  info.nbitfields = j;						\
+  checkx##n (check##n (s##n, &a##n[1], a##n[2]));		\
+  check##n##va (1, 1.0, s##n, 2LL, a##n[2], a##n[2]);		\
+  check##n##va (2, s##n, s##n, 2.0L, a##n[2], s##n);		\
+}

gcc4-macrospace.patch:
 gcc/testsuite/gcc.dg/cpp/macspace1.c |   61 +++++++++++++++++++++++++++++++++++
 gcc/testsuite/gcc.dg/cpp/macspace2.c |   61 +++++++++++++++++++++++++++++++++++
 libcpp/macro.c                       |   35 ++++++++++++++++++--
 3 files changed, 155 insertions(+), 2 deletions(-)

--- NEW FILE gcc4-macrospace.patch ---
2005-04-05  Jakub Jelinek  <jakub redhat com>

	PR preprocessor/19475
	* macro.c (create_iso_definition): For < ISO C99, don't
	pedwarn if there is no whitespace between macro name and its
	replacement, but the replacement starts with a basic character
	set character.

	* gcc.dg/cpp/macspace1.c: New test.
	* gcc.dg/cpp/macspace2.c: New test.

--- libcpp/macro.c.jj	2005-03-17 13:39:12.000000000 +0100
+++ libcpp/macro.c	2005-04-05 11:39:57.000000000 +0200
@@ -1430,8 +1430,39 @@ create_iso_definition (cpp_reader *pfile
       macro->fun_like = 1;
     }
   else if (ctoken->type != CPP_EOF && !(ctoken->flags & PREV_WHITE))
-    cpp_error (pfile, CPP_DL_PEDWARN,
-	       "ISO C requires whitespace after the macro name");
+    {
+      /* While ISO C99 requires whitespace before replacement text
+	 in a macro definition, ISO C90 with TC1 allows there characters
+	 from the basic source character set.  */
+      if (CPP_OPTION (pfile, c99))
+	cpp_error (pfile, CPP_DL_PEDWARN,
+		   "ISO C99 requires whitespace after the macro name");
+      else
+	{
+	  int warntype = CPP_DL_WARNING;
+	  switch (ctoken->type)
+	    {
+	    case CPP_ATSIGN:
+	    case CPP_AT_NAME:
+	    case CPP_OBJC_STRING:
+	      /* '@' is not in basic character set.  */
+	      warntype = CPP_DL_PEDWARN;
+	      break;
+	    case CPP_OTHER:
+	      /* Basic character set sans letters, digits and _.  */
+	      if (strchr ("!\"#%&'()*+,-./:;<=>?[\\]^{|}~",
+			  ctoken->val.str.text[0]) == NULL)
+		warntype = CPP_DL_PEDWARN;
+	      break;
+	    default:
+	      /* All other tokens start with a character from basic
+		 character set.  */
+	      break;
+	    }
+	  cpp_error (pfile, warntype,
+		     "missing whitespace after the macro name");
+	}
+    }
 
   if (macro->fun_like)
     token = lex_expansion_token (pfile, macro);
--- gcc/testsuite/gcc.dg/cpp/macspace2.c.jj	2005-04-05 11:45:18.000000000 +0200
+++ gcc/testsuite/gcc.dg/cpp/macspace2.c	2005-04-05 13:51:02.000000000 +0200
@@ -0,0 +1,61 @@
+/* PR preprocessor/19475 */
+/* { dg-do preprocess } */
+/* { dg-options "-std=iso9899:1999 -pedantic-errors -fno-show-column" } */
+
+#define a!		/* { dg-error "requires whitespace" } */
+#define b"		/* { dg-error "requires whitespace" } */
+#define c#		/* { dg-error "requires whitespace" } */
+#define d%		/* { dg-error "requires whitespace" } */
+#define e&		/* { dg-error "requires whitespace" } */
+#define f'		/* { dg-error "requires whitespace" } */
+#define g)		/* { dg-error "requires whitespace" } */
+#define h*		/* { dg-error "requires whitespace" } */
+#define i+		/* { dg-error "requires whitespace" } */
+#define j,		/* { dg-error "requires whitespace" } */
+#define k-		/* { dg-error "requires whitespace" } */
+#define l.		/* { dg-error "requires whitespace" } */
+#define m/		/* { dg-error "requires whitespace" } */
+#define n:		/* { dg-error "requires whitespace" } */
+#define o;		/* { dg-error "requires whitespace" } */
+#define p<		/* { dg-error "requires whitespace" } */
+#define q=		/* { dg-error "requires whitespace" } */
+#define r>		/* { dg-error "requires whitespace" } */
+#define s?		/* { dg-error "requires whitespace" } */
+#define t[		/* { dg-error "requires whitespace" } */
+#define u]		/* { dg-error "requires whitespace" } */
+#define v^		/* { dg-error "requires whitespace" } */
+#define w{		/* { dg-error "requires whitespace" } */
+#define x|		/* { dg-error "requires whitespace" } */
+#define y}		/* { dg-error "requires whitespace" } */
+#define z~		/* { dg-error "requires whitespace" } */
+#define A>>		/* { dg-error "requires whitespace" } */
+#define B<<		/* { dg-error "requires whitespace" } */
+#define E&&		/* { dg-error "requires whitespace" } */
+#define F||		/* { dg-error "requires whitespace" } */
+#define G==		/* { dg-error "requires whitespace" } */
+#define H!=		/* { dg-error "requires whitespace" } */
+#define I>=		/* { dg-error "requires whitespace" } */
+#define J<=		/* { dg-error "requires whitespace" } */
+#define K+=		/* { dg-error "requires whitespace" } */
+#define L-=		/* { dg-error "requires whitespace" } */
+#define M*=		/* { dg-error "requires whitespace" } */
+#define N/=		/* { dg-error "requires whitespace" } */
+#define O%=		/* { dg-error "requires whitespace" } */
+#define P&=		/* { dg-error "requires whitespace" } */
+#define Q|=		/* { dg-error "requires whitespace" } */
+#define R^=		/* { dg-error "requires whitespace" } */
+#define S>>=		/* { dg-error "requires whitespace" } */
+#define T<<=		/* { dg-error "requires whitespace" } */
+#define W...		/* { dg-error "requires whitespace" } */
+#define X++		/* { dg-error "requires whitespace" } */
+#define Y--		/* { dg-error "requires whitespace" } */
+#define Z->		/* { dg-error "requires whitespace" } */
+#define aa::		/* { dg-error "requires whitespace" } */
+#define ab->*		/* { dg-error "requires whitespace" } */
+#define ac.*		/* { dg-error "requires whitespace" } */
+#define ad\x		/* { dg-error "requires whitespace" } */
+#define ae\\x		/* { dg-error "requires whitespace" } */
+#define af'1'		/* { dg-error "requires whitespace" } */
+#define ag"abc"		/* { dg-error "requires whitespace" } */
+
+int dummy;
--- gcc/testsuite/gcc.dg/cpp/macspace1.c.jj	2005-04-05 11:45:18.000000000 +0200
+++ gcc/testsuite/gcc.dg/cpp/macspace1.c	2005-04-05 13:50:54.000000000 +0200
@@ -0,0 +1,61 @@
+/* PR preprocessor/19475 */
+/* { dg-do preprocess } */
+/* { dg-options "-std=iso9899:1990 -pedantic-errors -fno-show-column" } */
+
+#define a!		/* { dg-warning "missing whitespace" } */
+#define b"		/* { dg-warning "missing whitespace" } */
+#define c#		/* { dg-warning "missing whitespace" } */
+#define d%		/* { dg-warning "missing whitespace" } */
+#define e&		/* { dg-warning "missing whitespace" } */
+#define f'		/* { dg-warning "missing whitespace" } */
+#define g)		/* { dg-warning "missing whitespace" } */
+#define h*		/* { dg-warning "missing whitespace" } */
+#define i+		/* { dg-warning "missing whitespace" } */
+#define j,		/* { dg-warning "missing whitespace" } */
+#define k-		/* { dg-warning "missing whitespace" } */
+#define l.		/* { dg-warning "missing whitespace" } */
+#define m/		/* { dg-warning "missing whitespace" } */
+#define n:		/* { dg-warning "missing whitespace" } */
+#define o;		/* { dg-warning "missing whitespace" } */
+#define p<		/* { dg-warning "missing whitespace" } */
+#define q=		/* { dg-warning "missing whitespace" } */
+#define r>		/* { dg-warning "missing whitespace" } */
+#define s?		/* { dg-warning "missing whitespace" } */
+#define t[		/* { dg-warning "missing whitespace" } */
+#define u]		/* { dg-warning "missing whitespace" } */
+#define v^		/* { dg-warning "missing whitespace" } */
+#define w{		/* { dg-warning "missing whitespace" } */
+#define x|		/* { dg-warning "missing whitespace" } */
+#define y}		/* { dg-warning "missing whitespace" } */
+#define z~		/* { dg-warning "missing whitespace" } */
+#define A>>		/* { dg-warning "missing whitespace" } */
+#define B<<		/* { dg-warning "missing whitespace" } */
+#define E&&		/* { dg-warning "missing whitespace" } */
+#define F||		/* { dg-warning "missing whitespace" } */
+#define G==		/* { dg-warning "missing whitespace" } */
+#define H!=		/* { dg-warning "missing whitespace" } */
+#define I>=		/* { dg-warning "missing whitespace" } */
+#define J<=		/* { dg-warning "missing whitespace" } */
+#define K+=		/* { dg-warning "missing whitespace" } */
+#define L-=		/* { dg-warning "missing whitespace" } */
+#define M*=		/* { dg-warning "missing whitespace" } */
+#define N/=		/* { dg-warning "missing whitespace" } */
+#define O%=		/* { dg-warning "missing whitespace" } */
+#define P&=		/* { dg-warning "missing whitespace" } */
+#define Q|=		/* { dg-warning "missing whitespace" } */
+#define R^=		/* { dg-warning "missing whitespace" } */
+#define S>>=		/* { dg-warning "missing whitespace" } */
+#define T<<=		/* { dg-warning "missing whitespace" } */
+#define W...		/* { dg-warning "missing whitespace" } */
+#define X++		/* { dg-warning "missing whitespace" } */
+#define Y--		/* { dg-warning "missing whitespace" } */
+#define Z->		/* { dg-warning "missing whitespace" } */
+#define aa::		/* { dg-warning "missing whitespace" } */
+#define ab->*		/* { dg-warning "missing whitespace" } */
+#define ac.*		/* { dg-warning "missing whitespace" } */
+#define ad\x		/* { dg-warning "missing whitespace" } */
+#define ae\\x		/* { dg-warning "missing whitespace" } */
+#define af'1'		/* { dg-warning "missing whitespace" } */
+#define ag"abc"		/* { dg-warning "missing whitespace" } */
+
+int dummy;


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/.cvsignore,v
retrieving revision 1.80
retrieving revision 1.81
diff -u -r1.80 -r1.81
--- .cvsignore	3 Apr 2005 09:26:16 -0000	1.80
+++ .cvsignore	5 Apr 2005 22:53:31 -0000	1.81
@@ -1 +1 @@
-gcc-4.0.0-20050403.tar.bz2
+gcc-4.0.0-20050405.tar.bz2


Index: gcc4.spec
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc4.spec,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- gcc4.spec	3 Apr 2005 15:14:46 -0000	1.24
+++ gcc4.spec	5 Apr 2005 22:53:31 -0000	1.25
@@ -1,6 +1,6 @@
-%define DATE 20050403
+%define DATE 20050405
 %define gcc_version 4.0.0
-%define gcc_release 0.39
+%define gcc_release 0.40
 %define _unpackaged_files_terminate_build 0
 %define multilib_64_archs sparc64 ppc64 s390x x86_64
 %ifarch %{ix86} alpha ia64 x86_64 s390
@@ -74,13 +74,13 @@
 Patch2: gcc4-ppc64-m32-m64-multilib-only.patch
 Patch3: gcc4-ia64-libunwind.patch
 Patch4: gcc4-gnuc-rh-release.patch
-Patch5: gcc4-pr16104.patch
-Patch6: gcc4-pr19769-workaround.patch
-Patch7: gcc4-java-nomulti.patch
-Patch8: gcc4-c++-pr19317.patch
-Patch9: gcc4-pr20126.patch
-Patch10: gcc4-pr20249.patch
-Patch11: gcc4-c++-pr20381.patch
+Patch5: gcc4-java-nomulti.patch
+Patch6: gcc4-c++-pr19317.patch
+Patch7: gcc4-pr20126.patch
+Patch8: gcc4-pr20249.patch
+Patch9: gcc4-g++-struct-layout.patch
+Patch10: gcc4-builtin-apply.patch
+Patch11: gcc4-macrospace.patch
 
 %define _gnu %{nil}
 %ifarch sparc
@@ -394,13 +394,13 @@
 %patch2 -p0 -b .ppc64-m32-m64-multilib-only~
 %patch3 -p0 -b .ia64-libunwind~
 %patch4 -p0 -b .gnuc-rh-release~
-%patch5 -p0 -b .pr16104~
-%patch6 -p0 -b .pr19769-workaround~
-%patch7 -p0 -b .java-nomulti~
-%patch8 -p0 -b .c++-pr19317~
-%patch9 -p0 -b .pr20126~
-%patch10 -p0 -b .pr20249~
-%patch11 -p0 -b .c++-pr20381~
+%patch5 -p0 -b .java-nomulti~
+%patch6 -p0 -b .c++-pr19317~
+%patch7 -p0 -b .pr20126~
+%patch8 -p0 -b .pr20249~
+%patch9 -p0 -b .g++-struct-layout~
+%patch10 -p0 -b .builtin-apply~
+%patch11 -p0 -b .macrospace~
 
 perl -pi -e 's/4\.0\.0/4.0.0/' gcc/version.c
 perl -pi -e 's/"%{gcc_version}"/"%{gcc_version} \(release\)"/' gcc/version.c
@@ -1380,6 +1380,20 @@
 %endif
 
 %changelog
+* Wed Apr  6 2005 Jakub Jelinek  <jakub redhat com> 4.0.0-0.40
+- update from CVS
+  - PRs ada/19956, c++/18644, c++/19159, c++/19199, c++/20679, debug/20505,
+	libfortran/20068, libfortran/20125, libfortran/20156,
+	libfortran/20471, libfortran/20755, libgcj/20727, libgcj/20761,
+	rtl-optimization/16104, rtl-optimization/20527, target/19537,
+	target/20446, tree-optimization/19903
+  - fixed ABI bug where __attribute was ignored on certain struct
+    fields (Mark Mitchell, PR c++/20763)
+- don't error on #define a! in c89 pedantic mode (PR preprocessor/19475)
+- prevent inlining functions that call __builtin_apply_args or
+  __builtin_return (PR tree-optimization/20076)
+- add g++.dg/compat/struct-layout-1.exp compatibility tests
+
 * Sun Apr  3 2005 Jakub Jelinek  <jakub redhat com> 4.0.0-0.39
 - update from CVS
   - PRs c++/19406, c/17855, c/17913, c/20368, c/20519, c/772, debug/19345,


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/sources,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -r1.81 -r1.82
--- sources	3 Apr 2005 09:26:16 -0000	1.81
+++ sources	5 Apr 2005 22:53:31 -0000	1.82
@@ -1 +1 @@
-bfcc7197d1e48bc79e605ccf40a09b90  gcc-4.0.0-20050403.tar.bz2
+21eaf12f4b9aca4788aea70052a866c7  gcc-4.0.0-20050405.tar.bz2


--- gcc4-c++-pr20381.patch DELETED ---


--- gcc4-pr16104.patch DELETED ---


--- gcc4-pr19769-workaround.patch DELETED ---


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]