rpms/gcc/devel gcc4-pr20290.patch, NONE, 1.1 gcc4-rh151466.patch, NONE, 1.1 .cvsignore, 1.76, 1.77 gcc4-pr16104.patch, 1.1, 1.2 gcc4.spec, 1.16, 1.17 sources, 1.77, 1.78 gcc4-ada-makej.patch, 1.1, NONE gcc4-libjawt.patch, 1.2, NONE gcc4-rh150150.patch, 1.1, NONE
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Mon Mar 21 12:20:31 UTC 2005
- Previous message (by thread): rpms/rpm/devel rpm.spec,1.152,1.153
- Next message (by thread): rpms/httpd/FC-3 httpd-2.0.52-apctlopts.patch, NONE, 1.1 httpd-2.0.52-htdigperms.patch, NONE, 1.1 httpd-2.0.52-ssluser.patch, NONE, 1.1 httpd-2.0.53.tar.gz.asc, NONE, 1.1 .cvsignore, 1.11, 1.12 httpd-2.0.40-apctl.patch, 1.10, 1.11 httpd-2.0.45-export.patch, 1.3, 1.4 httpd.init, 1.7, 1.8 httpd.spec, 1.53, 1.54 sources, 1.9, 1.10 httpd-2.0.52-CAN-2004-0885.patch, 1.1, NONE httpd-2.0.52-CAN-2004-0942.patch, 1.1, NONE httpd-2.0.52.tar.gz.asc, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvs/dist/rpms/gcc/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv7283
Modified Files:
.cvsignore gcc4-pr16104.patch gcc4.spec sources
Added Files:
gcc4-pr20290.patch gcc4-rh151466.patch
Removed Files:
gcc4-ada-makej.patch gcc4-libjawt.patch gcc4-rh150150.patch
Log Message:
4.0.0-0.35
gcc4-pr20290.patch:
loop.c | 22 +++++++---
testsuite/gcc.c-torture/execute/loop-ivopts-2.c | 50 ++++++++++++++++++++++++
2 files changed, 65 insertions(+), 7 deletions(-)
--- NEW FILE gcc4-pr20290.patch ---
2005-03-20 Alexandre Oliva <aoliva at redhat.com>
PR rtl-optimization/20290
* loop.c (for_each_insn_in_loop): Don't assume the loop body runs
in every iteration if the entry point is the exit test.
* gcc.c-torture/execute/loop-ivopts-2.c: New.
--- gcc/loop.c 17 Jan 2005 08:46:15 -0000 1.522
+++ gcc/loop.c 20 Mar 2005 06:36:43 -0000
@@ -4655,12 +4655,18 @@ for_each_insn_in_loop (struct loop *loop
int not_every_iteration = 0;
int maybe_multiple = 0;
int past_loop_latch = 0;
+ bool exit_test_is_entry = false;
rtx p;
- /* If loop_scan_start points to the loop exit test, we have to be wary of
- subversive use of gotos inside expression statements. */
+ /* If loop_scan_start points to the loop exit test, the loop body
+ cannot be counted on running on every iteration, and we have to
+ be wary of subversive use of gotos inside expression
+ statements. */
if (prev_nonnote_insn (loop->scan_start) != prev_nonnote_insn (loop->start))
- maybe_multiple = back_branch_in_range_p (loop, loop->scan_start);
+ {
+ exit_test_is_entry = true;
+ maybe_multiple = back_branch_in_range_p (loop, loop->scan_start);
+ }
/* Scan through loop and update NOT_EVERY_ITERATION and MAYBE_MULTIPLE. */
for (p = next_insn_in_loop (loop, loop->scan_start);
@@ -4718,10 +4724,12 @@ for_each_insn_in_loop (struct loop *loop
beginning, don't set not_every_iteration for that.
This can be any kind of jump, since we want to know if insns
will be executed if the loop is executed. */
- && !(JUMP_LABEL (p) == loop->top
- && ((NEXT_INSN (NEXT_INSN (p)) == loop->end
- && any_uncondjump_p (p))
- || (NEXT_INSN (p) == loop->end && any_condjump_p (p)))))
+ && (exit_test_is_entry
+ || !(JUMP_LABEL (p) == loop->top
+ && ((NEXT_INSN (NEXT_INSN (p)) == loop->end
+ && any_uncondjump_p (p))
+ || (NEXT_INSN (p) == loop->end
+ && any_condjump_p (p))))))
{
rtx label = 0;
--- gcc/testsuite/gcc.c-torture/execute/loop-ivopts-2.c 1 Jan 1970 00:00:00 -0000
+++ gcc/testsuite/gcc.c-torture/execute/loop-ivopts-2.c 20 Mar 2005 06:36:58 -0000
@@ -0,0 +1,50 @@
+/* PR rtl-optimization/20290 */
+
+/* We used to mis-optimize the second loop in main on at least ppc and
+ arm, because tree loop would change the loop to something like:
+
+ ivtmp.65 = &l[i];
+ ivtmp.16 = 113;
+ goto <bb 4> (<L4>);
+
+<L3>:;
+ *(ivtmp.65 + 4294967292B) = 9;
+ i = i + 1;
+
+<L4>:;
+ ivtmp.16 = ivtmp.16 - 1;
+ ivtmp.65 = ivtmp.65 + 4B;
+ if (ivtmp.16 != 0) goto <L3>;
+
+ We used to consider the increment of i as executed in every
+ iteration, so we'd miscompute the final value. */
+
+extern void abort (void);
+
+void
+check (unsigned int *l)
+{
+ int i;
+ for (i = 0; i < 288; i++)
+ if (l[i] != 7 + (i < 256 || i >= 280) + (i >= 144 && i < 256))
+ abort ();
+}
+
+int
+main (void)
+{
+ int i;
+ unsigned int l[288];
+
+ for (i = 0; i < 144; i++)
+ l[i] = 8;
+ for (; i < 256; i++)
+ l[i] = 9;
+ for (; i < 280; i++)
+ l[i] = 7;
+ for (; i < 288; i++)
+ l[i] = 8;
+ check (l);
+ return 0;
+}
+
gcc4-rh151466.patch:
cfglayout.c | 6 ++++
final.c | 20 ++++++++++-----
testsuite/gcc.dg/20050321-1.c | 54 ++++++++++++++++++++++++++++++++++++++++++
3 files changed, 73 insertions(+), 7 deletions(-)
--- NEW FILE gcc4-rh151466.patch ---
2005-03-21 Jakub Jelinek <jakub at redhat.com>
* cfglayout.c (reemit_insn_block_notes): Don't put block notes in
between jump table and its label.
* final.c (shorten_branches): Handle notes in between ADDR_VEC
resp. ADDR_DIFF_VEC and the label preceeding it.
(final_scan_insn): Likewise. Ensure ADDR_VEC resp. ADDR_DIFF_VEC
is emitted in the right section.
* gcc.dg/20050321-1.c: New test.
--- gcc/cfglayout.c.jj 2004-12-07 09:41:35.000000000 +0100
+++ gcc/cfglayout.c 2005-03-21 12:15:30.000000000 +0100
@@ -523,6 +523,12 @@ reemit_insn_block_notes (void)
{
tree this_block;
+ /* Avoid putting scope notes between jump table and its label. */
+ if (JUMP_P (insn)
+ && (GET_CODE (PATTERN (insn)) == ADDR_VEC
+ || GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC))
+ continue;
+
this_block = insn_scope (insn);
/* For sequences compute scope resulting from merging all scopes
of instructions nested inside. */
--- gcc/final.c.jj 2004-11-27 10:34:59.000000000 +0100
+++ gcc/final.c 2005-03-21 11:49:23.000000000 +0100
@@ -835,7 +835,7 @@ shorten_branches (rtx first ATTRIBUTE_UN
max_log = log;
max_skip = LABEL_ALIGN_MAX_SKIP;
}
- next = NEXT_INSN (insn);
+ next = next_nonnote_insn (insn);
/* ADDR_VECs only take room if read-only data goes into the text
section. */
if (JUMP_TABLES_IN_TEXT_SECTION || !HAVE_READONLY_DATA_SECTION)
@@ -1677,6 +1677,7 @@ final_scan_insn (rtx insn, FILE *file, i
#ifdef HAVE_cc0
rtx set;
#endif
+ rtx next;
insn_counter++;
@@ -1932,10 +1933,11 @@ final_scan_insn (rtx insn, FILE *file, i
fputs (ASM_APP_OFF, file);
app_on = 0;
}
- if (NEXT_INSN (insn) != 0
- && JUMP_P (NEXT_INSN (insn)))
+
+ next = next_nonnote_insn (insn);
+ if (next != 0 && JUMP_P (next))
{
- rtx nextbody = PATTERN (NEXT_INSN (insn));
+ rtx nextbody = PATTERN (next);
/* If this label is followed by a jump-table,
make sure we put the label in the read-only section. Also
@@ -1956,7 +1958,7 @@ final_scan_insn (rtx insn, FILE *file, i
targetm.asm_out.function_rodata_section (current_function_decl);
#ifdef ADDR_VEC_ALIGN
- log_align = ADDR_VEC_ALIGN (NEXT_INSN (insn));
+ log_align = ADDR_VEC_ALIGN (next);
#else
log_align = exact_log2 (BIGGEST_ALIGNMENT / BITS_PER_UNIT);
#endif
@@ -1967,7 +1969,7 @@ final_scan_insn (rtx insn, FILE *file, i
#ifdef ASM_OUTPUT_CASE_LABEL
ASM_OUTPUT_CASE_LABEL (file, "L", CODE_LABEL_NUMBER (insn),
- NEXT_INSN (insn));
+ next);
#else
targetm.asm_out.internal_label (file, "L", CODE_LABEL_NUMBER (insn));
#endif
@@ -2022,6 +2024,11 @@ final_scan_insn (rtx insn, FILE *file, i
if (prescan > 0)
break;
+ if (! JUMP_TABLES_IN_TEXT_SECTION)
+ targetm.asm_out.function_rodata_section (current_function_decl);
+ else
+ function_section (current_function_decl);
+
if (app_on)
{
fputs (ASM_APP_OFF, file);
@@ -2157,7 +2164,6 @@ final_scan_insn (rtx insn, FILE *file, i
{
/* A delayed-branch sequence */
int i;
- rtx next;
if (prescan > 0)
break;
--- gcc/testsuite/gcc.dg/20050321-1.c.jj 2005-03-21 11:55:33.000000000 +0100
+++ gcc/testsuite/gcc.dg/20050321-1.c 2005-03-21 11:54:55.000000000 +0100
@@ -0,0 +1,54 @@
+/* This testcase could not assemble on ppc32, because the compiler assumed
+ the huge ADDR_DIFF_VEC will be emitted into rodata section, yet because
+ of some notes inserted between jump table's CODE_LABEL and the jump table
+ it ended up in the .text section and thus shorten_branches couldn't
+ figure out branch to lab is too far. */
+/* { dg-do link } */
+/* { dg-options "-g1 -fpic" } */
+
+#define A(n) \
+ case n##1: return n##1 * 131 + 63; \
+ case n##3: return n##3 * 1231 + 182; \
+ case n##5: return n##5 * 351 + 1; \
+ case n##7: return n##7 * 312 + 61; \
+ case n##9: return n##9 * 17 - 1;
+#define B(n) \
+A(n##0) A(n##1) A(n##2) A(n##3) A(n##4) \
+A(n##5) A(n##6) A(n##7) A(n##8) A(n##9)
+#define C(n) \
+B(n##0) B(n##1) B(n##2) B(n##3) B(n##4) \
+B(n##5) B(n##6) B(n##7) B(n##8) B(n##9)
+#define D(n) \
+C(n##0) C(n##1) B(n##20) B(n##21) B(n##22)
+
+int
+foo (int x)
+{
+ {
+lab:;
+ int a = x;
+ while (a < 60000)
+ {
+ int b = a;
+ {
+ int c = b;
+ switch (c)
+ {
+ D(1)
+ default: break;
+ }
+ }
+ a += 10000;
+ if (a == 4168)
+ goto lab;
+ }
+ }
+ return x;
+}
+
+int
+main (void)
+{
+ foo (71);
+ return 0;
+}
Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/.cvsignore,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -r1.76 -r1.77
--- .cvsignore 15 Mar 2005 17:23:22 -0000 1.76
+++ .cvsignore 21 Mar 2005 12:20:28 -0000 1.77
@@ -1 +1 @@
-gcc-4.0.0-20050315.tar.bz2
+gcc-4.0.0-20050321.tar.bz2
gcc4-pr16104.patch:
fold-const.c | 14 +++-
testsuite/gcc.c-torture/execute/20050316-1.c | 69 +++++++++++++++++++++
testsuite/gcc.c-torture/execute/20050316-2.c | 49 +++++++++++++++
testsuite/gcc.c-torture/execute/20050316-3.c | 36 +++++++++++
testsuite/gcc.dg/torture/pr16104-1.c | 88 +++++++++++++++++++++++++++
5 files changed, 253 insertions(+), 3 deletions(-)
Index: gcc4-pr16104.patch
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc4-pr16104.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gcc4-pr16104.patch 28 Feb 2005 12:48:42 -0000 1.1
+++ gcc4-pr16104.patch 21 Mar 2005 12:20:28 -0000 1.2
@@ -1,51 +1,134 @@
-2005-01-13 Jakub Jelinek <jakub at redhat.com>
+2005-03-16 Richard Henderson <rth at redhat.com>
+ Jakub Jelinek <jakub at redhat.com>
PR rtl-optimization/16104
- * expr.c (convert_move): Handle vector from resp. to if mode
- sizes differ.
+ * fold-const.c (fold_unary): Fix folding of vector conversions.
- * gcc.c-torture/execute/20050113-1.c: New test.
+ * gcc.c-torture/execute/20050316-1.c: New test.
+ * gcc.c-torture/execute/20050316-2.c: New test.
+ * gcc.c-torture/execute/20050316-3.c: New test.
+ * gcc.dg/torture/pr16104-1.c: New test.
---- gcc/expr.c.jj 2005-01-04 15:41:28.000000000 +0100
-+++ gcc/expr.c 2005-01-13 14:38:42.431843676 +0100
-@@ -364,7 +364,27 @@ convert_move (rtx to, rtx from, int unsi
+--- gcc/fold-const.c.jj 2005-03-10 15:42:58.000000000 +0100
++++ gcc/fold-const.c 2005-03-16 09:43:50.777071142 +0100
+@@ -6874,16 +6874,19 @@ fold (tree expr)
+ int inside_int = INTEGRAL_TYPE_P (inside_type);
+ int inside_ptr = POINTER_TYPE_P (inside_type);
+ int inside_float = FLOAT_TYPE_P (inside_type);
++ int inside_vec = TREE_CODE (inside_type) == VECTOR_TYPE;
+ unsigned int inside_prec = TYPE_PRECISION (inside_type);
+ int inside_unsignedp = TYPE_UNSIGNED (inside_type);
+ int inter_int = INTEGRAL_TYPE_P (inter_type);
+ int inter_ptr = POINTER_TYPE_P (inter_type);
+ int inter_float = FLOAT_TYPE_P (inter_type);
++ int inter_vec = TREE_CODE (inter_type) == VECTOR_TYPE;
+ unsigned int inter_prec = TYPE_PRECISION (inter_type);
+ int inter_unsignedp = TYPE_UNSIGNED (inter_type);
+ int final_int = INTEGRAL_TYPE_P (type);
+ int final_ptr = POINTER_TYPE_P (type);
+ int final_float = FLOAT_TYPE_P (type);
++ int final_vec = TREE_CODE (type) == VECTOR_TYPE;
+ unsigned int final_prec = TYPE_PRECISION (type);
+ int final_unsignedp = TYPE_UNSIGNED (type);
- if (VECTOR_MODE_P (to_mode) || VECTOR_MODE_P (from_mode))
- {
-- gcc_assert (GET_MODE_BITSIZE (from_mode) == GET_MODE_BITSIZE (to_mode));
-+ if (GET_MODE_BITSIZE (from_mode) != GET_MODE_BITSIZE (to_mode))
-+ {
-+ if (VECTOR_MODE_P (from_mode))
-+ {
-+ enum machine_mode new_mode;
-+
-+ new_mode = mode_for_size (GET_MODE_BITSIZE (from_mode),
-+ MODE_INT, 0);
-+ from = simplify_gen_subreg (new_mode, from, from_mode, 0);
-+ }
-+ if (VECTOR_MODE_P (to_mode))
-+ {
-+ enum machine_mode new_mode;
-+
-+ new_mode = mode_for_size (GET_MODE_BITSIZE (to_mode),
-+ MODE_INT, 0);
-+ to = simplify_gen_subreg (new_mode, to, to_mode, 0);
-+ }
-+ convert_move (to, from, unsignedp);
-+ return;
-+ }
+@@ -6904,12 +6907,15 @@ fold (tree expr)
+ since then we sometimes need the inner conversion. Likewise if
+ the outer has a precision not equal to the size of its mode. */
+ if ((((inter_int || inter_ptr) && (inside_int || inside_ptr))
+- || (inter_float && inside_float))
++ || (inter_float && inside_float)
++ || (inter_vec && inside_vec))
+ && inter_prec >= inside_prec
+- && (inter_float || inter_unsignedp == inside_unsignedp)
++ && (inter_float || inter_vec
++ || inter_unsignedp == inside_unsignedp)
+ && ! (final_prec != GET_MODE_BITSIZE (TYPE_MODE (type))
+ && TYPE_MODE (type) == TYPE_MODE (inter_type))
+- && ! final_ptr)
++ && ! final_ptr
++ && (! final_vec || inter_prec == inside_prec))
+ return fold (build1 (code, type,
+ TREE_OPERAND (TREE_OPERAND (t, 0), 0)));
- if (VECTOR_MODE_P (to_mode))
- from = simplify_gen_subreg (to_mode, from, GET_MODE (from), 0);
---- gcc/testsuite/gcc.c-torture/execute/20050113-1.c.jj 2005-01-13 15:51:09.194383356 +0100
-+++ gcc/testsuite/gcc.c-torture/execute/20050113-1.c 2005-01-13 15:37:22.000000000 +0100
-@@ -0,0 +1,56 @@
+@@ -6923,6 +6929,7 @@ fold (tree expr)
+
+ /* Two conversions in a row are not needed unless:
+ - some conversion is floating-point (overstrict for now), or
++ - some conversion is a vector (overstrict for now), or
+ - the intermediate type is narrower than both initial and
+ final, or
+ - the intermediate type and innermost type differ in signedness,
+@@ -6932,6 +6939,7 @@ fold (tree expr)
+ - the final type is a pointer type and the precisions of the
+ initial and intermediate types differ. */
+ if (! inside_float && ! inter_float && ! final_float
++ && ! inside_vec && ! inter_vec && ! final_vec
+ && (inter_prec > inside_prec || inter_prec > final_prec)
+ && ! (inside_int && inter_int
+ && inter_unsignedp != inside_unsignedp
+--- gcc/testsuite/gcc.c-torture/execute/20050316-2.c.jj 2005-03-16 10:49:04.602767006 +0100
++++ gcc/testsuite/gcc.c-torture/execute/20050316-2.c 2005-03-16 10:46:39.000000000 +0100
+@@ -0,0 +1,49 @@
++extern void abort (void);
++
++typedef int V2SI __attribute__ ((vector_size (8)));
++typedef unsigned int V2USI __attribute__ ((vector_size (8)));
++typedef float V2SF __attribute__ ((vector_size (8)));
++typedef short V2HI __attribute__ ((vector_size (4)));
++typedef unsigned int V2UHI __attribute__ ((vector_size (4)));
++
++long long
++test1 (V2SF x)
++{
++ return (long long) (V2SI) x;
++}
++
++long long
++test2 (V2SF x)
++{
++ return (long long) x;
++}
++
++long long
++test3 (V2SI x)
++{
++ return (long long) (V2SF) x;
++}
++
++int
++main (void)
++{
++ if (sizeof (short) != 2 || sizeof (int) != 4 || sizeof (long long) != 8)
++ return 0;
++
++ V2SF x = { 2.0, 2.0 };
++ union { long long l; float f[2]; int i[2]; } u;
++ u.l = test1 (x);
++ if (u.f[0] != 2.0 || u.f[1] != 2.0)
++ abort ();
++
++ V2SF y = { 6.0, 6.0 };
++ u.l = test2 (y);
++ if (u.f[0] != 6.0 || u.f[1] != 6.0)
++ abort ();
++
++ V2SI z = { 4, 4 };
++ u.l = test3 (z);
++ if (u.i[0] != 4 || u.i[1] != 4)
++ abort ();
++ return 0;
++}
+--- gcc/testsuite/gcc.c-torture/execute/20050316-1.c.jj 2005-03-16 10:48:52.510920288 +0100
++++ gcc/testsuite/gcc.c-torture/execute/20050316-1.c 2005-03-16 10:28:44.000000000 +0100
+@@ -0,0 +1,69 @@
+/* PR rtl-optimization/16104 */
+
+extern void abort (void);
+
+typedef int V2SI __attribute__ ((vector_size (8)));
++typedef unsigned int V2USI __attribute__ ((vector_size (8)));
+typedef short V2HI __attribute__ ((vector_size (4)));
++typedef unsigned int V2UHI __attribute__ ((vector_size (4)));
+
+int
+test1 (void)
@@ -71,12 +154,134 @@
+ return (V2SI) (long long) (int) x;
+}
+
++V2SI
++test5 (V2USI x)
++{
++ return (V2SI) x;
++}
++
++int
++main (void)
++{
++ if (sizeof (short) != 2 || sizeof (int) != 4 || sizeof (long long) != 8)
++ return 0;
++
++ if (test1 () != 0)
++ abort ();
++
++ V2SI x = { 2, 2 };
++ if (test2 (x) != 2)
++ abort ();
++
++ union { V2SI x; int y[2]; V2USI z; long long l; } u;
++ u.x = test3 ();
++ if (u.y[0] != 0 || u.y[1] != 0)
++ abort ();
++
++ V2HI y = { 4, 4 };
++ union { V2SI x; long long y; } v;
++ v.x = test4 (y);
++ if (v.y != 0x40004)
++ abort ();
++
++ V2USI z = { 6, 6 };
++ u.x = test5 (z);
++ if (u.y[0] != 6 || u.y[1] != 6)
++ abort ();
++ return 0;
++}
+--- gcc/testsuite/gcc.c-torture/execute/20050316-3.c.jj 2005-03-16 10:49:19.461121066 +0100
++++ gcc/testsuite/gcc.c-torture/execute/20050316-3.c 2005-03-16 10:30:06.000000000 +0100
+@@ -0,0 +1,36 @@
++extern void abort (void);
++
++typedef int V2SI __attribute__ ((vector_size (8)));
++typedef unsigned int V2USI __attribute__ ((vector_size (8)));
++typedef short V2HI __attribute__ ((vector_size (4)));
++typedef unsigned int V2UHI __attribute__ ((vector_size (4)));
++
++V2USI
++test1 (V2SI x)
++{
++ return (V2USI) (V2SI) (long long) x;
++}
++
++long long
++test2 (V2SI x)
++{
++ return (long long) (V2USI) (V2SI) (long long) x;
++}
++
+int
+main (void)
+{
+ if (sizeof (short) != 2 || sizeof (int) != 4 || sizeof (long long) != 8)
+ return 0;
+
++ union { V2SI x; int y[2]; V2USI z; long long l; } u;
++ V2SI a = { -3, -3 };
++ u.z = test1 (a);
++ if (u.y[0] != -3 || u.y[1] != -3)
++ abort ();
++
++ u.l = test2 (a);
++ if (u.y[0] != -3 || u.y[1] != -3)
++ abort ();
++ return 0;
++}
+--- gcc/testsuite/gcc.dg/torture/pr16104-1.c.jj 2005-03-16 10:55:22.351496535 +0100
++++ gcc/testsuite/gcc.dg/torture/pr16104-1.c 2005-03-16 10:55:13.746029061 +0100
+@@ -0,0 +1,88 @@
++/* PR rtl-optimization/16104 */
++/* { dg-do run { target i?86-*-* x86_64-*-* } } */
++/* { dg-options "-msse2" } */
++
++#include "../i386-cpuid.h"
++
++extern void abort (void);
++
++typedef int V2SI __attribute__ ((vector_size (8)));
++typedef unsigned int V2USI __attribute__ ((vector_size (8)));
++typedef short V2HI __attribute__ ((vector_size (4)));
++typedef unsigned int V2UHI __attribute__ ((vector_size (4)));
++
++int
++test1 (void)
++{
++ return (long long) (V2SI) 0LL;
++}
++
++int
++test2 (V2SI x)
++{
++ return (long long) x;
++}
++
++V2SI
++test3 (void)
++{
++ return (V2SI) (long long) (int) (V2HI) 0;
++}
++
++V2SI
++test4 (V2HI x)
++{
++ return (V2SI) (long long) (int) x;
++}
++
++V2SI
++test5 (V2USI x)
++{
++ return (V2SI) x;
++}
++
++int
++__attribute__ ((noinline))
++do_test (void)
++{
++ if (sizeof (short) != 2 || sizeof (int) != 4 || sizeof (long long) != 8)
++ return 0;
++
+ if (test1 () != 0)
+ abort ();
+
@@ -84,7 +289,7 @@
+ if (test2 (x) != 2)
+ abort ();
+
-+ union { V2SI x; int y[2]; } u;
++ union { V2SI x; int y[2]; V2USI z; long long l; } u;
+ u.x = test3 ();
+ if (u.y[0] != 0 || u.y[1] != 0)
+ abort ();
@@ -94,5 +299,24 @@
+ v.x = test4 (y);
+ if (v.y != 0x40004)
+ abort ();
++
++ V2USI z = { 6, 6 };
++ u.x = test5 (z);
++ if (u.y[0] != 6 || u.y[1] != 6)
++ abort ();
+ return 0;
+}
++
++int
++main (void)
++{
++ unsigned long cpu_facilities;
++
++ cpu_facilities = i386_cpuid ();
++
++ if ((cpu_facilities & (bit_MMX | bit_SSE | bit_CMOV | bit_SSE2))
++ != (bit_MMX | bit_SSE | bit_CMOV | bit_SSE2))
++ return 0;
++
++ return do_test ();
++}
Index: gcc4.spec
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc4.spec,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- gcc4.spec 15 Mar 2005 17:52:56 -0000 1.16
+++ gcc4.spec 21 Mar 2005 12:20:28 -0000 1.17
@@ -1,6 +1,6 @@
-%define DATE 20050315
+%define DATE 20050321
%define gcc_version 4.0.0
-%define gcc_release 0.34
+%define gcc_release 0.35
%define _unpackaged_files_terminate_build 0
%define multilib_64_archs sparc64 ppc64 s390x x86_64
%ifarch %{ix86} alpha ia64 x86_64 s390
@@ -77,13 +77,12 @@
Patch5: gcc4-pr16104.patch
Patch6: gcc4-pr19769-workaround.patch
Patch7: gcc4-java-nomulti.patch
-Patch8: gcc4-libjawt.patch
-Patch9: gcc4-c++-pr19317.patch
-Patch10: gcc4-rh150150.patch
-Patch11: gcc4-pr20126.patch
-Patch12: gcc4-pr20249.patch
-Patch13: gcc4-c++-pr20381.patch
-Patch14: gcc4-ada-makej.patch
+Patch8: gcc4-c++-pr19317.patch
+Patch9: gcc4-pr20126.patch
+Patch10: gcc4-pr20249.patch
+Patch11: gcc4-c++-pr20381.patch
+Patch12: gcc4-pr20290.patch
+Patch13: gcc4-rh151466.patch
%define _gnu %{nil}
%ifarch sparc
@@ -97,11 +96,11 @@
%endif
%description
-The gcc package contains the GNU Compiler Collection version 3.4.
+The gcc package contains the GNU Compiler Collection version 4.0.
You'll need this package in order to compile C code.
%package -n libgcc
-Summary: GCC version 3.4 shared support library
+Summary: GCC version 4.0 shared support library
Group: System Environment/Libraries
Autoreq: false
@@ -113,8 +112,8 @@
Summary: C++ support for GCC
Group: Development/Languages
Requires: gcc = %{version}-%{release}
-Requires: libstdc++ = %{version}
-Requires: libstdc++-devel = %{version}
+Requires: libstdc++ = %{version}-%{release}
+Requires: libstdc++-devel = %{version}-%{release}
Obsoletes: gcc3-c++
Obsoletes: gcc34-c++
Obsoletes: gcc35-c++
@@ -180,6 +179,7 @@
Group: Development/Languages
Requires: gcc = %{version}-%{release}
Requires: libgfortran = %{version}-%{release}
+BuildRequires: gmp-devel >= 4.1.2-8
Prereq: /sbin/install-info
Obsoletes: gcc3-g77
Obsoletes: gcc-g77
@@ -226,7 +226,8 @@
Summary: Java support for GCC
Group: Development/Languages
Requires: gcc = %{version}-%{release}
-Requires: libgcj >= %{version}, libgcj-devel >= %{version}, zlib-devel
+Requires: libgcj = %{version}-%{release}
+Requires: libgcj-devel = %{version}-%{release}, zlib-devel
Obsoletes: gcc3-java
Obsoletes: gcc34-java
Obsoletes: gcc35-java
@@ -264,7 +265,7 @@
%package -n libgcj-devel
Summary: Libraries for Java development using GCC
Group: Development/Languages
-Requires: zip >= 2.1, libgcj = %{version}
+Requires: zip >= 2.1, libgcj = %{version}-%{release}
Obsoletes: libgcj3-devel
Obsoletes: libgcj34-devel
Obsoletes: libgcj4-devel
@@ -398,13 +399,10 @@
%patch5 -p0 -b .pr16104~
%patch6 -p0 -b .pr19769-workaround~
%patch7 -p0 -b .java-nomulti~
-%patch8 -p0 -b .libjawt~
-%patch9 -p0 -b .c++-pr19317~
-%patch10 -p0 -b .rh150150~
-%patch11 -p0 -b .pr20126~
-%patch12 -p0 -b .pr20249~
-%patch13 -p0 -b .c++-pr20381~
-%patch14 -p0 -b .ada-makej~
+%patch8 -p0 -b .c++-pr19317~
+%patch9 -p0 -b .pr20126~
+%patch10 -p0 -b .pr20249~
+%patch11 -p0 -b .c++-pr20381~
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
@@ -836,7 +834,7 @@
exit 1;;
esac
done
-exec %{_prefix}/bin/gcc $fl ${1+"$@"}
+exec gcc $fl ${1+"$@"}
EOF
cat > $RPM_BUILD_ROOT%{_prefix}/bin/c99 <<"EOF"
#!/bin/sh
@@ -848,7 +846,7 @@
exit 1;;
esac
done
-exec %{_prefix}/bin/gcc $fl ${1+"$@"}
+exec gcc $fl ${1+"$@"}
EOF
chmod 755 $RPM_BUILD_ROOT%{_prefix}/bin/c?9
@@ -1376,6 +1374,21 @@
%endif
%changelog
+* Mon Mar 21 2005 Jakub Jelinek <jakub at redhat.com> 4.0.0-0.35
+- update from CVS
+ - PRs ada/18727, ada/19140, ada/19408, ada/19900, ada/20255, ada/20344,
+ c++/20240, c++/20333, fortran/18525, fortran/18827, java/20522,
+ libfortran/20257, libfortran/20480, libgcj/20251, middle-end/15700,
+ middle-end/20225, middle-end/20493, target/18251, target/18380,
+ target/18551, tree-optimization/17454, tree-optimization/20474
+- replace 3.4 with 4.0 in gcc %%description and libgcc Summary (#151327)
+- don't hardcode full path to gcc in c89 and c99 wrapper scripts (#151620)
+- fix loop optimizer with loops that after tree optimization are entered
+ after the loop body (Alexandre Oliva, PR rtl-optimization/20290, #150020)
+- fix handling of jump tables at the end of scope with -g1 (#151466)
+- BuildRequire gmp-devel with mpfr support
+- tighten up rpm requires between subpackages
+
* Tue Mar 15 2005 Jakub Jelinek <jakub at redhat.com> 4.0.0-0.34
- update from gcc-4_0-branch
- PRs c++/20157, c++/20280, fortran/16907, fortran/20323, fortran/20361,
Index: sources
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/sources,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -r1.77 -r1.78
--- sources 15 Mar 2005 17:23:22 -0000 1.77
+++ sources 21 Mar 2005 12:20:28 -0000 1.78
@@ -1 +1 @@
-60ef6c1253ff90cfb165ec69bac0c178 gcc-4.0.0-20050315.tar.bz2
+0b8ffbf81cb3094bf62d25d9f13866f2 gcc-4.0.0-20050321.tar.bz2
--- gcc4-ada-makej.patch DELETED ---
--- gcc4-libjawt.patch DELETED ---
--- gcc4-rh150150.patch DELETED ---
- Previous message (by thread): rpms/rpm/devel rpm.spec,1.152,1.153
- Next message (by thread): rpms/httpd/FC-3 httpd-2.0.52-apctlopts.patch, NONE, 1.1 httpd-2.0.52-htdigperms.patch, NONE, 1.1 httpd-2.0.52-ssluser.patch, NONE, 1.1 httpd-2.0.53.tar.gz.asc, NONE, 1.1 .cvsignore, 1.11, 1.12 httpd-2.0.40-apctl.patch, 1.10, 1.11 httpd-2.0.45-export.patch, 1.3, 1.4 httpd.init, 1.7, 1.8 httpd.spec, 1.53, 1.54 sources, 1.9, 1.10 httpd-2.0.52-CAN-2004-0885.patch, 1.1, NONE httpd-2.0.52-CAN-2004-0942.patch, 1.1, NONE httpd-2.0.52.tar.gz.asc, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-cvs-commits
mailing list