rpms/gcc/devel gcc41-pr29097.patch, NONE, 1.1 gcc41-strncat-chk.patch, NONE, 1.1 .cvsignore, 1.171, 1.172 gcc41.spec, 1.104, 1.105 sources, 1.173, 1.174 gcc41-pr28046.patch, 1.1, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Wed Sep 20 17:51:16 UTC 2006


Author: jakub

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

Modified Files:
	.cvsignore gcc41.spec sources 
Added Files:
	gcc41-pr29097.patch gcc41-strncat-chk.patch 
Removed Files:
	gcc41-pr28046.patch 
Log Message:
4.1.1-24

gcc41-pr29097.patch:
 gcc/fortran/scanner.c                          |   20 +++++++++++++++++++-
 libgomp/testsuite/libgomp.fortran/condinc1.f   |    7 +++++++
 libgomp/testsuite/libgomp.fortran/condinc1.inc |    2 ++
 libgomp/testsuite/libgomp.fortran/condinc2.f   |    7 +++++++
 libgomp/testsuite/libgomp.fortran/condinc3.f90 |    7 +++++++
 libgomp/testsuite/libgomp.fortran/condinc4.f90 |    7 +++++++
 6 files changed, 49 insertions(+), 1 deletion(-)

--- NEW FILE gcc41-pr29097.patch ---
2006-09-19  Jakub Jelinek  <jakub at redhat.com>

	PR fortran/29097
	* scanner.c (include_line): Handle conditional include.

	* testsuite/libgomp.fortran/condinc1.f: New test.
	* testsuite/libgomp.fortran/condinc2.f: New test.
	* testsuite/libgomp.fortran/condinc3.f90: New test.
	* testsuite/libgomp.fortran/condinc4.f90: New test.
	* testsuite/libgomp.fortran/condinc1.inc: New file.

