Ignore:
Timestamp:
Mar 12, 2009, 11:50:16 AM (16 years ago)
Author:
Jim Gifford <clfs@…>
Branches:
clfs-1.2, clfs-2.1, clfs-3.0.0-systemd, clfs-3.0.0-sysvinit, master, systemd, sysvinit
Children:
8c75f86f
Parents:
b9dddef
Message:

Updated GCC Branch Update Patch to -4

File:
1 moved

Legend:

Unmodified
Added
Removed
  • patches/gcc-4.3.3-branch_update-4.patch

    rb9dddef r73fb3dc5  
    11Submitted By: Jim Gifford (jim at cross-lfs dot org)
    2 Date: 03-01-2009
     2Date: 03-12-2009
    33Initial Package Version: 4.3.3
    44Origin: Upstream
     
    99diff -Naur gcc-4.3.3.orig/gcc/ada/ChangeLog gcc-4.3.3/gcc/ada/ChangeLog
    1010--- gcc-4.3.3.orig/gcc/ada/ChangeLog    2009-01-24 02:15:46.000000000 -0800
    11 +++ gcc-4.3.3/gcc/ada/ChangeLog 2009-02-28 09:30:26.328421000 -0800
     11+++ gcc-4.3.3/gcc/ada/ChangeLog 2009-03-01 15:05:14.694633000 -0800
    1212@@ -1,3 +1,8 @@
    1313+2009-02-28  Eric Botcazou  <ebotcazou@adacore.com>
    1414+
    1515+       * Makefile.in (cygwin/mingw): Revert accidental EH_MECHANISM change
    16 +       in r130816.
     16+       made on 2007-12-06.
    1717+
    1818 2009-01-24  Release Manager
     
    167167diff -Naur gcc-4.3.3.orig/gcc/ChangeLog gcc-4.3.3/gcc/ChangeLog
    168168--- gcc-4.3.3.orig/gcc/ChangeLog        2009-01-24 02:16:13.000000000 -0800
    169 +++ gcc-4.3.3/gcc/ChangeLog     2009-02-28 10:33:27.113860000 -0800
    170 @@ -1,3 +1,309 @@
     169+++ gcc-4.3.3/gcc/ChangeLog     2009-03-09 13:49:28.992696000 -0700
     170@@ -1,3 +1,323 @@
     171+2009-03-09  Denis Chertykov  <denisc@overta.ru>
     172+
     173+       * config/avr/avr.md ("andsi3"): Fix wrong cc attribute.
     174+
     175+2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
     176+
     177+       * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
     178+       of ABI_64.
     179+
     180+2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
     181+
     182+       * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
     183+       (spu_section_type_flags): New function.
     184+
    171185+2009-02-28  Martin Jambor  <mjambor@suse.cz>
    172186+
     
    478492 
    479493        * GCC 4.3.3 released.
    480 @@ -5,8 +311,7 @@
     494@@ -5,8 +325,7 @@
    481495 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
    482496 
     
    488502 2009-01-19  Richard Guenther  <rguenther@suse.de>
    489503 
    490 @@ -41,7 +346,8 @@
     504@@ -41,7 +360,8 @@
    491505       
    492506 2009-01-11  Matthias Klose  <doko@ubuntu.com>
     
    498512 
    499513        * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
    500 @@ -509,8 +815,8 @@
     514@@ -509,8 +829,8 @@
    501515        PR tree-optimization/37102
    502516        * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args 
     
    509523 
    510524 2008-10-08  Simon Martin  <simartin@users.sourceforge.net>
    511 @@ -986,8 +1292,10 @@
     525@@ -986,8 +1306,10 @@
    512526 
    513527        (MFC_MIN_DMA_LIST_ELEMENTS): New define.
     
    782796+  default_elf_asm_output_external (FILE, DECL, NAME)
    783797+#endif
     798diff -Naur gcc-4.3.3.orig/gcc/config/avr/avr.md gcc-4.3.3/gcc/config/avr/avr.md
     799--- gcc-4.3.3.orig/gcc/config/avr/avr.md        2008-09-12 10:29:38.000000000 -0700
     800+++ gcc-4.3.3/gcc/config/avr/avr.md     2009-03-09 13:49:28.992696000 -0700
     801@@ -1,8 +1,8 @@
     802 ;; -*- Mode: Scheme -*-
     803 ;;   Machine description for GNU compiler,
     804 ;;   for ATMEL AVR micro controllers.
     805-;;   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008
     806-;;   Free Software Foundation, Inc.
     807+;;   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008,
     808+;;   2009 Free Software Foundation, Inc.
     809 ;;   Contributed by Denis Chertykov (denisc@overta.ru)
     810 
     811 ;; This file is part of GCC.
     812@@ -1180,7 +1180,7 @@
     813   return \"bug\";
     814 }"
     815   [(set_attr "length" "4,4")
     816-   (set_attr "cc" "set_n,set_n")])
     817+   (set_attr "cc" "set_n,clobber")])
     818 
     819 ;;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
     820 ;; ior
    784821diff -Naur gcc-4.3.3.orig/gcc/config/i386/i386.c gcc-4.3.3/gcc/config/i386/i386.c
    785822--- gcc-4.3.3.orig/gcc/config/i386/i386.c       2008-08-28 06:31:33.000000000 -0700
     
    11001137
    11011138 
     1139diff -Naur gcc-4.3.3.orig/gcc/config/mips/mips.c gcc-4.3.3/gcc/config/mips/mips.c
     1140--- gcc-4.3.3.orig/gcc/config/mips/mips.c       2008-07-12 01:00:46.000000000 -0700
     1141+++ gcc-4.3.3/gcc/config/mips/mips.c    2009-03-02 12:42:24.177070000 -0800
     1142@@ -7080,7 +7080,7 @@
     1143     case ABI_N32:
     1144       return "abiN32";
     1145     case ABI_64:
     1146-      return "abiN64";
     1147+      return "abi64";
     1148     case ABI_EABI:
     1149       return TARGET_64BIT ? "eabi64" : "eabi32";
     1150     default:
    11021151diff -Naur gcc-4.3.3.orig/gcc/config/mips/sde.h gcc-4.3.3/gcc/config/mips/sde.h
    11031152--- gcc-4.3.3.orig/gcc/config/mips/sde.h        2007-09-19 10:13:33.000000000 -0700
     
    12641313    get us switched to various sections of interest.  These are used
    12651314    in all places where we simply want to switch to a section, and
     1315diff -Naur gcc-4.3.3.orig/gcc/config/spu/spu.c gcc-4.3.3/gcc/config/spu/spu.c
     1316--- gcc-4.3.3.orig/gcc/config/spu/spu.c 2008-09-12 06:29:31.000000000 -0700
     1317+++ gcc-4.3.3/gcc/config/spu/spu.c      2009-03-02 11:38:26.367169000 -0800
     1318@@ -142,6 +142,7 @@
     1319 static bool spu_vector_alignment_reachable (const_tree, bool);
     1320 static int spu_sms_res_mii (struct ddg *g);
     1321 static void asm_file_start (void);
     1322+static unsigned int spu_section_type_flags (tree, const char *, int);
     1323 
     1324 extern const char *reg_names[];
     1325 rtx spu_compare_op0, spu_compare_op1;
     1326@@ -325,6 +326,9 @@
     1327 #undef TARGET_ASM_FILE_START
     1328 #define TARGET_ASM_FILE_START asm_file_start
     1329 
     1330+#undef TARGET_SECTION_TYPE_FLAGS
     1331+#define TARGET_SECTION_TYPE_FLAGS spu_section_type_flags
     1332+
     1333 struct gcc_target targetm = TARGET_INITIALIZER;
     1334 
     1335 void
     1336@@ -6220,3 +6224,13 @@
     1337   default_file_start ();
     1338 }
     1339 
     1340+/* Implement targetm.section_type_flags.  */
     1341+static unsigned int
     1342+spu_section_type_flags (tree decl, const char *name, int reloc)
     1343+{
     1344+  /* .toe needs to have type @nobits.  */
     1345+  if (strcmp (name, ".toe") == 0)
     1346+    return SECTION_BSS;
     1347+  return default_section_type_flags (decl, name, reloc);
     1348+}
     1349+
    12661350diff -Naur gcc-4.3.3.orig/gcc/convert.c gcc-4.3.3/gcc/convert.c
    12671351--- gcc-4.3.3.orig/gcc/convert.c        2007-09-06 18:24:09.000000000 -0700
     
    13301414diff -Naur gcc-4.3.3.orig/gcc/cp/ChangeLog gcc-4.3.3/gcc/cp/ChangeLog
    13311415--- gcc-4.3.3.orig/gcc/cp/ChangeLog     2009-01-24 02:15:39.000000000 -0800
    1332 +++ gcc-4.3.3/gcc/cp/ChangeLog  2009-02-20 07:21:51.443104000 -0800
    1333 @@ -1,3 +1,44 @@
     1416+++ gcc-4.3.3/gcc/cp/ChangeLog  2009-03-04 11:37:43.898064000 -0800
     1417@@ -1,3 +1,56 @@
     1418+2009-03-04  Jason Merrill  <jason@redhat.com>
     1419+
     1420+       PR c++/9634
     1421+       PR c++/29469
     1422+       PR c++/29607
     1423+       * decl.c (make_typename_type): Do look inside currently open classes.
     1424+       * parser.c (cp_parser_lookup_name): Likewise.
     1425+       (cp_parser_template_name): Likewise.
     1426+       * pt.c (dependent_scope_p): New function.
     1427+       * cp-tree.h: Declare it.
     1428+       * class.c (currently_open_class): Return fast if T isn't a class.
     1429+
    13341430+2009-02-20  Jason Merrill  <jason@redhat.com>
    13351431+
     
    13761472 
    13771473        * GCC 4.3.3 released.
     1474diff -Naur gcc-4.3.3.orig/gcc/cp/class.c gcc-4.3.3/gcc/cp/class.c
     1475--- gcc-4.3.3.orig/gcc/cp/class.c       2008-06-15 04:57:33.000000000 -0700
     1476+++ gcc-4.3.3/gcc/cp/class.c    2009-03-04 11:37:43.898064000 -0800
     1477@@ -5688,6 +5688,9 @@
     1478 {
     1479   int i;
     1480 
     1481+  if (!CLASS_TYPE_P (t))
     1482+    return false;
     1483+
     1484   /* We start looking from 1 because entry 0 is from global scope,
     1485      and has no type.  */
     1486   for (i = current_class_depth; i > 0; --i)
    13781487diff -Naur gcc-4.3.3.orig/gcc/cp/cp-tree.h gcc-4.3.3/gcc/cp/cp-tree.h
    13791488--- gcc-4.3.3.orig/gcc/cp/cp-tree.h     2009-01-15 14:34:20.000000000 -0800
    1380 +++ gcc-4.3.3/gcc/cp/cp-tree.h  2009-02-13 13:53:38.261573000 -0800
    1381 @@ -4623,7 +4623,7 @@
     1489+++ gcc-4.3.3/gcc/cp/cp-tree.h  2009-03-04 11:37:43.898064000 -0800
     1490@@ -4460,6 +4460,7 @@
     1491 extern tree maybe_get_template_decl_from_type_decl (tree);
     1492 extern int processing_template_parmlist;
     1493 extern bool dependent_type_p                   (tree);
     1494+extern bool dependent_scope_p                  (tree);
     1495 extern bool any_dependent_template_arguments_p  (const_tree);
     1496 extern bool dependent_template_p               (tree);
     1497 extern bool dependent_template_id_p            (tree, tree);
     1498@@ -4623,7 +4624,7 @@
    13821499 extern tree finish_stmt_expr                   (tree, bool);
    13831500 extern tree stmt_expr_value_expr               (tree);
     
    13901507diff -Naur gcc-4.3.3.orig/gcc/cp/decl.c gcc-4.3.3/gcc/cp/decl.c
    13911508--- gcc-4.3.3.orig/gcc/cp/decl.c        2008-09-30 12:56:13.000000000 -0700
    1392 +++ gcc-4.3.3/gcc/cp/decl.c     2009-02-20 07:21:51.443104000 -0800
    1393 @@ -7512,7 +7512,9 @@
     1509+++ gcc-4.3.3/gcc/cp/decl.c     2009-03-04 11:37:43.898064000 -0800
     1510@@ -2978,12 +2978,6 @@
     1511   gcc_assert (TREE_CODE (name) == IDENTIFIER_NODE);
     1512   gcc_assert (TYPE_P (context));
     1513 
     1514-  /* When the CONTEXT is a dependent type,  NAME could refer to a
     1515-     dependent base class of CONTEXT.  So we cannot peek inside it,
     1516-     even if CONTEXT is a currently open scope.  */
     1517-  if (dependent_type_p (context))
     1518-    return build_typename_type (context, name, fullname, tag_type);
     1519-
     1520   if (!IS_AGGR_TYPE (context))
     1521     {
     1522       if (complain & tf_error)
     1523@@ -2991,11 +2985,23 @@
     1524       return error_mark_node;
     1525     }
     1526   
     1527+  /* When the CONTEXT is a dependent type,  NAME could refer to a
     1528+     dependent base class of CONTEXT.  But look inside it anyway
     1529+     if CONTEXT is a currently open scope, in case it refers to a
     1530+     member of the current instantiation or a non-dependent base;
     1531+     lookup will stop when we hit a dependent base.  */
     1532+  if (!dependent_scope_p (context))
     1533+    /* We should only set WANT_TYPE when we're a nested typename type.
     1534+       Then we can give better diagnostics if we find a non-type.  */
     1535+    t = lookup_field (context, name, 0, /*want_type=*/true);
     1536+  else
     1537+    t = NULL_TREE;
     1538+
     1539+  if (!t && dependent_type_p (context))
     1540+    return build_typename_type (context, name, fullname, tag_type);
     1541+
     1542   want_template = TREE_CODE (fullname) == TEMPLATE_ID_EXPR;
     1543   
     1544-  /* We should only set WANT_TYPE when we're a nested typename type.
     1545-     Then we can give better diagnostics if we find a non-type.  */
     1546-  t = lookup_field (context, name, 0, /*want_type=*/true);
     1547   if (!t)
     1548     {
     1549       if (complain & tf_error)
     1550@@ -7512,7 +7518,9 @@
    13941551                    }
    13951552 
     
    14021559                }
    14031560                break;
    1404 @@ -8009,8 +8011,9 @@
     1561@@ -8009,8 +8017,9 @@
    14051562       switch (TREE_CODE (unqualified_id))
    14061563        {
     
    14141571 
    14151572        case IDENTIFIER_NODE:
    1416 @@ -8856,21 +8859,20 @@
     1573@@ -8856,21 +8865,20 @@
    14171574            /* Check that the name used for a destructor makes sense.  */
    14181575            if (sfk == sfk_destructor)
     
    14431600diff -Naur gcc-4.3.3.orig/gcc/cp/parser.c gcc-4.3.3/gcc/cp/parser.c
    14441601--- gcc-4.3.3.orig/gcc/cp/parser.c      2008-11-19 13:00:23.000000000 -0800
    1445 +++ gcc-4.3.3/gcc/cp/parser.c   2009-02-02 11:57:29.682708000 -0800
     1602+++ gcc-4.3.3/gcc/cp/parser.c   2009-03-04 11:37:43.898064000 -0800
    14461603@@ -3791,6 +3791,8 @@
    14471604            parser->scope = NULL_TREE;
     
    14701627        /* If an error occurred, assume that the name of the
    14711628           destructor is the same as the name of the qualifying
     1629@@ -9941,7 +9953,7 @@
     1630          && !template_keyword_p
     1631          && parser->scope && TYPE_P (parser->scope)
     1632          && check_dependency_p
     1633-         && dependent_type_p (parser->scope)
     1634+         && dependent_scope_p (parser->scope)
     1635          /* Do not do this for dtors (or ctors), since they never
     1636             need the template keyword before their name.  */
     1637          && !constructor_name_p (identifier, parser->scope))
     1638@@ -16214,35 +16226,11 @@
     1639         cannot look up the name if the scope is not a class type; it
     1640         might, for example, be a template type parameter.  */
     1641       dependent_p = (TYPE_P (parser->scope)
     1642-                    && !(parser->in_declarator_p
     1643-                         && currently_open_class (parser->scope))
     1644-                    && dependent_type_p (parser->scope));
     1645+                    && dependent_scope_p (parser->scope));
     1646       if ((check_dependency || !CLASS_TYPE_P (parser->scope))
     1647-          && dependent_p)
     1648-       {
     1649-         if (tag_type)
     1650-           {
     1651-             tree type;
     1652-
     1653-             /* The resolution to Core Issue 180 says that `struct
     1654-                A::B' should be considered a type-name, even if `A'
     1655-                is dependent.  */
     1656-             type = make_typename_type (parser->scope, name, tag_type,
     1657-                                        /*complain=*/tf_error);
     1658-             decl = TYPE_NAME (type);
     1659-           }
     1660-         else if (is_template
     1661-                  && (cp_parser_next_token_ends_template_argument_p (parser)
     1662-                      || cp_lexer_next_token_is (parser->lexer,
     1663-                                                 CPP_CLOSE_PAREN)))
     1664-           decl = make_unbound_class_template (parser->scope,
     1665-                                               name, NULL_TREE,
     1666-                                               /*complain=*/tf_error);
     1667-         else
     1668-           decl = build_qualified_name (/*type=*/NULL_TREE,
     1669-                                        parser->scope, name,
     1670-                                        is_template);
     1671-       }
     1672+         && dependent_p)
     1673+       /* Defer lookup.  */
     1674+       decl = error_mark_node;
     1675       else
     1676        {
     1677          tree pushed_scope = NULL_TREE;
     1678@@ -16263,14 +16251,42 @@
     1679                                        /*complain=*/true);
     1680 
     1681          /* If we have a single function from a using decl, pull it out.  */
     1682-         if (decl
     1683-             && TREE_CODE (decl) == OVERLOAD
     1684+         if (TREE_CODE (decl) == OVERLOAD
     1685              && !really_overloaded_fn (decl))
     1686            decl = OVL_FUNCTION (decl);
     1687 
     1688          if (pushed_scope)
     1689            pop_scope (pushed_scope);
     1690        }
     1691+
     1692+      /* If the scope is a dependent type and either we deferred lookup or
     1693+        we did lookup but didn't find the name, rememeber the name.  */
     1694+      if (decl == error_mark_node && TYPE_P (parser->scope)
     1695+         && dependent_type_p (parser->scope))
     1696+       {
     1697+         if (tag_type)
     1698+           {
     1699+             tree type;
     1700+
     1701+             /* The resolution to Core Issue 180 says that `struct
     1702+                A::B' should be considered a type-name, even if `A'
     1703+                is dependent.  */
     1704+             type = make_typename_type (parser->scope, name, tag_type,
     1705+                                        /*complain=*/tf_error);
     1706+             decl = TYPE_NAME (type);
     1707+           }
     1708+         else if (is_template
     1709+                  && (cp_parser_next_token_ends_template_argument_p (parser)
     1710+                      || cp_lexer_next_token_is (parser->lexer,
     1711+                                                 CPP_CLOSE_PAREN)))
     1712+           decl = make_unbound_class_template (parser->scope,
     1713+                                               name, NULL_TREE,
     1714+                                               /*complain=*/tf_error);
     1715+         else
     1716+           decl = build_qualified_name (/*type=*/NULL_TREE,
     1717+                                        parser->scope, name,
     1718+                                        is_template);
     1719+       }
     1720       parser->qualifying_scope = parser->scope;
     1721       parser->object_scope = NULL_TREE;
     1722     }
    14721723diff -Naur gcc-4.3.3.orig/gcc/cp/pt.c gcc-4.3.3/gcc/cp/pt.c
    14731724--- gcc-4.3.3.orig/gcc/cp/pt.c  2009-01-16 14:35:24.000000000 -0800
    1474 +++ gcc-4.3.3/gcc/cp/pt.c       2009-02-17 10:27:32.576290000 -0800
     1725+++ gcc-4.3.3/gcc/cp/pt.c       2009-03-04 11:37:43.898064000 -0800
    14751726@@ -4555,6 +4555,13 @@
    14761727       expr = convert_nontype_argument_function (type, expr);
     
    15111762        /* We haven't deduced the type of this parameter yet.  Try again
    15121763           later.  */
     1764@@ -15637,6 +15644,16 @@
     1765   return TYPE_DEPENDENT_P (type);
     1766 }
     1767 
     1768+/* Returns TRUE if SCOPE is a dependent scope, in which we can't do any
     1769+   lookup.  In other words, a dependent type that is not the current
     1770+   instantiation.  */
     1771+
     1772+bool
     1773+dependent_scope_p (tree scope)
     1774+{
     1775+  return dependent_type_p (scope) && !currently_open_class (scope);
     1776+}
     1777+
     1778 /* Returns TRUE if EXPRESSION is dependent, according to CRITERION.  */
     1779 
     1780 static bool
     1781@@ -15658,7 +15675,7 @@
     1782      An id-expression is type-dependent if it contains a
     1783      nested-name-specifier that contains a class-name that names a
     1784      dependent type.  */
     1785-  /* The suggested resolution to Core Issue 2 implies that if the
     1786+  /* The suggested resolution to Core Issue 224 implies that if the
     1787      qualifying type is the current class, then we must peek
     1788      inside it.  */
     1789   if (DECL_P (name)
    15131790diff -Naur gcc-4.3.3.orig/gcc/cp/semantics.c gcc-4.3.3/gcc/cp/semantics.c
    15141791--- gcc-4.3.3.orig/gcc/cp/semantics.c   2008-11-14 14:01:12.000000000 -0800
     
    16691946diff -Naur gcc-4.3.3.orig/gcc/DATESTAMP gcc-4.3.3/gcc/DATESTAMP
    16701947--- gcc-4.3.3.orig/gcc/DATESTAMP        2009-01-23 16:16:35.000000000 -0800
    1671 +++ gcc-4.3.3/gcc/DATESTAMP     2009-02-28 16:16:39.911584000 -0800
     1948+++ gcc-4.3.3/gcc/DATESTAMP     2009-03-11 17:16:41.615225000 -0700
    16721949@@ -1 +1 @@
    16731950-20090124
    1674 +20090301
     1951+20090312
    16751952diff -Naur gcc-4.3.3.orig/gcc/doc/invoke.texi gcc-4.3.3/gcc/doc/invoke.texi
    16761953--- gcc-4.3.3.orig/gcc/doc/invoke.texi  2008-11-21 08:21:50.000000000 -0800
     
    17282005diff -Naur gcc-4.3.3.orig/gcc/fortran/ChangeLog gcc-4.3.3/gcc/fortran/ChangeLog
    17292006--- gcc-4.3.3.orig/gcc/fortran/ChangeLog        2009-01-24 02:15:54.000000000 -0800
    1730 +++ gcc-4.3.3/gcc/fortran/ChangeLog     2009-02-18 22:43:15.919035000 -0800
    1731 @@ -1,3 +1,43 @@
     2007+++ gcc-4.3.3/gcc/fortran/ChangeLog     2009-03-07 07:58:49.569600000 -0800
     2008@@ -1,3 +1,57 @@
     2009+2009-03-07  Paul Thomas  <pault@gcc.gnu.org>
     2010+
     2011+       PR fortran/39295
     2012+       * interface.c (compare_type_rank_if): Return 1 if the symbols
     2013+       are the same and deal with external procedures where one is
     2014+       identified to be a function or subroutine by usage but the
     2015+       other is not.
     2016+
     2017+2009-03-07  Paul Thomas  <pault@gcc.gnu.org>
     2018+
     2019+       PR fortran/39292
     2020+       * trans-array.c (gfc_conv_array_initializer): Convert all
     2021+       expressions rather than ICEing.
     2022+
    17322023+2009-02-19  Paul Thomas  <pault@gcc.gnu.org>
    17332024+
     
    17732064 
    17742065        * GCC 4.3.3 released.
     2066diff -Naur gcc-4.3.3.orig/gcc/fortran/interface.c gcc-4.3.3/gcc/fortran/interface.c
     2067--- gcc-4.3.3.orig/gcc/fortran/interface.c      2009-01-10 13:01:14.000000000 -0800
     2068+++ gcc-4.3.3/gcc/fortran/interface.c   2009-03-07 07:58:49.569600000 -0800
     2069@@ -492,17 +492,26 @@
     2070   if (s1 == NULL || s2 == NULL)
     2071     return s1 == s2 ? 1 : 0;
     2072 
     2073+  if (s1 == s2)
     2074+    return 1;
     2075+
     2076   if (s1->attr.flavor != FL_PROCEDURE && s2->attr.flavor != FL_PROCEDURE)
     2077     return compare_type_rank (s1, s2);
     2078 
     2079   if (s1->attr.flavor != FL_PROCEDURE || s2->attr.flavor != FL_PROCEDURE)
     2080     return 0;
     2081 
     2082-  /* At this point, both symbols are procedures.  */
     2083-  if ((s1->attr.function == 0 && s1->attr.subroutine == 0)
     2084-      || (s2->attr.function == 0 && s2->attr.subroutine == 0))
     2085-    return 0;
     2086+  /* At this point, both symbols are procedures.  It can happen that
     2087+     a external procedures are compared where one is identified by usage
     2088+     to be a function or subroutine but the other is not.  Check TKR
     2089+     nonetheless for these cases.  */
     2090+  if (s1->attr.function == 0 && s1->attr.subroutine == 0)
     2091+    return s1->attr.external == 1 ? compare_type_rank (s1, s2) : 0;
     2092+
     2093+  if (s2->attr.function == 0 && s2->attr.subroutine == 0)
     2094+    return s2->attr.external == 1 ? compare_type_rank (s1, s2) : 0;
     2095 
     2096+  /* Now the type of procedure has been identified.  */
     2097   if (s1->attr.function != s2->attr.function
     2098       || s1->attr.subroutine != s2->attr.subroutine)
     2099     return 0;
    17752100diff -Naur gcc-4.3.3.orig/gcc/fortran/module.c gcc-4.3.3/gcc/fortran/module.c
    17762101--- gcc-4.3.3.orig/gcc/fortran/module.c 2009-01-17 01:28:50.000000000 -0800
     
    19812306            case AR_SECTION:
    19822307            case AR_UNKNOWN:
     2308diff -Naur gcc-4.3.3.orig/gcc/fortran/trans-array.c gcc-4.3.3/gcc/fortran/trans-array.c
     2309--- gcc-4.3.3.orig/gcc/fortran/trans-array.c    2008-11-29 12:42:22.000000000 -0800
     2310+++ gcc-4.3.3/gcc/fortran/trans-array.c 2009-03-07 07:56:37.773017000 -0800
     2311@@ -3867,8 +3867,21 @@
     2312              CONSTRUCTOR_APPEND_ELT (v, index, se.expr);
     2313              break;
     2314 
     2315+
     2316            default:
     2317-             gcc_unreachable ();
     2318+             /* Catch those occasional beasts that do not simplify
     2319+                for one reason or another, assuming that if they are
     2320+                standard defying the frontend will catch them.  */
     2321+             gfc_conv_expr (&se, c->expr);
     2322+             if (range == NULL_TREE)
     2323+               CONSTRUCTOR_APPEND_ELT (v, index, se.expr);
     2324+             else
     2325+               {
     2326+                 if (index != NULL_TREE)
     2327+                 CONSTRUCTOR_APPEND_ELT (v, index, se.expr);
     2328+                 CONSTRUCTOR_APPEND_ELT (v, range, se.expr);
     2329+               }
     2330+             break;
     2331            }
     2332         }
     2333       break;
    19832334diff -Naur gcc-4.3.3.orig/gcc/fortran/trans-intrinsic.c gcc-4.3.3/gcc/fortran/trans-intrinsic.c
    19842335--- gcc-4.3.3.orig/gcc/fortran/trans-intrinsic.c        2008-07-27 04:41:35.000000000 -0700
     
    22172568diff -Naur gcc-4.3.3.orig/gcc/testsuite/ChangeLog gcc-4.3.3/gcc/testsuite/ChangeLog
    22182569--- gcc-4.3.3.orig/gcc/testsuite/ChangeLog      2009-01-24 02:15:24.000000000 -0800
    2219 +++ gcc-4.3.3/gcc/testsuite/ChangeLog   2009-02-25 23:06:48.803473000 -0800
    2220 @@ -1,3 +1,327 @@
     2570+++ gcc-4.3.3/gcc/testsuite/ChangeLog   2009-03-11 10:53:13.287573000 -0700
     2571@@ -1,3 +1,350 @@
     2572+2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
     2573+
     2574+       * g++.old-deja/g++.jason/thunk2.C: Skip on SPU.
     2575+
     2576+2009-03-07  Paul Thomas  <pault@gcc.gnu.org>
     2577+
     2578+       PR fortran/39295
     2579+       * gfortran.dg/interface_25.f90: New test.
     2580+       * gfortran.dg/interface_26.f90: New test.
     2581+
     2582+2009-03-07  Paul Thomas  <pault@gcc.gnu.org>
     2583+
     2584+       PR fortran/39292
     2585+       * gfortran.dg/initialization_22.f90: New test.
     2586+
     2587+2009-03-04  Jason Merrill  <jason@redhat.com>
     2588+           Giovanni Bajo  <giovannibajo@gcc.gnu.org>
     2589+
     2590+       PR c++/9634
     2591+       PR c++/29469
     2592+       PR c++/29607
     2593+       * g++.dg/template/dependent-name5.C: New test.
     2594+
    22212595+2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
    22222596+
     
    25462920 
    25472921        * GCC 4.3.3 released.
    2548 @@ -89,7 +413,7 @@
     2922@@ -89,7 +436,7 @@
    25492923 
    25502924        Backport from mainline:
     
    25552929        PR tree-optimization/38529
    25562930        * gcc.dg/vect/pr38529.c: New test.
    2557 @@ -426,8 +750,8 @@
     2931@@ -426,8 +773,8 @@
    25582932 
    25592933 2008-11-14  Paul Thomas  <pault@gcc.gnu.org>
     
    41734547+    f(y); // ICE
    41744548+}
     4549diff -Naur gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/dependent-name5.C gcc-4.3.3/gcc/testsuite/g++.dg/template/dependent-name5.C
     4550--- gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/dependent-name5.C      1969-12-31 16:00:00.000000000 -0800
     4551+++ gcc-4.3.3/gcc/testsuite/g++.dg/template/dependent-name5.C   2009-03-04 11:37:43.898064000 -0800
     4552@@ -0,0 +1,45 @@
     4553+// PR c++/9634, c++/29469, c++/29607
     4554+// Contributed by: Giovanni Bajo <giovannibajo at gcc dot gnu dot org>
     4555+// DR224: Make sure that a name is *truly* semantically dependent.
     4556+
     4557+struct D {
     4558+  typedef int K;
     4559+};
     4560+
     4561+template <typename T>
     4562+struct A
     4563+{
     4564+  typedef int Bar;
     4565+
     4566+  template <typename>
     4567+  struct N {};
     4568+
     4569+  typedef Bar          type1;
     4570+  typedef A::Bar       type2;
     4571+  typedef A<T>::Bar    type3;
     4572+  typedef A<T*>::Bar    type4;  // { dg-error "" }
     4573+  typedef typename A<T*>::Bar type5;
     4574+
     4575+  typedef N<int>       type6;
     4576+  typedef A::N<int>    type7;
     4577+  typedef A<T>::N<int> type8;
     4578+  typedef A<T*>::template N<int> type9;  // { dg-error "" }
     4579+  typedef typename A<T*>::template N<int> type10;
     4580+
     4581+  typedef D Bar2;
     4582+  struct N2 { typedef int K; };
     4583+
     4584+  // Check that A::N2 is still considered dependent (because it
     4585+  //  could be specialized), while A::Bar2 (being just ::D) is not.
     4586+  typedef A::Bar2 type11;
     4587+  typedef type11::K k3;
     4588+
     4589+  typedef A::N2 type12;
     4590+  typedef typename type12::K k2;
     4591+  typedef type12::K k1;  // { dg-error "" }
     4592+
     4593+  // Check that A::Bar2 is not considered dependent even if we use
     4594+  // the typename keyword.
     4595+  typedef typename A::Bar2 type13;
     4596+  typedef type13::K k4;
     4597+};
    41754598diff -Naur gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/dtor5.C gcc-4.3.3/gcc/testsuite/g++.dg/template/dtor5.C
    41764599--- gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/dtor5.C        1969-12-31 16:00:00.000000000 -0800
     
    45714994+
    45724995+! { dg-final { cleanup-modules "sa0054_stuff" } }
     4996diff -Naur gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/initialization_22.f90 gcc-4.3.3/gcc/testsuite/gfortran.dg/initialization_22.f90
     4997--- gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/initialization_22.f90      1969-12-31 16:00:00.000000000 -0800
     4998+++ gcc-4.3.3/gcc/testsuite/gfortran.dg/initialization_22.f90   2009-03-07 07:56:37.773017000 -0800
     4999@@ -0,0 +1,10 @@
     5000+! { dg-do run }
     5001+! tests the fix for PR39292, where the intitialization expression
     5002+! did not simplify and caused an ICE in gfc_conv_array_initializer.
     5003+!
     5004+! Contributed by Richard Guenther <rguenth@gcc.gnu.org>
     5005+!
     5006+  integer :: n
     5007+  real, dimension(2) :: a = (/ ( (float(n))**(1.0), n=1,2) /)
     5008+  if (any (a .ne. (/ ( (float(n))**(1.0), n=1,2) /))) call abort
     5009+end
     5010diff -Naur gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/interface_25.f90 gcc-4.3.3/gcc/testsuite/gfortran.dg/interface_25.f90
     5011--- gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/interface_25.f90   1969-12-31 16:00:00.000000000 -0800
     5012+++ gcc-4.3.3/gcc/testsuite/gfortran.dg/interface_25.f90        2009-03-07 07:58:49.569600000 -0800
     5013@@ -0,0 +1,45 @@
     5014+! { dg-do compile }
     5015+! Tests the fix for PR39295, in which the check of the interfaces
     5016+! at lines 25 and 42 failed because opfunc1 is identified as a
     5017+! function by usage, whereas opfunc2 is not.
     5018+!
     5019+! Contributed by Jon Hurst <jhurst@ucar.edu>
     5020+!
     5021+MODULE  funcs
     5022+CONTAINS
     5023+  INTEGER FUNCTION test1(a,b,opfunc1)
     5024+    INTEGER :: a,b
     5025+    INTEGER, EXTERNAL :: opfunc1
     5026+    test1 = opfunc1( a, b )
     5027+  END FUNCTION test1
     5028+  INTEGER FUNCTION sumInts(a,b)
     5029+    INTEGER :: a,b
     5030+    sumInts = a + b
     5031+  END FUNCTION sumInts
     5032+END MODULE funcs
     5033+
     5034+PROGRAM test
     5035+  USE funcs
     5036+  INTEGER :: rs
     5037+  INTEGER, PARAMETER :: a = 2, b = 1
     5038+  rs = recSum( a, b, test1, sumInts )
     5039+  write(*,*) "Results", rs
     5040+CONTAINS
     5041+  RECURSIVE INTEGER FUNCTION recSum( a,b,UserFunction,UserOp ) RESULT( res )
     5042+    IMPLICIT NONE
     5043+    INTEGER :: a,b
     5044+    INTERFACE
     5045+       INTEGER FUNCTION UserFunction(a,b,opfunc2)
     5046+         INTEGER :: a,b
     5047+         INTEGER, EXTERNAL :: opfunc2
     5048+       END FUNCTION UserFunction
     5049+    END INTERFACE
     5050+    INTEGER, EXTERNAL :: UserOp
     5051+
     5052+    res = UserFunction( a,b, UserOp )
     5053+
     5054+    if( res .lt. 10 ) then
     5055+       res = recSum( a, res, UserFunction, UserOp )
     5056+    end if
     5057+  END FUNCTION recSum
     5058+END PROGRAM test
     5059diff -Naur gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/interface_26.f90 gcc-4.3.3/gcc/testsuite/gfortran.dg/interface_26.f90
     5060--- gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/interface_26.f90   1969-12-31 16:00:00.000000000 -0800
     5061+++ gcc-4.3.3/gcc/testsuite/gfortran.dg/interface_26.f90        2009-03-07 07:58:49.569600000 -0800
     5062@@ -0,0 +1,46 @@
     5063+! { dg-do compile }
     5064+! Tests the fix for PR39295, in which the check of the interfaces
     5065+! at lines 26 and 43 failed because opfunc1 is identified as a
     5066+! function by usage, whereas opfunc2 is not. This testcase checks
     5067+! that TKR is stll OK in these cases.
     5068+!
     5069+! Contributed by Jon Hurst <jhurst@ucar.edu>
     5070+!
     5071+MODULE  funcs
     5072+CONTAINS
     5073+  INTEGER FUNCTION test1(a,b,opfunc1)
     5074+    INTEGER :: a,b
     5075+    INTEGER, EXTERNAL :: opfunc1
     5076+    test1 = opfunc1( a, b )
     5077+  END FUNCTION test1
     5078+  INTEGER FUNCTION sumInts(a,b)
     5079+    INTEGER :: a,b
     5080+    sumInts = a + b
     5081+  END FUNCTION sumInts
     5082+END MODULE funcs
     5083+
     5084+PROGRAM test
     5085+  USE funcs
     5086+  INTEGER :: rs
     5087+  INTEGER, PARAMETER :: a = 2, b = 1
     5088+  rs = recSum( a, b, test1, sumInts ) ! { dg-error "Type/rank mismatch in argument" }
     5089+  write(*,*) "Results", rs
     5090+CONTAINS
     5091+  RECURSIVE INTEGER FUNCTION recSum( a,b,UserFunction,UserOp ) RESULT( res )
     5092+    IMPLICIT NONE
     5093+    INTEGER :: a,b
     5094+    INTERFACE
     5095+       INTEGER FUNCTION UserFunction(a,b,opfunc2)
     5096+         INTEGER :: a,b
     5097+         REAL, EXTERNAL :: opfunc2
     5098+       END FUNCTION UserFunction
     5099+    END INTERFACE
     5100+    INTEGER, EXTERNAL :: UserOp
     5101+
     5102+    res = UserFunction( a,b, UserOp )
     5103+
     5104+    if( res .lt. 10 ) then
     5105+       res = recSum( a, res, UserFunction, UserOp )
     5106+    end if
     5107+  END FUNCTION recSum
     5108+END PROGRAM test
    45735109diff -Naur gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/module_commons_3.f90 gcc-4.3.3/gcc/testsuite/gfortran.dg/module_commons_3.f90
    45745110--- gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/module_commons_3.f90       1969-12-31 16:00:00.000000000 -0800
     
    47855321+! { dg-final { scan-rtl-dump-times "line\\\+80" 0 "expand" } }
    47865322+! { dg-final { cleanup-rtl-dump "expand" } } */
     5323diff -Naur gcc-4.3.3.orig/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C gcc-4.3.3/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C
     5324--- gcc-4.3.3.orig/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C        2005-10-22 13:57:01.000000000 -0700
     5325+++ gcc-4.3.3/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C     2009-03-11 10:53:13.287573000 -0700
     5326@@ -1,6 +1,7 @@
     5327 // { dg-do run { target fpic } }
     5328 // { dg-options "-fPIC" }
     5329 // { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))|\[Bb\]ad fixup at .DATA.:" "PIC unsupported" { xfail *-*-netware* } 0 }
     5330+// { dg-skip-if "requires unsupported run-time relocation" { spu-*-* } { "*" } { "" } }
     5331 // Test that non-variadic function calls using thunks and PIC work right.
     5332 
     5333 struct A {
    47875334diff -Naur gcc-4.3.3.orig/gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp gcc-4.3.3/gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp
    47885335--- gcc-4.3.3.orig/gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp  2007-08-01 09:25:11.000000000 -0700
     
    49415488diff -Naur gcc-4.3.3.orig/gcc/version.c gcc-4.3.3/gcc/version.c
    49425489--- gcc-4.3.3.orig/gcc/version.c        2007-08-21 08:35:30.000000000 -0700
    4943 +++ gcc-4.3.3/gcc/version.c     2009-03-01 11:24:23.858345020 -0800
     5490+++ gcc-4.3.3/gcc/version.c     2009-03-12 10:34:15.068288868 -0700
    49445491@@ -14,4 +14,4 @@
    49455492    Makefile.  */
     
    49475494 const char version_string[] = BASEVER DATESTAMP DEVPHASE REVISION;
    49485495-const char pkgversion_string[] = PKGVERSION;
    4949 +const char pkgversion_string[] = "(GCC for Cross-LFS 4.3.3.20090301) ";
     5496+const char pkgversion_string[] = "(GCC for Cross-LFS 4.3.3.20090312) ";
    49505497diff -Naur gcc-4.3.3.orig/libjava/classpath/doc/cp-tools.info gcc-4.3.3/libjava/classpath/doc/cp-tools.info
    49515498--- gcc-4.3.3.orig/libjava/classpath/doc/cp-tools.info  2009-01-24 04:05:54.000000000 -0800
Note: See TracChangeset for help on using the changeset viewer.