4.3.0-6
This commit is contained in:
parent
fdfaee17fd
commit
08a0a12f84
@ -1,2 +1,2 @@
|
|||||||
gcc-4.3.0-20080326.tar.bz2
|
gcc-4.3.0-20080404.tar.bz2
|
||||||
fastjar-0.95.tar.gz
|
fastjar-0.95.tar.gz
|
||||||
|
@ -1,64 +0,0 @@
|
|||||||
2008-03-25 Jakub Jelinek <jakub@redhat.com>
|
|
||||||
|
|
||||||
PR c++/35546
|
|
||||||
* pt.c (apply_late_template_attributes): Don't call tsubst on
|
|
||||||
first attribute argument if it is IDENTIFIER_NODE.
|
|
||||||
|
|
||||||
* g++.dg/ext/attrib33.C: New test.
|
|
||||||
|
|
||||||
--- gcc/cp/pt.c.jj 2008-03-10 17:11:48.000000000 +0100
|
|
||||||
+++ gcc/cp/pt.c 2008-03-25 21:32:17.000000000 +0100
|
|
||||||
@@ -6717,9 +6717,29 @@ apply_late_template_attributes (tree *de
|
|
||||||
{
|
|
||||||
*p = TREE_CHAIN (t);
|
|
||||||
TREE_CHAIN (t) = NULL_TREE;
|
|
||||||
- TREE_VALUE (t)
|
|
||||||
- = tsubst_expr (TREE_VALUE (t), args, complain, in_decl,
|
|
||||||
- /*integral_constant_expression_p=*/false);
|
|
||||||
+ /* If the first attribute argument is an identifier, don't
|
|
||||||
+ pass it through tsubst. Attributes like mode, format,
|
|
||||||
+ cleanup and several target specific attributes expect it
|
|
||||||
+ unmodified. */
|
|
||||||
+ if (TREE_VALUE (t)
|
|
||||||
+ && TREE_CODE (TREE_VALUE (t)) == TREE_LIST
|
|
||||||
+ && TREE_VALUE (TREE_VALUE (t))
|
|
||||||
+ && (TREE_CODE (TREE_VALUE (TREE_VALUE (t)))
|
|
||||||
+ == IDENTIFIER_NODE))
|
|
||||||
+ {
|
|
||||||
+ tree chain
|
|
||||||
+ = tsubst_expr (TREE_CHAIN (TREE_VALUE (t)), args, complain,
|
|
||||||
+ in_decl,
|
|
||||||
+ /*integral_constant_expression_p=*/false);
|
|
||||||
+ if (chain != TREE_CHAIN (TREE_VALUE (t)))
|
|
||||||
+ TREE_VALUE (t)
|
|
||||||
+ = tree_cons (NULL_TREE, TREE_VALUE (TREE_VALUE (t)),
|
|
||||||
+ chain);
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ TREE_VALUE (t)
|
|
||||||
+ = tsubst_expr (TREE_VALUE (t), args, complain, in_decl,
|
|
||||||
+ /*integral_constant_expression_p=*/false);
|
|
||||||
*q = t;
|
|
||||||
q = &TREE_CHAIN (t);
|
|
||||||
}
|
|
||||||
--- gcc/testsuite/g++.dg/ext/attrib33.C.jj 2008-03-25 23:05:51.000000000 +0100
|
|
||||||
+++ gcc/testsuite/g++.dg/ext/attrib33.C 2008-03-25 23:06:15.000000000 +0100
|
|
||||||
@@ -0,0 +1,18 @@
|
|
||||||
+// PR c++/35546
|
|
||||||
+// { dg-do compile }
|
|
||||||
+
|
|
||||||
+template <int N>
|
|
||||||
+struct T
|
|
||||||
+{
|
|
||||||
+ void foo (char const * ...) __attribute__ ((format (printf,2,3)));
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+template struct T<3>;
|
|
||||||
+
|
|
||||||
+template <typename T>
|
|
||||||
+struct U
|
|
||||||
+{
|
|
||||||
+ typedef T __attribute__((mode (SI))) V;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+U<int>::V v;
|
|
114
gcc43-pr35751.patch
Normal file
114
gcc43-pr35751.patch
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
2008-04-03 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR c/35751
|
||||||
|
* c-decl.c (finish_decl): If extern or static var has variable
|
||||||
|
size, set TREE_TYPE (decl) to error_mark_node.
|
||||||
|
|
||||||
|
* decl.c (layout_var_decl): If extern or static var has variable
|
||||||
|
size, set TREE_TYPE (decl) to error_mark_node.
|
||||||
|
|
||||||
|
* gcc.dg/gomp/pr35751.c: New test.
|
||||||
|
* g++.dg/gomp/pr35751.C: New test.
|
||||||
|
|
||||||
|
--- gcc/c-decl.c.jj 2008-04-03 09:41:42.000000000 +0200
|
||||||
|
+++ gcc/c-decl.c 2008-04-03 18:20:52.000000000 +0200
|
||||||
|
@@ -3481,7 +3481,10 @@ finish_decl (tree decl, tree init, tree
|
||||||
|
if (TREE_CODE (DECL_SIZE (decl)) == INTEGER_CST)
|
||||||
|
constant_expression_warning (DECL_SIZE (decl));
|
||||||
|
else
|
||||||
|
- error ("storage size of %q+D isn%'t constant", decl);
|
||||||
|
+ {
|
||||||
|
+ error ("storage size of %q+D isn%'t constant", decl);
|
||||||
|
+ TREE_TYPE (decl) = error_mark_node;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TREE_USED (type))
|
||||||
|
--- gcc/cp/decl.c.jj 2008-03-31 23:54:40.000000000 +0200
|
||||||
|
+++ gcc/cp/decl.c 2008-04-03 18:30:19.000000000 +0200
|
||||||
|
@@ -4442,7 +4442,10 @@ layout_var_decl (tree decl)
|
||||||
|
if (TREE_CODE (DECL_SIZE (decl)) == INTEGER_CST)
|
||||||
|
constant_expression_warning (DECL_SIZE (decl));
|
||||||
|
else
|
||||||
|
- error ("storage size of %qD isn't constant", decl);
|
||||||
|
+ {
|
||||||
|
+ error ("storage size of %qD isn't constant", decl);
|
||||||
|
+ TREE_TYPE (decl) = error_mark_node;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--- gcc/testsuite/gcc.dg/gomp/pr35751.c.jj 2008-04-03 18:26:12.000000000 +0200
|
||||||
|
+++ gcc/testsuite/gcc.dg/gomp/pr35751.c 2008-04-03 18:25:51.000000000 +0200
|
||||||
|
@@ -0,0 +1,34 @@
|
||||||
|
+/* PR c/35751 */
|
||||||
|
+/* { dg-do compile } */
|
||||||
|
+/* { dg-options "-fopenmp" } */
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+foo (int i)
|
||||||
|
+{
|
||||||
|
+ extern int a[i]; /* { dg-error "must have no linkage|storage size of" } */
|
||||||
|
+ static int b[i]; /* { dg-error "storage size of" } */
|
||||||
|
+
|
||||||
|
+#pragma omp parallel
|
||||||
|
+ {
|
||||||
|
+ a[0] = 0;
|
||||||
|
+ b[0] = 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+#pragma omp parallel shared (a, b)
|
||||||
|
+ {
|
||||||
|
+ a[0] = 0;
|
||||||
|
+ b[0] = 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+#pragma omp parallel private (a, b)
|
||||||
|
+ {
|
||||||
|
+ a[0] = 0;
|
||||||
|
+ b[0] = 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+#pragma omp parallel firstprivate (a, b)
|
||||||
|
+ {
|
||||||
|
+ a[0] = 0;
|
||||||
|
+ b[0] = 0;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
--- gcc/testsuite/g++.dg/gomp/pr35751.C.jj 2008-04-03 18:32:13.000000000 +0200
|
||||||
|
+++ gcc/testsuite/g++.dg/gomp/pr35751.C 2008-04-03 18:32:32.000000000 +0200
|
||||||
|
@@ -0,0 +1,34 @@
|
||||||
|
+// PR c/35751
|
||||||
|
+// { dg-do compile }
|
||||||
|
+// { dg-options "-fopenmp" }
|
||||||
|
+
|
||||||
|
+void
|
||||||
|
+foo (int i)
|
||||||
|
+{
|
||||||
|
+ extern int a[i]; // { dg-error "storage size of" }
|
||||||
|
+ static int b[i]; // { dg-error "storage size of" }
|
||||||
|
+
|
||||||
|
+#pragma omp parallel
|
||||||
|
+ {
|
||||||
|
+ a[0] = 0;
|
||||||
|
+ b[0] = 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+#pragma omp parallel shared (a, b)
|
||||||
|
+ {
|
||||||
|
+ a[0] = 0;
|
||||||
|
+ b[0] = 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+#pragma omp parallel private (a, b)
|
||||||
|
+ {
|
||||||
|
+ a[0] = 0;
|
||||||
|
+ b[0] = 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+#pragma omp parallel firstprivate (a, b)
|
||||||
|
+ {
|
||||||
|
+ a[0] = 0;
|
||||||
|
+ b[0] = 0;
|
||||||
|
+ }
|
||||||
|
+}
|
89
gcc43-rh251682.patch
Normal file
89
gcc43-rh251682.patch
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
2008-04-01 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR pch/13675
|
||||||
|
* files.c (struct _cpp_file): Remove pch field.
|
||||||
|
(pch_open_file): Don't set file->pch, just file->pchname.
|
||||||
|
(should_stack_file): After pfile->cb.read_pch call
|
||||||
|
free pchname and clear pchname, don't close file->fd.
|
||||||
|
Test file->pchname instead of file->pch. Don't close fd after cb.
|
||||||
|
(_cpp_stack_include): Test file->pchname instead of file->pch.
|
||||||
|
|
||||||
|
* c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
|
||||||
|
|
||||||
|
--- libcpp/files.c.jj 2008-02-18 23:50:17.000000000 +0100
|
||||||
|
+++ libcpp/files.c 2008-03-31 15:59:01.000000000 +0200
|
||||||
|
@@ -106,9 +106,6 @@ struct _cpp_file
|
||||||
|
|
||||||
|
/* If BUFFER above contains the true contents of the file. */
|
||||||
|
bool buffer_valid;
|
||||||
|
-
|
||||||
|
- /* File is a PCH (on return from find_include_file). */
|
||||||
|
- bool pch;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* A singly-linked list for all searches for a given file name, with
|
||||||
|
@@ -322,9 +319,7 @@ pch_open_file (cpp_reader *pfile, _cpp_f
|
||||||
|
}
|
||||||
|
closedir (pchdir);
|
||||||
|
}
|
||||||
|
- if (valid)
|
||||||
|
- file->pch = true;
|
||||||
|
- else
|
||||||
|
+ if (!valid)
|
||||||
|
*invalid_pch = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -703,11 +698,12 @@ should_stack_file (cpp_reader *pfile, _c
|
||||||
|
return false;
|
||||||
|
|
||||||
|
/* Handle PCH files immediately; don't stack them. */
|
||||||
|
- if (file->pch)
|
||||||
|
+ if (file->pchname)
|
||||||
|
{
|
||||||
|
pfile->cb.read_pch (pfile, file->pchname, file->fd, file->path);
|
||||||
|
- close (file->fd);
|
||||||
|
file->fd = -1;
|
||||||
|
+ free ((void *) file->pchname);
|
||||||
|
+ file->pchname = NULL;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -916,7 +912,7 @@ _cpp_stack_include (cpp_reader *pfile, c
|
||||||
|
complicates LAST_SOURCE_LINE_LOCATION. This does not apply if we
|
||||||
|
found a PCH file (in which case linemap_add is not called) or we
|
||||||
|
were included from the command-line. */
|
||||||
|
- if (! file->pch && file->err_no == 0 && type != IT_CMDLINE)
|
||||||
|
+ if (file->pchname == NULL && file->err_no == 0 && type != IT_CMDLINE)
|
||||||
|
pfile->line_table->highest_location--;
|
||||||
|
|
||||||
|
return _cpp_stack_file (pfile, file, type == IT_IMPORT);
|
||||||
|
--- gcc/c-pch.c.jj 2008-02-18 23:46:08.000000000 +0100
|
||||||
|
+++ gcc/c-pch.c 2008-03-31 15:56:00.000000000 +0200
|
||||||
|
@@ -372,6 +372,7 @@ c_common_read_pch (cpp_reader *pfile, co
|
||||||
|
if (f == NULL)
|
||||||
|
{
|
||||||
|
cpp_errno (pfile, CPP_DL_ERROR, "calling fdopen");
|
||||||
|
+ close (fd);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -380,6 +381,7 @@ c_common_read_pch (cpp_reader *pfile, co
|
||||||
|
if (fread (&h, sizeof (h), 1, f) != 1)
|
||||||
|
{
|
||||||
|
cpp_errno (pfile, CPP_DL_ERROR, "reading");
|
||||||
|
+ fclose (f);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -425,7 +427,10 @@ c_common_read_pch (cpp_reader *pfile, co
|
||||||
|
gt_pch_restore (f);
|
||||||
|
|
||||||
|
if (cpp_read_state (pfile, name, f, smd) != 0)
|
||||||
|
- return;
|
||||||
|
+ {
|
||||||
|
+ fclose (f);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
fclose (f);
|
||||||
|
|
25
gcc43.spec
25
gcc43.spec
@ -1,6 +1,6 @@
|
|||||||
%define DATE 20080326
|
%define DATE 20080404
|
||||||
%define gcc_version 4.3.0
|
%define gcc_version 4.3.0
|
||||||
%define gcc_release 5
|
%define gcc_release 6
|
||||||
%define _unpackaged_files_terminate_build 0
|
%define _unpackaged_files_terminate_build 0
|
||||||
%define multilib_64_archs sparc64 ppc64 s390x x86_64
|
%define multilib_64_archs sparc64 ppc64 s390x x86_64
|
||||||
%define include_gappletviewer 1
|
%define include_gappletviewer 1
|
||||||
@ -142,8 +142,9 @@ Patch12: gcc43-cpp-pragma.patch
|
|||||||
Patch13: gcc43-java-debug-iface-type.patch
|
Patch13: gcc43-java-debug-iface-type.patch
|
||||||
Patch14: gcc43-libgomp-speedup.patch
|
Patch14: gcc43-libgomp-speedup.patch
|
||||||
Patch15: gcc43-pr35440.patch
|
Patch15: gcc43-pr35440.patch
|
||||||
Patch16: gcc43-pr35546.patch
|
Patch16: gcc43-i386-libgomp.patch
|
||||||
Patch17: gcc43-i386-libgomp.patch
|
Patch17: gcc43-pr35751.patch
|
||||||
|
Patch18: gcc43-rh251682.patch
|
||||||
|
|
||||||
# On ARM EABI systems, we do want -gnueabi to be part of the
|
# On ARM EABI systems, we do want -gnueabi to be part of the
|
||||||
# target triple.
|
# target triple.
|
||||||
@ -443,8 +444,9 @@ which are required to run programs compiled with the GNAT.
|
|||||||
%patch13 -p0 -b .java-debug-iface-type~
|
%patch13 -p0 -b .java-debug-iface-type~
|
||||||
%patch14 -p0 -b .libgomp-speedup~
|
%patch14 -p0 -b .libgomp-speedup~
|
||||||
%patch15 -p0 -b .pr35440~
|
%patch15 -p0 -b .pr35440~
|
||||||
%patch16 -p0 -b .pr35546~
|
%patch16 -p0 -b .i386-libgomp~
|
||||||
%patch17 -p0 -b .i386-libgomp~
|
%patch17 -p0 -b .pr35751~
|
||||||
|
%patch18 -p0 -b .rh251682~
|
||||||
|
|
||||||
tar xzf %{SOURCE4}
|
tar xzf %{SOURCE4}
|
||||||
|
|
||||||
@ -1660,6 +1662,17 @@ fi
|
|||||||
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
|
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Apr 4 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-6
|
||||||
|
- update from gcc-4_3-branch
|
||||||
|
- PRs ada/33857, c++/35245, c++/35741, c/35738, fortran/35698,
|
||||||
|
fortran/35699, fortran/35702, fortran/35724, fortran/35740,
|
||||||
|
fortran/35786, libfortran/35699, libstdc++/35725, middle-end/35429,
|
||||||
|
middle-end/35705, middle-end/35818, target/31110, target/31232,
|
||||||
|
target/35657, tree-opt/35431
|
||||||
|
- fix OpenMP ICE on invalid extern/static VLA (PR c/35751)
|
||||||
|
- fix PCH failure if a precompiled header is included more than
|
||||||
|
once (#251682, PR pch/13675)
|
||||||
|
|
||||||
* Thu Mar 27 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-5
|
* Thu Mar 27 2008 Jakub Jelinek <jakub@redhat.com> 4.3.0-5
|
||||||
- fix libgomp when sync builtins aren't available
|
- fix libgomp when sync builtins aren't available
|
||||||
- on i386 build libgomp and __cxa_guard_* as i486+,
|
- on i386 build libgomp and __cxa_guard_* as i486+,
|
||||||
|
Loading…
Reference in New Issue
Block a user