--- gcc/fortran/scanner.c.jj	2006-06-09 14:59:02.000000000 +0200
+++ gcc/fortran/scanner.c	2006-09-19 10:58:31.000000000 +0200
@@ -1212,8 +1212,26 @@ static bool
 include_line (char *line)
 {
   char quote, *c, *begin, *stop;
-  
+
   c = line;
+
+  if (gfc_option.flag_openmp)
+    {
+      if (gfc_current_form == FORM_FREE)
+	{
+	  while (*c == ' ' || *c == '\t')
+	    c++;
+	  if (*c == '!' && c[1] == '$' && (c[2] == ' ' || c[2] == '\t'))
+	    c += 3;
+	}
+      else
+	{
+	  if ((*c == '!' || *c == 'c' || *c == 'C' || *c == '*')
+	      && c[1] == '$' && (c[2] == ' ' || c[2] == '\t'))
+	    c += 3;
+	}
+    }
+
   while (*c == ' ' || *c == '\t')
     c++;
 
--- libgomp/testsuite/libgomp.fortran/condinc1.f.jj	2006-09-19 11:01:22.000000000 +0200
+++ libgomp/testsuite/libgomp.fortran/condinc1.f	2006-09-19 11:09:18.000000000 +0200
@@ -0,0 +1,7 @@
+! { dg-options "-fopenmp" }
+      program condinc1
+      logical l
+      l = .false.
+!$    include 'condinc1.inc'
+      stop 2
+      end
--- libgomp/testsuite/libgomp.fortran/condinc1.inc.jj	2006-09-19 11:05:30.000000000 +0200
+++ libgomp/testsuite/libgomp.fortran/condinc1.inc	2006-09-19 11:08:17.000000000 +0200
@@ -0,0 +1,2 @@
+      if (l) stop 3
+      return
--- libgomp/testsuite/libgomp.fortran/condinc2.f.jj	2006-09-19 11:01:22.000000000 +0200
+++ libgomp/testsuite/libgomp.fortran/condinc2.f	2006-09-19 11:09:09.000000000 +0200
@@ -0,0 +1,7 @@
+! { dg-options "-fno-openmp" }
+      program condinc2
+      logical l
+      l = .true.
+C$    include 'condinc1.inc'
+      return
+      end
--- libgomp/testsuite/libgomp.fortran/condinc3.f90.jj	2006-09-19 11:01:22.000000000 +0200
+++ libgomp/testsuite/libgomp.fortran/condinc3.f90	2006-09-19 11:10:23.000000000 +0200
@@ -0,0 +1,7 @@
+  ! { dg-options "-fopenmp" }
+program condinc3
+  logical l
+  l = .false.
+    !$ include 'condinc1.inc'
+  stop 2
+end
--- libgomp/testsuite/libgomp.fortran/condinc4.f90.jj	2006-09-19 11:01:22.000000000 +0200
+++ libgomp/testsuite/libgomp.fortran/condinc4.f90	2006-09-19 11:10:51.000000000 +0200
@@ -0,0 +1,7 @@
+! { dg-options "-fno-openmp" }
+	program condinc4
+		logical l
+		l = .true.
+!$ include 'condinc1.inc'
+		return
+	end

gcc41-strncat-chk.patch:
 builtins.c                               |   22 +++++++++++++++++
 testsuite/gcc.dg/builtin-strncat-chk-1.c |   38 +++++++++++++++++++++++++++++++
 tree-ssa-propagate.c                     |    7 +++++
 3 files changed, 67 insertions(+)

--- NEW FILE gcc41-strncat-chk.patch ---
2006-09-18  Jakub Jelinek  <jakub at redhat.com>

	* tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
	needed.

	* builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
	BUILT_IN_STRNCAT_CHK.

	* gcc.dg/builtin-strncat-chk-1.c: New test.

--- gcc/tree-ssa-propagate.c.jj	2006-04-06 11:33:59.000000000 +0200
+++ gcc/tree-ssa-propagate.c	2006-09-18 14:49:57.000000000 +0200
@@ -591,6 +591,13 @@ set_rhs (tree *stmt_p, tree expr)
   else if (code == COMPOUND_EXPR)
     return false;
 
+  if (EXPR_HAS_LOCATION (stmt)
+      && EXPR_P (expr)
+      && ! EXPR_HAS_LOCATION (expr)
+      && TREE_SIDE_EFFECTS (expr)
+      && TREE_CODE (expr) != LABEL_EXPR)
+    SET_EXPR_LOCATION (expr, EXPR_LOCATION (stmt));
+
   switch (TREE_CODE (stmt))
     {
     case RETURN_EXPR:
--- gcc/builtins.c.jj	2006-09-02 08:54:22.000000000 +0200
+++ gcc/builtins.c	2006-09-18 16:54:57.000000000 +0200
@@ -6437,6 +6437,7 @@ expand_builtin (tree exp, rtx target, rt
     case BUILT_IN_STPCPY_CHK:
     case BUILT_IN_STRNCPY_CHK:
     case BUILT_IN_STRCAT_CHK:
+    case BUILT_IN_STRNCAT_CHK:
     case BUILT_IN_SNPRINTF_CHK:
     case BUILT_IN_VSNPRINTF_CHK:
       maybe_emit_chk_warning (exp, fcode);
@@ -10128,6 +10129,11 @@ maybe_emit_chk_warning (tree exp, enum b
       arg_mask = 6;
       is_strlen = 1;
       break;
+    case BUILT_IN_STRNCAT_CHK:
+    /* For __strncat_chk the warning will be emitted only if overflowing
+       by at least strlen (dest) + 1 bytes.  */
+      arg_mask = 12;
+      break;
     case BUILT_IN_STRNCPY_CHK:
       arg_mask = 12;
       break;
@@ -10165,6 +10171,22 @@ maybe_emit_chk_warning (tree exp, enum b
       if (! len || ! host_integerp (len, 1) || tree_int_cst_lt (len, size))
 	return;
     }
+  else if (fcode == BUILT_IN_STRNCAT_CHK)
+    {
+      tree src = TREE_VALUE (TREE_CHAIN (arglist));
+      if (! src || ! host_integerp (len, 1) || tree_int_cst_lt (len, size))
+	return;
+      src = c_strlen (src, 1);
+      if (! src || ! host_integerp (src, 1))
+	{
+	  locus = EXPR_LOCATION (exp);
+	  warning (0, "%Hcall to %D might overflow destination buffer",
+		   &locus, get_callee_fndecl (exp));
+	  return;
+	}
+      else if (tree_int_cst_lt (src, size))
+	return;
+    }
   else if (! host_integerp (len, 1) || ! tree_int_cst_lt (size, len))
     return;
 
--- gcc/testsuite/gcc.dg/builtin-strncat-chk-1.c.jj	2006-09-18 13:07:54.000000000 +0200
+++ gcc/testsuite/gcc.dg/builtin-strncat-chk-1.c	2006-09-18 16:55:09.000000000 +0200
@@ -0,0 +1,38 @@
+/* Test whether buffer overflow warnings for __strncat_chk builtin
+   are emitted properly.  */
+/* { dg-do compile } */
+/* { dg-options "-O2 -std=gnu99" } */
+
+extern void abort (void);
+
+#include "../gcc.c-torture/execute/builtins/chk.h"
+
+char buf1[20];
+char *q;
+
+void
+test (int arg, ...)
+{
+  char *p = &buf1[10];
+
+  *p = 0;
+  strncat (p, "abcdefg", 9);
+  *p = 0;
+  strncat (p, "abcdefghi", 9);
+  *p = 0;
+  strncat (p, "abcdefghij", 9);
+  *p = 0;
+  strncat (p, "abcdefghi", 10);
+  *p = 0;
+  strncat (p, "abcdefghij", 10); /* { dg-warning "will always overflow" } */
+  *p = 0;
+  strncat (p, "abcdefgh", 11);
+  *p = 0;
+  strncat (p, "abcdefghijkl", 11); /* { dg-warning "will always overflow" } */
+  *p = 0;
+  strncat (p, q, 9);
+  *p = 0;
+  strncat (p, q, 10); /* { dg-warning "might overflow" } */
+  *p = 0;
+  strncat (p, q, 11); /* { dg-warning "might overflow" } */
+}


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/.cvsignore,v
retrieving revision 1.171
retrieving revision 1.172
diff -u -r1.171 -r1.172
--- .cvsignore	17 Sep 2006 10:53:40 -0000	1.171
+++ .cvsignore	20 Sep 2006 17:51:14 -0000	1.172
@@ -1 +1 @@
-gcc-4.1.1-20060917.tar.bz2
+gcc-4.1.1-20060920.tar.bz2


Index: gcc41.spec
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc41.spec,v
retrieving revision 1.104
retrieving revision 1.105
diff -u -r1.104 -r1.105
--- gcc41.spec	17 Sep 2006 10:53:40 -0000	1.104
+++ gcc41.spec	20 Sep 2006 17:51:14 -0000	1.105
@@ -1,6 +1,6 @@
-%define DATE 20060917
+%define DATE 20060920
 %define gcc_version 4.1.1
-%define gcc_release 23
+%define gcc_release 24
 %define _unpackaged_files_terminate_build 0
 %define multilib_64_archs sparc64 ppc64 s390x x86_64
 %ifarch %{ix86} x86_64 ia64
@@ -144,8 +144,9 @@
 Patch36: gcc41-pr26026.patch
 Patch37: gcc41-pr28659.patch
 Patch38: gcc41-pr27567.patch
-Patch39: gcc41-pr28046.patch
+Patch39: gcc41-pr29097.patch
 Patch40: gcc41-pr29059.patch
+Patch41: gcc41-strncat-chk.patch
 
 %define _gnu %{nil}
 %ifarch sparc
@@ -467,8 +468,9 @@
 %patch36 -p0 -b .pr26026~
 %patch37 -p0 -b .pr28659~
 %patch38 -p0 -b .pr27567~
-%patch39 -p0 -b .pr28046~
+%patch39 -p0 -b .pr29097~
 %patch40 -p0 -b .pr29059~
+%patch41 -p0 -b .strncat-chk~
 
 sed -i -e 's/4\.1\.2/4.1.1/' gcc/BASE-VER gcc/version.c
 sed -i -e 's/" (Red Hat[^)]*)"/" (Red Hat %{version}-%{gcc_release})"/' gcc/version.c
@@ -1530,6 +1532,16 @@
 %doc rpm.doc/changelogs/libmudflap/ChangeLog*
 
 %changelog
+* Wed Sep 20 2006 Jakub Jelinek <jakub at redhat.com> 4.1.1-24
+- update from gcc-4_1-branch (-r117000:117069)
+  - PRs fortran/21918, fortran/28526, fortran/28817, fortran/29060,
+	fortran/29101, java/28754, java/28892, java/29013,
+	middle-end/27226, middle-end/4520, tree-optimization/28900
+- fix java.utils.logging.Logger (Mark Wielaard, #207111)
+- fix gnu.javax.net.ssl.provider.SSLSocket (Tom Tromey, #206904)
+- add support for Fortran OpenMP conditional inclusion (PR fortran/29097)
+- add some -D_FORTIFY_SOURCE compile time strncat buffer overflow checks
+
 * Sun Sep 17 2006 Jakub Jelinek <jakub at redhat.com> 4.1.1-23
 - update from gcc-4_1-branch (-r116958:117000)
   - PRs fortran/29051, target/28946


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/sources,v
retrieving revision 1.173
retrieving revision 1.174
diff -u -r1.173 -r1.174
--- sources	17 Sep 2006 10:53:40 -0000	1.173
+++ sources	20 Sep 2006 17:51:14 -0000	1.174
@@ -1 +1 @@
-30d24a5101c7085b47b97a5a6715a6cd  gcc-4.1.1-20060917.tar.bz2
+555f825257d7a7976d77ac4e80ec5ca5  gcc-4.1.1-20060920.tar.bz2


--- gcc41-pr28046.patch DELETED ---




More information about the fedora-cvs-commits mailing list