Changeset 2804a96 in clfs-embedded


Ignore:
Timestamp:
Mar 28, 2009, 8:15:27 AM (16 years ago)
Author:
Jim Gifford <clfs@…>
Branches:
master
Children:
118c546
Parents:
05ce0d3
Message:

Updates - Endian Check - GCC and Binutils Patch Updates

Files:
1 added
6 edited
1 moved

Legend:

Unmodified
Added
Removed
  • BOOK/cross-tools/arm/variables.xml

    r05ce0d3 r2804a96  
    3131  xpointer="xpointer(//*[@os='e'])"/>
    3232
    33 <screen os="f"><userinput>export CLFS_ENDIAN=$(echo ${CLFS_TARGET} | sed -e 's/armeb/BIG/' -e 's/arm/LITTLE/')
     33<screen os="f"><userinput>export CLFS_ENDIAN=$(echo ${CLFS_ARCH} | sed -e 's/armeb/BIG/' -e 's/arm/LITTLE/')
    3434if [ "${CLFS_ENDIAN}" = "LITTLE" ]; then
    3535  export CLFS_NOT_ENDIAN=BIG
  • BOOK/cross-tools/common/binutils.xml

    r05ce0d3 r2804a96  
    3232    enable.</para>
    3333
    34 <!--
    3534    <para os="p1">The following patch contains a number of updates to the
    3635    &binutils-version; branch by the Binutils developers:</para>
    3736
    3837<screen os="p2"><userinput>patch -Np1 -i ../&binutils-branch_update-patch;</userinput></screen>
    39 -->
    4038
    4139    <para os="p3">To make sure that the proper syntax is used for a couple of
  • BOOK/cross-tools/mips/variables.xml

    r05ce0d3 r2804a96  
    3131  xpointer="xpointer(//*[@os='e'])"/>
    3232
    33 <screen os="f"><userinput>export CLFS_ENDIAN=$(echo ${CLFS_TARGET} | sed -e 's/mipsel/LITTLE/' -e 's/mips/BIG/')
     33<screen os="f"><userinput>export CLFS_ENDIAN=$(echo ${CLFS_ARCH} | sed -e 's/mipsel/LITTLE/' -e 's/mips/BIG/')
    3434if [ "${CLFS_ENDIAN}" = "LITTLE" ]; then
    3535  export CLFS_NOT_ENDIAN=BIG
  • BOOK/general.ent

    r05ce0d3 r2804a96  
    33<!ENTITY month "03"> <!-- Use two digits -->
    44<!ENTITY month_name "March">
    5 <!ENTITY day "23"> <!-- Use two digits -->
     5<!ENTITY day "28"> <!-- Use two digits -->
    66<!ENTITY year "2009"> <!-- Use four digits -->
    77
  • BOOK/materials/common/patches.xml

    r05ce0d3 r2804a96  
    1919  <variablelist role="materials">
    2020
    21 <!--
    2221    <varlistentry>
    2322      <term>Binutils Branch Update Patch - <token>&binutils-branch_update-patch-size;</token>:</term>
     
    2827      </listitem>
    2928    </varlistentry>
    30 -->
    3129
    3230    <varlistentry>
  • BOOK/patches.ent

    r05ce0d3 r2804a96  
    55<!-- Start of Common Patches -->
    66
    7 <!ENTITY binutils-branch_update-patch "binutils-&binutils-version;-branch_update-4.patch">
    8 <!ENTITY binutils-branch_update-patch-md5 "4f587bb8161b08e60b7e7bc98c56ff7d">
    9 <!ENTITY binutils-branch_update-patch-size "120 KB">
     7<!ENTITY binutils-branch_update-patch "binutils-&binutils-version;-branch_update-1.patch">
     8<!ENTITY binutils-branch_update-patch-md5 "bd1b2aa7ffe522a65c2dd1cdd373e563">
     9<!ENTITY binutils-branch_update-patch-size "555 KB">
    1010
    1111<!ENTITY binutils-posix-patch "binutils-&binutils-version;-posix-1.patch">
     
    1717<!ENTITY busybox-branch_update-patch-size "11 KB">
    1818
    19 <!ENTITY gcc-branch_update-patch "gcc-&gcc-version;-branch_update-3.patch">
    20 <!ENTITY gcc-branch_update-patch-md5 "c04708c294327b346bf26d9c7faf6df4">
    21 <!ENTITY gcc-branch_update-patch-size "325 KB">
     19<!ENTITY gcc-branch_update-patch "gcc-&gcc-version;-branch_update-5.patch">
     20<!ENTITY gcc-branch_update-patch-md5 "d52b227655a341694809de17eba2d58d">
     21<!ENTITY gcc-branch_update-patch-size "359 KB">
    2222
    2323<!ENTITY gcc-posix-patch "gcc-&gcc-version;-posix-1.patch">
  • patches/gcc-4.3.3-branch_update-5.patch

    r05ce0d3 r2804a96  
    11Submitted By: Jim Gifford (jim at cross-lfs dot org)
    2 Date: 03-01-2009
     2Date: 03-23-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-17 06:11:58.563094000 -0700
     170@@ -1,3 +1,341 @@
     171+2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
     172+
     173+       Backport from mainline:
     174+       2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
     175+
     176+       PR target/39477
     177+       * doc/extend.texi: Correct register behavior for regparm on
     178+       Intel 386.
     179+
     180+2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
     181+
     182+       Backport from mainline:
     183+       2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
     184+
     185+       PR target/39327
     186+       * config/i386/sse.md (sse3_addsubv4sf3): Correct item bits.
     187+       (sse3_addsubv2df3): Likewise.
     188+
     189+2009-03-09  Denis Chertykov  <denisc@overta.ru>
     190+
     191+       * config/avr/avr.md ("andsi3"): Fix wrong cc attribute.
     192+
     193+2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
     194+
     195+       * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
     196+       of ABI_64.
     197+
     198+2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
     199+
     200+       * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
     201+       (spu_section_type_flags): New function.
     202+
    171203+2009-02-28  Martin Jambor  <mjambor@suse.cz>
    172204+
     
    478510 
    479511        * GCC 4.3.3 released.
    480 @@ -5,8 +311,7 @@
     512@@ -5,8 +343,7 @@
    481513 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
    482514 
     
    488520 2009-01-19  Richard Guenther  <rguenther@suse.de>
    489521 
    490 @@ -41,7 +346,8 @@
     522@@ -41,7 +378,8 @@
    491523       
    492524 2009-01-11  Matthias Klose  <doko@ubuntu.com>
     
    498530 
    499531        * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
    500 @@ -509,8 +815,8 @@
     532@@ -509,8 +847,8 @@
    501533        PR tree-optimization/37102
    502534        * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args 
     
    509541 
    510542 2008-10-08  Simon Martin  <simartin@users.sourceforge.net>
    511 @@ -986,8 +1292,10 @@
     543@@ -986,8 +1324,10 @@
    512544 
    513545        (MFC_MIN_DMA_LIST_ELEMENTS): New define.
     
    782814+  default_elf_asm_output_external (FILE, DECL, NAME)
    783815+#endif
     816diff -Naur gcc-4.3.3.orig/gcc/config/avr/avr.md gcc-4.3.3/gcc/config/avr/avr.md
     817--- gcc-4.3.3.orig/gcc/config/avr/avr.md        2008-09-12 10:29:38.000000000 -0700
     818+++ gcc-4.3.3/gcc/config/avr/avr.md     2009-03-09 13:49:28.992696000 -0700
     819@@ -1,8 +1,8 @@
     820 ;; -*- Mode: Scheme -*-
     821 ;;   Machine description for GNU compiler,
     822 ;;   for ATMEL AVR micro controllers.
     823-;;   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008
     824-;;   Free Software Foundation, Inc.
     825+;;   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008,
     826+;;   2009 Free Software Foundation, Inc.
     827 ;;   Contributed by Denis Chertykov (denisc@overta.ru)
     828 
     829 ;; This file is part of GCC.
     830@@ -1180,7 +1180,7 @@
     831   return \"bug\";
     832 }"
     833   [(set_attr "length" "4,4")
     834-   (set_attr "cc" "set_n,set_n")])
     835+   (set_attr "cc" "set_n,clobber")])
     836 
     837 ;;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
     838 ;; ior
    784839diff -Naur gcc-4.3.3.orig/gcc/config/i386/i386.c gcc-4.3.3/gcc/config/i386/i386.c
    785840--- gcc-4.3.3.orig/gcc/config/i386/i386.c       2008-08-28 06:31:33.000000000 -0700
     
    10841139   emit_insn (gen_cmpqi_ext_3 (scratch, val));
    10851140   cond = gen_rtx_fmt_ee (EQ, QImode,
     1141diff -Naur gcc-4.3.3.orig/gcc/config/i386/sse.md gcc-4.3.3/gcc/config/i386/sse.md
     1142--- gcc-4.3.3.orig/gcc/config/i386/sse.md       2008-12-01 04:28:05.000000000 -0800
     1143+++ gcc-4.3.3/gcc/config/i386/sse.md    2009-03-12 10:50:02.974543000 -0700
     1144@@ -737,7 +737,7 @@
     1145            (match_operand:V4SF 1 "register_operand" "0")
     1146            (match_operand:V4SF 2 "nonimmediate_operand" "xm"))
     1147          (minus:V4SF (match_dup 1) (match_dup 2))
     1148-         (const_int 5)))]
     1149+         (const_int 10)))]
     1150   "TARGET_SSE3"
     1151   "addsubps\t{%2, %0|%0, %2}"
     1152   [(set_attr "type" "sseadd")
     1153@@ -2381,7 +2381,7 @@
     1154            (match_operand:V2DF 1 "register_operand" "0")
     1155            (match_operand:V2DF 2 "nonimmediate_operand" "xm"))
     1156          (minus:V2DF (match_dup 1) (match_dup 2))
     1157-         (const_int 1)))]
     1158+         (const_int 2)))]
     1159   "TARGET_SSE3"
     1160   "addsubpd\t{%2, %0|%0, %2}"
     1161   [(set_attr "type" "sseadd")
    10861162diff -Naur gcc-4.3.3.orig/gcc/config/ia64/ia64.c gcc-4.3.3/gcc/config/ia64/ia64.c
    10871163--- gcc-4.3.3.orig/gcc/config/ia64/ia64.c       2008-07-01 13:59:19.000000000 -0700
     
    11001176
    11011177 
     1178diff -Naur gcc-4.3.3.orig/gcc/config/mips/mips.c gcc-4.3.3/gcc/config/mips/mips.c
     1179--- gcc-4.3.3.orig/gcc/config/mips/mips.c       2008-07-12 01:00:46.000000000 -0700
     1180+++ gcc-4.3.3/gcc/config/mips/mips.c    2009-03-02 12:42:24.177070000 -0800
     1181@@ -7080,7 +7080,7 @@
     1182     case ABI_N32:
     1183       return "abiN32";
     1184     case ABI_64:
     1185-      return "abiN64";
     1186+      return "abi64";
     1187     case ABI_EABI:
     1188       return TARGET_64BIT ? "eabi64" : "eabi32";
     1189     default:
    11021190diff -Naur gcc-4.3.3.orig/gcc/config/mips/sde.h gcc-4.3.3/gcc/config/mips/sde.h
    11031191--- gcc-4.3.3.orig/gcc/config/mips/sde.h        2007-09-19 10:13:33.000000000 -0700
     
    12641352    get us switched to various sections of interest.  These are used
    12651353    in all places where we simply want to switch to a section, and
     1354diff -Naur gcc-4.3.3.orig/gcc/config/spu/spu.c gcc-4.3.3/gcc/config/spu/spu.c
     1355--- gcc-4.3.3.orig/gcc/config/spu/spu.c 2008-09-12 06:29:31.000000000 -0700
     1356+++ gcc-4.3.3/gcc/config/spu/spu.c      2009-03-02 11:38:26.367169000 -0800
     1357@@ -142,6 +142,7 @@
     1358 static bool spu_vector_alignment_reachable (const_tree, bool);
     1359 static int spu_sms_res_mii (struct ddg *g);
     1360 static void asm_file_start (void);
     1361+static unsigned int spu_section_type_flags (tree, const char *, int);
     1362 
     1363 extern const char *reg_names[];
     1364 rtx spu_compare_op0, spu_compare_op1;
     1365@@ -325,6 +326,9 @@
     1366 #undef TARGET_ASM_FILE_START
     1367 #define TARGET_ASM_FILE_START asm_file_start
     1368 
     1369+#undef TARGET_SECTION_TYPE_FLAGS
     1370+#define TARGET_SECTION_TYPE_FLAGS spu_section_type_flags
     1371+
     1372 struct gcc_target targetm = TARGET_INITIALIZER;
     1373 
     1374 void
     1375@@ -6220,3 +6224,13 @@
     1376   default_file_start ();
     1377 }
     1378 
     1379+/* Implement targetm.section_type_flags.  */
     1380+static unsigned int
     1381+spu_section_type_flags (tree decl, const char *name, int reloc)
     1382+{
     1383+  /* .toe needs to have type @nobits.  */
     1384+  if (strcmp (name, ".toe") == 0)
     1385+    return SECTION_BSS;
     1386+  return default_section_type_flags (decl, name, reloc);
     1387+}
     1388+
    12661389diff -Naur gcc-4.3.3.orig/gcc/convert.c gcc-4.3.3/gcc/convert.c
    12671390--- gcc-4.3.3.orig/gcc/convert.c        2007-09-06 18:24:09.000000000 -0700
     
    13301453diff -Naur gcc-4.3.3.orig/gcc/cp/ChangeLog gcc-4.3.3/gcc/cp/ChangeLog
    13311454--- 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 @@
     1455+++ gcc-4.3.3/gcc/cp/ChangeLog  2009-03-18 08:00:32.834440000 -0700
     1456@@ -1,3 +1,66 @@
     1457+2009-03-18  H.J. Lu  <hongjiu.lu@intel.com>
     1458+
     1459+       Backport from mainline:
     1460+       2009-03-18  H.J. Lu  <hongjiu.lu@intel.com>
     1461+
     1462+       PR c++/39425
     1463+       * parser.c (cp_parser_explicit_specialization): Don't skip the
     1464+       rest of the specialization when begin_specialization returns
     1465+       false.
     1466+
     1467+2009-03-04  Jason Merrill  <jason@redhat.com>
     1468+
     1469+       PR c++/9634
     1470+       PR c++/29469
     1471+       PR c++/29607
     1472+       * decl.c (make_typename_type): Do look inside currently open classes.
     1473+       * parser.c (cp_parser_lookup_name): Likewise.
     1474+       (cp_parser_template_name): Likewise.
     1475+       * pt.c (dependent_scope_p): New function.
     1476+       * cp-tree.h: Declare it.
     1477+       * class.c (currently_open_class): Return fast if T isn't a class.
     1478+
    13341479+2009-02-20  Jason Merrill  <jason@redhat.com>
    13351480+
     
    13761521 
    13771522        * GCC 4.3.3 released.
     1523diff -Naur gcc-4.3.3.orig/gcc/cp/class.c gcc-4.3.3/gcc/cp/class.c
     1524--- gcc-4.3.3.orig/gcc/cp/class.c       2008-06-15 04:57:33.000000000 -0700
     1525+++ gcc-4.3.3/gcc/cp/class.c    2009-03-04 11:37:43.898064000 -0800
     1526@@ -5688,6 +5688,9 @@
     1527 {
     1528   int i;
     1529 
     1530+  if (!CLASS_TYPE_P (t))
     1531+    return false;
     1532+
     1533   /* We start looking from 1 because entry 0 is from global scope,
     1534      and has no type.  */
     1535   for (i = current_class_depth; i > 0; --i)
    13781536diff -Naur gcc-4.3.3.orig/gcc/cp/cp-tree.h gcc-4.3.3/gcc/cp/cp-tree.h
    13791537--- 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 @@
     1538+++ gcc-4.3.3/gcc/cp/cp-tree.h  2009-03-04 11:37:43.898064000 -0800
     1539@@ -4460,6 +4460,7 @@
     1540 extern tree maybe_get_template_decl_from_type_decl (tree);
     1541 extern int processing_template_parmlist;
     1542 extern bool dependent_type_p                   (tree);
     1543+extern bool dependent_scope_p                  (tree);
     1544 extern bool any_dependent_template_arguments_p  (const_tree);
     1545 extern bool dependent_template_p               (tree);
     1546 extern bool dependent_template_id_p            (tree, tree);
     1547@@ -4623,7 +4624,7 @@
    13821548 extern tree finish_stmt_expr                   (tree, bool);
    13831549 extern tree stmt_expr_value_expr               (tree);
     
    13901556diff -Naur gcc-4.3.3.orig/gcc/cp/decl.c gcc-4.3.3/gcc/cp/decl.c
    13911557--- 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 @@
     1558+++ gcc-4.3.3/gcc/cp/decl.c     2009-03-04 11:37:43.898064000 -0800
     1559@@ -2978,12 +2978,6 @@
     1560   gcc_assert (TREE_CODE (name) == IDENTIFIER_NODE);
     1561   gcc_assert (TYPE_P (context));
     1562 
     1563-  /* When the CONTEXT is a dependent type,  NAME could refer to a
     1564-     dependent base class of CONTEXT.  So we cannot peek inside it,
     1565-     even if CONTEXT is a currently open scope.  */
     1566-  if (dependent_type_p (context))
     1567-    return build_typename_type (context, name, fullname, tag_type);
     1568-
     1569   if (!IS_AGGR_TYPE (context))
     1570     {
     1571       if (complain & tf_error)
     1572@@ -2991,11 +2985,23 @@
     1573       return error_mark_node;
     1574     }
     1575   
     1576+  /* When the CONTEXT is a dependent type,  NAME could refer to a
     1577+     dependent base class of CONTEXT.  But look inside it anyway
     1578+     if CONTEXT is a currently open scope, in case it refers to a
     1579+     member of the current instantiation or a non-dependent base;
     1580+     lookup will stop when we hit a dependent base.  */
     1581+  if (!dependent_scope_p (context))
     1582+    /* We should only set WANT_TYPE when we're a nested typename type.
     1583+       Then we can give better diagnostics if we find a non-type.  */
     1584+    t = lookup_field (context, name, 0, /*want_type=*/true);
     1585+  else
     1586+    t = NULL_TREE;
     1587+
     1588+  if (!t && dependent_type_p (context))
     1589+    return build_typename_type (context, name, fullname, tag_type);
     1590+
     1591   want_template = TREE_CODE (fullname) == TEMPLATE_ID_EXPR;
     1592   
     1593-  /* We should only set WANT_TYPE when we're a nested typename type.
     1594-     Then we can give better diagnostics if we find a non-type.  */
     1595-  t = lookup_field (context, name, 0, /*want_type=*/true);
     1596   if (!t)
     1597     {
     1598       if (complain & tf_error)
     1599@@ -7512,7 +7518,9 @@
    13941600                    }
    13951601 
     
    14021608                }
    14031609                break;
    1404 @@ -8009,8 +8011,9 @@
     1610@@ -8009,8 +8017,9 @@
    14051611       switch (TREE_CODE (unqualified_id))
    14061612        {
     
    14141620 
    14151621        case IDENTIFIER_NODE:
    1416 @@ -8856,21 +8859,20 @@
     1622@@ -8856,21 +8865,20 @@
    14171623            /* Check that the name used for a destructor makes sense.  */
    14181624            if (sfk == sfk_destructor)
     
    14431649diff -Naur gcc-4.3.3.orig/gcc/cp/parser.c gcc-4.3.3/gcc/cp/parser.c
    14441650--- 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
     1651+++ gcc-4.3.3/gcc/cp/parser.c   2009-03-18 08:00:32.834440000 -0700
    14461652@@ -3791,6 +3791,8 @@
    14471653            parser->scope = NULL_TREE;
     
    14701676        /* If an error occurred, assume that the name of the
    14711677           destructor is the same as the name of the qualifying
     1678@@ -9941,7 +9953,7 @@
     1679          && !template_keyword_p
     1680          && parser->scope && TYPE_P (parser->scope)
     1681          && check_dependency_p
     1682-         && dependent_type_p (parser->scope)
     1683+         && dependent_scope_p (parser->scope)
     1684          /* Do not do this for dtors (or ctors), since they never
     1685             need the template keyword before their name.  */
     1686          && !constructor_name_p (identifier, parser->scope))
     1687@@ -10485,7 +10497,6 @@
     1688   if (!begin_specialization ())
     1689     {
     1690       end_specialization ();
     1691-      cp_parser_skip_to_end_of_block_or_statement (parser);
     1692       return;
     1693     }
     1694 
     1695@@ -16214,35 +16225,11 @@
     1696         cannot look up the name if the scope is not a class type; it
     1697         might, for example, be a template type parameter.  */
     1698       dependent_p = (TYPE_P (parser->scope)
     1699-                    && !(parser->in_declarator_p
     1700-                         && currently_open_class (parser->scope))
     1701-                    && dependent_type_p (parser->scope));
     1702+                    && dependent_scope_p (parser->scope));
     1703       if ((check_dependency || !CLASS_TYPE_P (parser->scope))
     1704-          && dependent_p)
     1705-       {
     1706-         if (tag_type)
     1707-           {
     1708-             tree type;
     1709-
     1710-             /* The resolution to Core Issue 180 says that `struct
     1711-                A::B' should be considered a type-name, even if `A'
     1712-                is dependent.  */
     1713-             type = make_typename_type (parser->scope, name, tag_type,
     1714-                                        /*complain=*/tf_error);
     1715-             decl = TYPE_NAME (type);
     1716-           }
     1717-         else if (is_template
     1718-                  && (cp_parser_next_token_ends_template_argument_p (parser)
     1719-                      || cp_lexer_next_token_is (parser->lexer,
     1720-                                                 CPP_CLOSE_PAREN)))
     1721-           decl = make_unbound_class_template (parser->scope,
     1722-                                               name, NULL_TREE,
     1723-                                               /*complain=*/tf_error);
     1724-         else
     1725-           decl = build_qualified_name (/*type=*/NULL_TREE,
     1726-                                        parser->scope, name,
     1727-                                        is_template);
     1728-       }
     1729+         && dependent_p)
     1730+       /* Defer lookup.  */
     1731+       decl = error_mark_node;
     1732       else
     1733        {
     1734          tree pushed_scope = NULL_TREE;
     1735@@ -16263,14 +16250,42 @@
     1736                                        /*complain=*/true);
     1737 
     1738          /* If we have a single function from a using decl, pull it out.  */
     1739-         if (decl
     1740-             && TREE_CODE (decl) == OVERLOAD
     1741+         if (TREE_CODE (decl) == OVERLOAD
     1742              && !really_overloaded_fn (decl))
     1743            decl = OVL_FUNCTION (decl);
     1744 
     1745          if (pushed_scope)
     1746            pop_scope (pushed_scope);
     1747        }
     1748+
     1749+      /* If the scope is a dependent type and either we deferred lookup or
     1750+        we did lookup but didn't find the name, rememeber the name.  */
     1751+      if (decl == error_mark_node && TYPE_P (parser->scope)
     1752+         && dependent_type_p (parser->scope))
     1753+       {
     1754+         if (tag_type)
     1755+           {
     1756+             tree type;
     1757+
     1758+             /* The resolution to Core Issue 180 says that `struct
     1759+                A::B' should be considered a type-name, even if `A'
     1760+                is dependent.  */
     1761+             type = make_typename_type (parser->scope, name, tag_type,
     1762+                                        /*complain=*/tf_error);
     1763+             decl = TYPE_NAME (type);
     1764+           }
     1765+         else if (is_template
     1766+                  && (cp_parser_next_token_ends_template_argument_p (parser)
     1767+                      || cp_lexer_next_token_is (parser->lexer,
     1768+                                                 CPP_CLOSE_PAREN)))
     1769+           decl = make_unbound_class_template (parser->scope,
     1770+                                               name, NULL_TREE,
     1771+                                               /*complain=*/tf_error);
     1772+         else
     1773+           decl = build_qualified_name (/*type=*/NULL_TREE,
     1774+                                        parser->scope, name,
     1775+                                        is_template);
     1776+       }
     1777       parser->qualifying_scope = parser->scope;
     1778       parser->object_scope = NULL_TREE;
     1779     }
    14721780diff -Naur gcc-4.3.3.orig/gcc/cp/pt.c gcc-4.3.3/gcc/cp/pt.c
    14731781--- 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
     1782+++ gcc-4.3.3/gcc/cp/pt.c       2009-03-04 11:37:43.898064000 -0800
    14751783@@ -4555,6 +4555,13 @@
    14761784       expr = convert_nontype_argument_function (type, expr);
     
    15111819        /* We haven't deduced the type of this parameter yet.  Try again
    15121820           later.  */
     1821@@ -15637,6 +15644,16 @@
     1822   return TYPE_DEPENDENT_P (type);
     1823 }
     1824 
     1825+/* Returns TRUE if SCOPE is a dependent scope, in which we can't do any
     1826+   lookup.  In other words, a dependent type that is not the current
     1827+   instantiation.  */
     1828+
     1829+bool
     1830+dependent_scope_p (tree scope)
     1831+{
     1832+  return dependent_type_p (scope) && !currently_open_class (scope);
     1833+}
     1834+
     1835 /* Returns TRUE if EXPRESSION is dependent, according to CRITERION.  */
     1836 
     1837 static bool
     1838@@ -15658,7 +15675,7 @@
     1839      An id-expression is type-dependent if it contains a
     1840      nested-name-specifier that contains a class-name that names a
     1841      dependent type.  */
     1842-  /* The suggested resolution to Core Issue 2 implies that if the
     1843+  /* The suggested resolution to Core Issue 224 implies that if the
     1844      qualifying type is the current class, then we must peek
     1845      inside it.  */
     1846   if (DECL_P (name)
    15131847diff -Naur gcc-4.3.3.orig/gcc/cp/semantics.c gcc-4.3.3/gcc/cp/semantics.c
    15141848--- gcc-4.3.3.orig/gcc/cp/semantics.c   2008-11-14 14:01:12.000000000 -0800
     
    16692003diff -Naur gcc-4.3.3.orig/gcc/DATESTAMP gcc-4.3.3/gcc/DATESTAMP
    16702004--- 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
     2005+++ gcc-4.3.3/gcc/DATESTAMP     2009-03-22 17:16:37.424141000 -0700
    16722006@@ -1 +1 @@
    16732007-20090124
    1674 +20090301
     2008+20090323
     2009diff -Naur gcc-4.3.3.orig/gcc/doc/extend.texi gcc-4.3.3/gcc/doc/extend.texi
     2010--- gcc-4.3.3.orig/gcc/doc/extend.texi  2008-07-15 08:52:35.000000000 -0700
     2011+++ gcc-4.3.3/gcc/doc/extend.texi       2009-03-17 06:11:58.563094000 -0700
     2012@@ -2687,7 +2687,7 @@
     2013 the loader, which might assume EAX, EDX and ECX can be clobbered, as
     2014 per the standard calling conventions.  Solaris 8 is affected by this.
     2015 GNU systems with GLIBC 2.1 or higher, and FreeBSD, are believed to be
     2016-safe since the loaders there save all registers.  (Lazy binding can be
     2017+safe since the loaders there save EAX, EDX and ECX.  (Lazy binding can be
     2018 disabled with the linker or the loader if desired, to avoid the
     2019 problem.)
     2020 
    16752021diff -Naur gcc-4.3.3.orig/gcc/doc/invoke.texi gcc-4.3.3/gcc/doc/invoke.texi
    16762022--- gcc-4.3.3.orig/gcc/doc/invoke.texi  2008-11-21 08:21:50.000000000 -0800
     
    17282074diff -Naur gcc-4.3.3.orig/gcc/fortran/ChangeLog gcc-4.3.3/gcc/fortran/ChangeLog
    17292075--- 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 @@
     2076+++ gcc-4.3.3/gcc/fortran/ChangeLog     2009-03-07 07:58:49.569600000 -0800
     2077@@ -1,3 +1,57 @@
     2078+2009-03-07  Paul Thomas  <pault@gcc.gnu.org>
     2079+
     2080+       PR fortran/39295
     2081+       * interface.c (compare_type_rank_if): Return 1 if the symbols
     2082+       are the same and deal with external procedures where one is
     2083+       identified to be a function or subroutine by usage but the
     2084+       other is not.
     2085+
     2086+2009-03-07  Paul Thomas  <pault@gcc.gnu.org>
     2087+
     2088+       PR fortran/39292
     2089+       * trans-array.c (gfc_conv_array_initializer): Convert all
     2090+       expressions rather than ICEing.
     2091+
    17322092+2009-02-19  Paul Thomas  <pault@gcc.gnu.org>
    17332093+
     
    17732133 
    17742134        * GCC 4.3.3 released.
     2135diff -Naur gcc-4.3.3.orig/gcc/fortran/interface.c gcc-4.3.3/gcc/fortran/interface.c
     2136--- gcc-4.3.3.orig/gcc/fortran/interface.c      2009-01-10 13:01:14.000000000 -0800
     2137+++ gcc-4.3.3/gcc/fortran/interface.c   2009-03-07 07:58:49.569600000 -0800
     2138@@ -492,17 +492,26 @@
     2139   if (s1 == NULL || s2 == NULL)
     2140     return s1 == s2 ? 1 : 0;
     2141 
     2142+  if (s1 == s2)
     2143+    return 1;
     2144+
     2145   if (s1->attr.flavor != FL_PROCEDURE && s2->attr.flavor != FL_PROCEDURE)
     2146     return compare_type_rank (s1, s2);
     2147 
     2148   if (s1->attr.flavor != FL_PROCEDURE || s2->attr.flavor != FL_PROCEDURE)
     2149     return 0;
     2150 
     2151-  /* At this point, both symbols are procedures.  */
     2152-  if ((s1->attr.function == 0 && s1->attr.subroutine == 0)
     2153-      || (s2->attr.function == 0 && s2->attr.subroutine == 0))
     2154-    return 0;
     2155+  /* At this point, both symbols are procedures.  It can happen that
     2156+     a external procedures are compared where one is identified by usage
     2157+     to be a function or subroutine but the other is not.  Check TKR
     2158+     nonetheless for these cases.  */
     2159+  if (s1->attr.function == 0 && s1->attr.subroutine == 0)
     2160+    return s1->attr.external == 1 ? compare_type_rank (s1, s2) : 0;
     2161+
     2162+  if (s2->attr.function == 0 && s2->attr.subroutine == 0)
     2163+    return s2->attr.external == 1 ? compare_type_rank (s1, s2) : 0;
     2164 
     2165+  /* Now the type of procedure has been identified.  */
     2166   if (s1->attr.function != s2->attr.function
     2167       || s1->attr.subroutine != s2->attr.subroutine)
     2168     return 0;
    17752169diff -Naur gcc-4.3.3.orig/gcc/fortran/module.c gcc-4.3.3/gcc/fortran/module.c
    17762170--- gcc-4.3.3.orig/gcc/fortran/module.c 2009-01-17 01:28:50.000000000 -0800
     
    19812375            case AR_SECTION:
    19822376            case AR_UNKNOWN:
     2377diff -Naur gcc-4.3.3.orig/gcc/fortran/trans-array.c gcc-4.3.3/gcc/fortran/trans-array.c
     2378--- gcc-4.3.3.orig/gcc/fortran/trans-array.c    2008-11-29 12:42:22.000000000 -0800
     2379+++ gcc-4.3.3/gcc/fortran/trans-array.c 2009-03-07 07:56:37.773017000 -0800
     2380@@ -3867,8 +3867,21 @@
     2381              CONSTRUCTOR_APPEND_ELT (v, index, se.expr);
     2382              break;
     2383 
     2384+
     2385            default:
     2386-             gcc_unreachable ();
     2387+             /* Catch those occasional beasts that do not simplify
     2388+                for one reason or another, assuming that if they are
     2389+                standard defying the frontend will catch them.  */
     2390+             gfc_conv_expr (&se, c->expr);
     2391+             if (range == NULL_TREE)
     2392+               CONSTRUCTOR_APPEND_ELT (v, index, se.expr);
     2393+             else
     2394+               {
     2395+                 if (index != NULL_TREE)
     2396+                 CONSTRUCTOR_APPEND_ELT (v, index, se.expr);
     2397+                 CONSTRUCTOR_APPEND_ELT (v, range, se.expr);
     2398+               }
     2399+             break;
     2400            }
     2401         }
     2402       break;
    19832403diff -Naur gcc-4.3.3.orig/gcc/fortran/trans-intrinsic.c gcc-4.3.3/gcc/fortran/trans-intrinsic.c
    19842404--- gcc-4.3.3.orig/gcc/fortran/trans-intrinsic.c        2008-07-27 04:41:35.000000000 -0700
     
    22172637diff -Naur gcc-4.3.3.orig/gcc/testsuite/ChangeLog gcc-4.3.3/gcc/testsuite/ChangeLog
    22182638--- 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 @@
     2639+++ gcc-4.3.3/gcc/testsuite/ChangeLog   2009-03-18 08:00:32.834440000 -0700
     2640@@ -1,3 +1,369 @@
     2641+2009-03-18  H.J. Lu  <hongjiu.lu@intel.com>
     2642+
     2643+       Backport from mainline:
     2644+       2009-03-18  H.J. Lu  <hongjiu.lu@intel.com>
     2645+
     2646+       PR c++/39425
     2647+       * g++.dg/template/pr39425.C: New.
     2648+
     2649+       * g++.dg/template/spec33.C: Updated.
     2650+
     2651+2009-03-13  H.J. Lu  <hongjiu.lu@intel.com>
     2652+
     2653+       Backport from mainline:
     2654+       2009-03-13  H.J. Lu  <hongjiu.lu@intel.com>
     2655+
     2656+       PR testsuite/39451
     2657+       * gcc.dg/asm-b.c: Use "Q" constraint on %b1/%h1 and "R"
     2658+       constraint on (%2).
     2659+
     2660+2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
     2661+
     2662+       * g++.old-deja/g++.jason/thunk2.C: Skip on SPU.
     2663+
     2664+2009-03-07  Paul Thomas  <pault@gcc.gnu.org>
     2665+
     2666+       PR fortran/39295
     2667+       * gfortran.dg/interface_25.f90: New test.
     2668+       * gfortran.dg/interface_26.f90: New test.
     2669+
     2670+2009-03-07  Paul Thomas  <pault@gcc.gnu.org>
     2671+
     2672+       PR fortran/39292
     2673+       * gfortran.dg/initialization_22.f90: New test.
     2674+
     2675+2009-03-04  Jason Merrill  <jason@redhat.com>
     2676+           Giovanni Bajo  <giovannibajo@gcc.gnu.org>
     2677+
     2678+       PR c++/9634
     2679+       PR c++/29469
     2680+       PR c++/29607
     2681+       * g++.dg/template/dependent-name5.C: New test.
     2682+
    22212683+2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
    22222684+
     
    25463008 
    25473009        * GCC 4.3.3 released.
    2548 @@ -89,7 +413,7 @@
     3010@@ -89,7 +455,7 @@
    25493011 
    25503012        Backport from mainline:
     
    25553017        PR tree-optimization/38529
    25563018        * gcc.dg/vect/pr38529.c: New test.
    2557 @@ -426,8 +750,8 @@
     3019@@ -426,8 +792,8 @@
    25583020 
    25593021 2008-11-14  Paul Thomas  <pault@gcc.gnu.org>
     
    29013363+  return (0);
    29023364+}
     3365diff -Naur gcc-4.3.3.orig/gcc/testsuite/gcc.dg/asm-b.c gcc-4.3.3/gcc/testsuite/gcc.dg/asm-b.c
     3366--- gcc-4.3.3.orig/gcc/testsuite/gcc.dg/asm-b.c 2006-12-20 14:01:01.000000000 -0800
     3367+++ gcc-4.3.3/gcc/testsuite/gcc.dg/asm-b.c      2009-03-13 06:25:50.614654000 -0700
     3368@@ -24,8 +24,8 @@
     3369 #if defined (__powerpc__) || defined (__PPC__) || defined (__ppc__) || defined (_POWER) || defined (__ppc64__)
     3370   __asm __volatile ("sthbrx %1,0,%2" : "=m" (*z) : "r" (y), "r" (z));
     3371 #elif defined __i386__ || defined __x86_64__
     3372-  __asm __volatile ("movb %b1,1(%2); movb %h1,(%2)" : "=m" (*z) : "r" (y), "r"
     3373-(z));
     3374+  __asm __volatile ("movb %b1,1(%2)\n\tmovb %h1,(%2)"
     3375+                   : "=m" (*z) : "Q" (y), "R" (z));
     3376 #endif
     3377   return (x & 1) == 0;
     3378 }
    29033379diff -Naur gcc-4.3.3.orig/gcc/testsuite/gcc.dg/attr-alias-4.c gcc-4.3.3/gcc/testsuite/gcc.dg/attr-alias-4.c
    29043380--- gcc-4.3.3.orig/gcc/testsuite/gcc.dg/attr-alias-4.c  1969-12-31 16:00:00.000000000 -0800
     
    41734649+    f(y); // ICE
    41744650+}
     4651diff -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
     4652--- gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/dependent-name5.C      1969-12-31 16:00:00.000000000 -0800
     4653+++ gcc-4.3.3/gcc/testsuite/g++.dg/template/dependent-name5.C   2009-03-04 11:37:43.898064000 -0800
     4654@@ -0,0 +1,45 @@
     4655+// PR c++/9634, c++/29469, c++/29607
     4656+// Contributed by: Giovanni Bajo <giovannibajo at gcc dot gnu dot org>
     4657+// DR224: Make sure that a name is *truly* semantically dependent.
     4658+
     4659+struct D {
     4660+  typedef int K;
     4661+};
     4662+
     4663+template <typename T>
     4664+struct A
     4665+{
     4666+  typedef int Bar;
     4667+
     4668+  template <typename>
     4669+  struct N {};
     4670+
     4671+  typedef Bar          type1;
     4672+  typedef A::Bar       type2;
     4673+  typedef A<T>::Bar    type3;
     4674+  typedef A<T*>::Bar    type4;  // { dg-error "" }
     4675+  typedef typename A<T*>::Bar type5;
     4676+
     4677+  typedef N<int>       type6;
     4678+  typedef A::N<int>    type7;
     4679+  typedef A<T>::N<int> type8;
     4680+  typedef A<T*>::template N<int> type9;  // { dg-error "" }
     4681+  typedef typename A<T*>::template N<int> type10;
     4682+
     4683+  typedef D Bar2;
     4684+  struct N2 { typedef int K; };
     4685+
     4686+  // Check that A::N2 is still considered dependent (because it
     4687+  //  could be specialized), while A::Bar2 (being just ::D) is not.
     4688+  typedef A::Bar2 type11;
     4689+  typedef type11::K k3;
     4690+
     4691+  typedef A::N2 type12;
     4692+  typedef typename type12::K k2;
     4693+  typedef type12::K k1;  // { dg-error "" }
     4694+
     4695+  // Check that A::Bar2 is not considered dependent even if we use
     4696+  // the typename keyword.
     4697+  typedef typename A::Bar2 type13;
     4698+  typedef type13::K k4;
     4699+};
    41754700diff -Naur gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/dtor5.C gcc-4.3.3/gcc/testsuite/g++.dg/template/dtor5.C
    41764701--- gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/dtor5.C        1969-12-31 16:00:00.000000000 -0800
     
    42144739+void f() { }
    42154740+foo<int,&f> m_foo;
     4741diff -Naur gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/pr39425.C gcc-4.3.3/gcc/testsuite/g++.dg/template/pr39425.C
     4742--- gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/pr39425.C      1969-12-31 16:00:00.000000000 -0800
     4743+++ gcc-4.3.3/gcc/testsuite/g++.dg/template/pr39425.C   2009-03-18 08:00:32.834440000 -0700
     4744@@ -0,0 +1,18 @@
     4745+// PR c++/39425
     4746+// { dg-do compile }
     4747+
     4748+class a {
     4749+
     4750+  template<unsigned int s>
     4751+    struct _rec {
     4752+      static const char size = _rec< (s >> 1) >::size;
     4753+    };
     4754+
     4755+  template<>   // { dg-error "explicit" }
     4756+  struct _rec <0> {
     4757+    static const char size = 0;
     4758+  };
     4759+
     4760+  static const unsigned int value = _rec < 1 >::size;
     4761+
     4762+}              // { dg-error "unqualified-id" }
     4763diff -Naur gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/spec33.C gcc-4.3.3/gcc/testsuite/g++.dg/template/spec33.C
     4764--- gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/spec33.C       2006-09-25 12:58:10.000000000 -0700
     4765+++ gcc-4.3.3/gcc/testsuite/g++.dg/template/spec33.C    2009-03-18 08:00:32.834440000 -0700
     4766@@ -3,5 +3,5 @@
     4767 struct A
     4768 {
     4769     template<int> static void foo   () {}
     4770-    template<>    static void foo<0>() {}  // { dg-error "explicit" }
     4771+    template<>    static void foo<0>() {}  // { dg-error "explicit|template" }
     4772 };
    42164773diff -Naur gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/typename15.C gcc-4.3.3/gcc/testsuite/g++.dg/template/typename15.C
    42174774--- gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/typename15.C   1969-12-31 16:00:00.000000000 -0800
     
    45715128+
    45725129+! { dg-final { cleanup-modules "sa0054_stuff" } }
     5130diff -Naur gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/initialization_22.f90 gcc-4.3.3/gcc/testsuite/gfortran.dg/initialization_22.f90
     5131--- gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/initialization_22.f90      1969-12-31 16:00:00.000000000 -0800
     5132+++ gcc-4.3.3/gcc/testsuite/gfortran.dg/initialization_22.f90   2009-03-07 07:56:37.773017000 -0800
     5133@@ -0,0 +1,10 @@
     5134+! { dg-do run }
     5135+! tests the fix for PR39292, where the intitialization expression
     5136+! did not simplify and caused an ICE in gfc_conv_array_initializer.
     5137+!
     5138+! Contributed by Richard Guenther <rguenth@gcc.gnu.org>
     5139+!
     5140+  integer :: n
     5141+  real, dimension(2) :: a = (/ ( (float(n))**(1.0), n=1,2) /)
     5142+  if (any (a .ne. (/ ( (float(n))**(1.0), n=1,2) /))) call abort
     5143+end
     5144diff -Naur gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/interface_25.f90 gcc-4.3.3/gcc/testsuite/gfortran.dg/interface_25.f90
     5145--- gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/interface_25.f90   1969-12-31 16:00:00.000000000 -0800
     5146+++ gcc-4.3.3/gcc/testsuite/gfortran.dg/interface_25.f90        2009-03-07 07:58:49.569600000 -0800
     5147@@ -0,0 +1,45 @@
     5148+! { dg-do compile }
     5149+! Tests the fix for PR39295, in which the check of the interfaces
     5150+! at lines 25 and 42 failed because opfunc1 is identified as a
     5151+! function by usage, whereas opfunc2 is not.
     5152+!
     5153+! Contributed by Jon Hurst <jhurst@ucar.edu>
     5154+!
     5155+MODULE  funcs
     5156+CONTAINS
     5157+  INTEGER FUNCTION test1(a,b,opfunc1)
     5158+    INTEGER :: a,b
     5159+    INTEGER, EXTERNAL :: opfunc1
     5160+    test1 = opfunc1( a, b )
     5161+  END FUNCTION test1
     5162+  INTEGER FUNCTION sumInts(a,b)
     5163+    INTEGER :: a,b
     5164+    sumInts = a + b
     5165+  END FUNCTION sumInts
     5166+END MODULE funcs
     5167+
     5168+PROGRAM test
     5169+  USE funcs
     5170+  INTEGER :: rs
     5171+  INTEGER, PARAMETER :: a = 2, b = 1
     5172+  rs = recSum( a, b, test1, sumInts )
     5173+  write(*,*) "Results", rs
     5174+CONTAINS
     5175+  RECURSIVE INTEGER FUNCTION recSum( a,b,UserFunction,UserOp ) RESULT( res )
     5176+    IMPLICIT NONE
     5177+    INTEGER :: a,b
     5178+    INTERFACE
     5179+       INTEGER FUNCTION UserFunction(a,b,opfunc2)
     5180+         INTEGER :: a,b
     5181+         INTEGER, EXTERNAL :: opfunc2
     5182+       END FUNCTION UserFunction
     5183+    END INTERFACE
     5184+    INTEGER, EXTERNAL :: UserOp
     5185+
     5186+    res = UserFunction( a,b, UserOp )
     5187+
     5188+    if( res .lt. 10 ) then
     5189+       res = recSum( a, res, UserFunction, UserOp )
     5190+    end if
     5191+  END FUNCTION recSum
     5192+END PROGRAM test
     5193diff -Naur gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/interface_26.f90 gcc-4.3.3/gcc/testsuite/gfortran.dg/interface_26.f90
     5194--- gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/interface_26.f90   1969-12-31 16:00:00.000000000 -0800
     5195+++ gcc-4.3.3/gcc/testsuite/gfortran.dg/interface_26.f90        2009-03-07 07:58:49.569600000 -0800
     5196@@ -0,0 +1,46 @@
     5197+! { dg-do compile }
     5198+! Tests the fix for PR39295, in which the check of the interfaces
     5199+! at lines 26 and 43 failed because opfunc1 is identified as a
     5200+! function by usage, whereas opfunc2 is not. This testcase checks
     5201+! that TKR is stll OK in these cases.
     5202+!
     5203+! Contributed by Jon Hurst <jhurst@ucar.edu>
     5204+!
     5205+MODULE  funcs
     5206+CONTAINS
     5207+  INTEGER FUNCTION test1(a,b,opfunc1)
     5208+    INTEGER :: a,b
     5209+    INTEGER, EXTERNAL :: opfunc1
     5210+    test1 = opfunc1( a, b )
     5211+  END FUNCTION test1
     5212+  INTEGER FUNCTION sumInts(a,b)
     5213+    INTEGER :: a,b
     5214+    sumInts = a + b
     5215+  END FUNCTION sumInts
     5216+END MODULE funcs
     5217+
     5218+PROGRAM test
     5219+  USE funcs
     5220+  INTEGER :: rs
     5221+  INTEGER, PARAMETER :: a = 2, b = 1
     5222+  rs = recSum( a, b, test1, sumInts ) ! { dg-error "Type/rank mismatch in argument" }
     5223+  write(*,*) "Results", rs
     5224+CONTAINS
     5225+  RECURSIVE INTEGER FUNCTION recSum( a,b,UserFunction,UserOp ) RESULT( res )
     5226+    IMPLICIT NONE
     5227+    INTEGER :: a,b
     5228+    INTERFACE
     5229+       INTEGER FUNCTION UserFunction(a,b,opfunc2)
     5230+         INTEGER :: a,b
     5231+         REAL, EXTERNAL :: opfunc2
     5232+       END FUNCTION UserFunction
     5233+    END INTERFACE
     5234+    INTEGER, EXTERNAL :: UserOp
     5235+
     5236+    res = UserFunction( a,b, UserOp )
     5237+
     5238+    if( res .lt. 10 ) then
     5239+       res = recSum( a, res, UserFunction, UserOp )
     5240+    end if
     5241+  END FUNCTION recSum
     5242+END PROGRAM test
    45735243diff -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
    45745244--- gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/module_commons_3.f90       1969-12-31 16:00:00.000000000 -0800
     
    47855455+! { dg-final { scan-rtl-dump-times "line\\\+80" 0 "expand" } }
    47865456+! { dg-final { cleanup-rtl-dump "expand" } } */
     5457diff -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
     5458--- gcc-4.3.3.orig/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C        2005-10-22 13:57:01.000000000 -0700
     5459+++ gcc-4.3.3/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C     2009-03-11 10:53:13.287573000 -0700
     5460@@ -1,6 +1,7 @@
     5461 // { dg-do run { target fpic } }
     5462 // { dg-options "-fPIC" }
     5463 // { 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 }
     5464+// { dg-skip-if "requires unsupported run-time relocation" { spu-*-* } { "*" } { "" } }
     5465 // Test that non-variadic function calls using thunks and PIC work right.
     5466 
     5467 struct A {
    47875468diff -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
    47885469--- gcc-4.3.3.orig/gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp  2007-08-01 09:25:11.000000000 -0700
     
    49415622diff -Naur gcc-4.3.3.orig/gcc/version.c gcc-4.3.3/gcc/version.c
    49425623--- 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
     5624+++ gcc-4.3.3/gcc/version.c     2009-03-23 00:37:55.451673138 -0700
    49445625@@ -14,4 +14,4 @@
    49455626    Makefile.  */
     
    49475628 const char version_string[] = BASEVER DATESTAMP DEVPHASE REVISION;
    49485629-const char pkgversion_string[] = PKGVERSION;
    4949 +const char pkgversion_string[] = "(GCC for Cross-LFS 4.3.3.20090301) ";
     5630+const char pkgversion_string[] = "(GCC for Cross-LFS 4.3.3.20090323) ";
     5631diff -Naur gcc-4.3.3.orig/libjava/ChangeLog gcc-4.3.3/libjava/ChangeLog
     5632--- gcc-4.3.3.orig/libjava/ChangeLog    2009-01-24 02:18:16.000000000 -0800
     5633+++ gcc-4.3.3/libjava/ChangeLog 2009-03-13 11:19:59.111425000 -0700
     5634@@ -1,3 +1,8 @@
     5635+2009-03-13  Andrew Haley  <aph@redhat.com>
     5636+
     5637+       * java/lang/natClassLoader.cc (_Jv_RegisterClassHookDefault): Clear
     5638+       INTERPRETED access modifier.
     5639+
     5640 2009-01-24  Release Manager
     5641 
     5642        * GCC 4.3.3 released.
     5643diff -Naur gcc-4.3.3.orig/libjava/classpath/ChangeLog.gcj gcc-4.3.3/libjava/classpath/ChangeLog.gcj
     5644--- gcc-4.3.3.orig/libjava/classpath/ChangeLog.gcj      2008-09-14 11:27:33.000000000 -0700
     5645+++ gcc-4.3.3/libjava/classpath/ChangeLog.gcj   2009-03-16 05:11:32.360447000 -0700
     5646@@ -1,3 +1,8 @@
     5647+2009-03-16  Matthias Klose  <doko@ubuntu.com>
     5648+
     5649+       * configure.ac: Detect xulrunner-1.9.
     5650+       * configure: Regenerate.
     5651+
     5652 2008-09-14  Matthias Klose  <doko@ubuntu.com>
     5653 
     5654        Merge from classpath:
     5655diff -Naur gcc-4.3.3.orig/libjava/classpath/configure gcc-4.3.3/libjava/classpath/configure
     5656--- gcc-4.3.3.orig/libjava/classpath/configure  2008-02-29 15:47:54.000000000 -0800
     5657+++ gcc-4.3.3/libjava/classpath/configure       2009-03-16 05:11:32.360447000 -0700
     5658@@ -22904,6 +22904,103 @@
     5659   else
     5660      PKG_CONFIG_MIN_VERSION=0.9.0
     5661      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
     5662+        echo "$as_me:$LINENO: checking for mozilla-plugin libxul-unstable" >&5
     5663+echo $ECHO_N "checking for mozilla-plugin libxul-unstable... $ECHO_C" >&6
     5664+
     5665+        if $PKG_CONFIG --exists "mozilla-plugin libxul-unstable" ; then
     5666+            echo "$as_me:$LINENO: result: yes" >&5
     5667+echo "${ECHO_T}yes" >&6
     5668+            succeeded=yes
     5669+
     5670+            echo "$as_me:$LINENO: checking MOZILLA_CFLAGS" >&5
     5671+echo $ECHO_N "checking MOZILLA_CFLAGS... $ECHO_C" >&6
     5672+            MOZILLA_CFLAGS=`$PKG_CONFIG --cflags "mozilla-plugin libxul-unstable"`
     5673+            echo "$as_me:$LINENO: result: $MOZILLA_CFLAGS" >&5
     5674+echo "${ECHO_T}$MOZILLA_CFLAGS" >&6
     5675+
     5676+            echo "$as_me:$LINENO: checking MOZILLA_LIBS" >&5
     5677+echo $ECHO_N "checking MOZILLA_LIBS... $ECHO_C" >&6
     5678+            MOZILLA_LIBS=`$PKG_CONFIG --libs "mozilla-plugin libxul-unstable"`
     5679+            echo "$as_me:$LINENO: result: $MOZILLA_LIBS" >&5
     5680+echo "${ECHO_T}$MOZILLA_LIBS" >&6
     5681+        else
     5682+            MOZILLA_CFLAGS=""
     5683+            MOZILLA_LIBS=""
     5684+            ## If we have a custom action on failure, don't print errors, but
     5685+            ## do set a variable so people can do so.
     5686+            MOZILLA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mozilla-plugin libxul-unstable"`
     5687+
     5688+        fi
     5689+
     5690+
     5691+
     5692+     else
     5693+        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
     5694+        echo "*** See http://www.freedesktop.org/software/pkgconfig"
     5695+     fi
     5696+  fi
     5697+
     5698+  if test $succeeded = yes; then
     5699+     MOZILLA_FOUND=yes
     5700+  else
     5701+     MOZILLA_FOUND=no
     5702+  fi
     5703+
     5704+    if test "x${MOZILLA_FOUND}" = xno; then
     5705+
     5706+  succeeded=no
     5707+
     5708+  if test -z "$PKG_CONFIG"; then
     5709+    # Extract the first word of "pkg-config", so it can be a program name with args.
     5710+set dummy pkg-config; ac_word=$2
     5711+echo "$as_me:$LINENO: checking for $ac_word" >&5
     5712+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
     5713+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
     5714+  echo $ECHO_N "(cached) $ECHO_C" >&6
     5715+else
     5716+  case $PKG_CONFIG in
     5717+  [\\/]* | ?:[\\/]*)
     5718+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
     5719+  ;;
     5720+  *)
     5721+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
     5722+for as_dir in $PATH
     5723+do
     5724+  IFS=$as_save_IFS
     5725+  test -z "$as_dir" && as_dir=.
     5726+  for ac_exec_ext in '' $ac_executable_extensions; do
     5727+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
     5728+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     5729+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     5730+    break 2
     5731+  fi
     5732+done
     5733+done
     5734+
     5735+  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
     5736+  ;;
     5737+esac
     5738+fi
     5739+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
     5740+
     5741+if test -n "$PKG_CONFIG"; then
     5742+  echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
     5743+echo "${ECHO_T}$PKG_CONFIG" >&6
     5744+else
     5745+  echo "$as_me:$LINENO: result: no" >&5
     5746+echo "${ECHO_T}no" >&6
     5747+fi
     5748+
     5749+  fi
     5750+
     5751+  if test "$PKG_CONFIG" = "no" ; then
     5752+     echo "*** The pkg-config script could not be found. Make sure it is"
     5753+     echo "*** in your path, or set the PKG_CONFIG environment variable"
     5754+     echo "*** to the full path to pkg-config."
     5755+     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
     5756+  else
     5757+     PKG_CONFIG_MIN_VERSION=0.9.0
     5758+     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
     5759         echo "$as_me:$LINENO: checking for mozilla-plugin" >&5
     5760 echo $ECHO_N "checking for mozilla-plugin... $ECHO_C" >&6
     5761 
     5762@@ -22946,6 +23043,7 @@
     5763      MOZILLA_FOUND=no
     5764   fi
     5765 
     5766+    fi
     5767     if test "x${MOZILLA_FOUND}" = xno; then
     5768 
     5769   succeeded=no
     5770diff -Naur gcc-4.3.3.orig/libjava/classpath/configure.ac gcc-4.3.3/libjava/classpath/configure.ac
     5771--- gcc-4.3.3.orig/libjava/classpath/configure.ac       2007-09-05 00:45:09.000000000 -0700
     5772+++ gcc-4.3.3/libjava/classpath/configure.ac    2009-03-16 05:11:32.360447000 -0700
     5773@@ -702,7 +702,10 @@
     5774 
     5775   dnl Check for plugin support headers and libraries.
     5776   if test "x${COMPILE_PLUGIN}" = xyes; then
     5777-    PKG_CHECK_MODULES(MOZILLA, mozilla-plugin, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
     5778+    PKG_CHECK_MODULES(MOZILLA, mozilla-plugin libxul-unstable, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
     5779+    if test "x${MOZILLA_FOUND}" = xno; then
     5780+      PKG_CHECK_MODULES(MOZILLA, mozilla-plugin, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
     5781+    fi
     5782     if test "x${MOZILLA_FOUND}" = xno; then
     5783       PKG_CHECK_MODULES(MOZILLA, firefox-plugin firefox-xpcom, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
     5784     fi
    49505785diff -Naur gcc-4.3.3.orig/libjava/classpath/doc/cp-tools.info gcc-4.3.3/libjava/classpath/doc/cp-tools.info
    49515786--- gcc-4.3.3.orig/libjava/classpath/doc/cp-tools.info  2009-01-24 04:05:54.000000000 -0800
     
    947110306-.IX Header "SEE ALSO"
    947210307-\&\fIjava\fR\|(1), ...
     10308diff -Naur gcc-4.3.3.orig/libjava/java/lang/natClassLoader.cc gcc-4.3.3/libjava/java/lang/natClassLoader.cc
     10309--- gcc-4.3.3.orig/libjava/java/lang/natClassLoader.cc  2007-05-31 02:30:39.000000000 -0700
     10310+++ gcc-4.3.3/libjava/java/lang/natClassLoader.cc       2009-03-13 11:19:59.111425000 -0700
     10311@@ -325,6 +325,15 @@
     10312   if (! klass->engine)
     10313     klass->engine = &_Jv_soleCompiledEngine;
     10314 
     10315+  /* FIXME:  Way back before the dawn of time, we overloaded the
     10316+     SYNTHETIC class access modifier to mean INTERPRETED.  This was a
     10317+     Bad Thing, but it didn't matter then because classes were never
     10318+     marked synthetic.  However, it is possible to redeem the
     10319+     situation: _Jv_RegisterClassHookDefault is only called from
     10320+     compiled classes, so we clear the INTERPRETED flag.  This is a
     10321+     kludge!  */
     10322+  klass->accflags &= ~java::lang::reflect::Modifier::INTERPRETED;
     10323+
     10324   if (system_class_list != SYSTEM_LOADER_INITIALIZED)
     10325     {
     10326       unsigned long abi = (unsigned long) klass->next_or_version;
    947310327diff -Naur gcc-4.3.3.orig/libstdc++-v3/ChangeLog gcc-4.3.3/libstdc++-v3/ChangeLog
    947410328--- gcc-4.3.3.orig/libstdc++-v3/ChangeLog       2009-01-24 02:16:26.000000000 -0800
    9475 +++ gcc-4.3.3/libstdc++-v3/ChangeLog    2009-02-09 02:08:11.942408000 -0800
    9476 @@ -1,3 +1,28 @@
     10329+++ gcc-4.3.3/libstdc++-v3/ChangeLog    2009-03-14 17:43:46.944434000 -0700
     10330@@ -1,3 +1,36 @@
     10331+2009-03-14  Paolo Carlini  <paolo.carlini@oracle.com>
     10332+
     10333+       PR libstdc++/39405
     10334+       * include/std/type_traits (__add_lvalue_reference_helper,
     10335+       __add_rvalue_reference_helper): Avoid is_function.
     10336+       * testsuite/20_util/shared_ptr/cons/39405.cc: New.
     10337+       * testsuite/tr1/2_general_utilities/shared_ptr/cons/39405.cc: Likewise.
     10338+
    947710339+2009-02-09  Johannes Singler  <singler@ira.uka.de>
    947810340+
     
    976110623   }
    976210624 
     10625diff -Naur gcc-4.3.3.orig/libstdc++-v3/include/std/type_traits gcc-4.3.3/libstdc++-v3/include/std/type_traits
     10626--- gcc-4.3.3.orig/libstdc++-v3/include/std/type_traits 2008-03-26 16:21:44.000000000 -0700
     10627+++ gcc-4.3.3/libstdc++-v3/include/std/type_traits      2009-03-14 17:43:46.944434000 -0700
     10628@@ -1,6 +1,6 @@
     10629 // <type_traits> -*- C++ -*-
     10630 
     10631-// Copyright (C) 2007, 2008 Free Software Foundation, Inc.
     10632+// Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
     10633 //
     10634 // This file is part of the GNU ISO C++ Library.  This library is free
     10635 // software; you can redistribute it and/or modify it under the
     10636@@ -107,7 +107,7 @@
     10637     { typedef _Tp   type; };
     10638 
     10639   template<typename _Tp,
     10640-          bool = is_object<_Tp>::value || is_function<_Tp>::value,
     10641+          bool = !is_reference<_Tp>::value && !is_void<_Tp>::value,
     10642           bool = is_rvalue_reference<_Tp>::value>
     10643     struct __add_lvalue_reference_helper
     10644     { typedef _Tp   type; };
     10645@@ -127,7 +127,7 @@
     10646     { };
     10647 
     10648   template<typename _Tp,
     10649-          bool = is_object<_Tp>::value || is_function<_Tp>::value>
     10650+          bool = !is_reference<_Tp>::value && !is_void<_Tp>::value>
     10651     struct __add_rvalue_reference_helper
     10652     { typedef _Tp   type; };
     10653 
    976310654diff -Naur gcc-4.3.3.orig/libstdc++-v3/scripts/extract_symvers gcc-4.3.3/libstdc++-v3/scripts/extract_symvers
    976410655--- gcc-4.3.3.orig/libstdc++-v3/scripts/extract_symvers 2005-08-16 19:28:44.000000000 -0700
     
    978310674          printf "%s:%s\n", $4, $8;
    978410675        else if ($4 == "OBJECT")
     10676diff -Naur gcc-4.3.3.orig/libstdc++-v3/testsuite/20_util/shared_ptr/cons/39405.cc gcc-4.3.3/libstdc++-v3/testsuite/20_util/shared_ptr/cons/39405.cc
     10677--- gcc-4.3.3.orig/libstdc++-v3/testsuite/20_util/shared_ptr/cons/39405.cc      1969-12-31 16:00:00.000000000 -0800
     10678+++ gcc-4.3.3/libstdc++-v3/testsuite/20_util/shared_ptr/cons/39405.cc   2009-03-14 17:43:46.944434000 -0700
     10679@@ -0,0 +1,31 @@
     10680+// { dg-options "-std=gnu++0x" }
     10681+// { dg-do compile }
     10682+
     10683+// Copyright (C) 2009 Free Software Foundation
     10684+//
     10685+// This file is part of the GNU ISO C++ Library.  This library is free
     10686+// software; you can redistribute it and/or modify it under the
     10687+// terms of the GNU General Public License as published by the
     10688+// Free Software Foundation; either version 2, or (at your option)
     10689+// any later version.
     10690+
     10691+// This library is distributed in the hope that it will be useful,
     10692+// but WITHOUT ANY WARRANTY; without even the implied warranty of
     10693+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     10694+// GNU General Public License for more details.
     10695+
     10696+// You should have received a copy of the GNU General Public License along
     10697+// with this library; see the file COPYING.  If not, write to the Free
     10698+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
     10699+// USA.
     10700+
     10701+#include <memory>
     10702+
     10703+// libstdc++/39405
     10704+template<typename T>
     10705+  struct foo
     10706+  {
     10707+    std::shared_ptr<foo<T> > m_foo;
     10708+  };
     10709+
     10710+std::shared_ptr<foo<int> > t;
     10711diff -Naur gcc-4.3.3.orig/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/39405.cc gcc-4.3.3/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/39405.cc
     10712--- gcc-4.3.3.orig/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/39405.cc      1969-12-31 16:00:00.000000000 -0800
     10713+++ gcc-4.3.3/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/39405.cc   2009-03-14 17:43:46.944434000 -0700
     10714@@ -0,0 +1,30 @@
     10715+// { dg-do compile }
     10716+
     10717+// Copyright (C) 2009 Free Software Foundation
     10718+//
     10719+// This file is part of the GNU ISO C++ Library.  This library is free
     10720+// software; you can redistribute it and/or modify it under the
     10721+// terms of the GNU General Public License as published by the
     10722+// Free Software Foundation; either version 2, or (at your option)
     10723+// any later version.
     10724+
     10725+// This library is distributed in the hope that it will be useful,
     10726+// but WITHOUT ANY WARRANTY; without even the implied warranty of
     10727+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     10728+// GNU General Public License for more details.
     10729+
     10730+// You should have received a copy of the GNU General Public License along
     10731+// with this library; see the file COPYING.  If not, write to the Free
     10732+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
     10733+// USA.
     10734+
     10735+#include <tr1/memory>
     10736+
     10737+// libstdc++/39405
     10738+template<typename T>
     10739+  struct foo
     10740+  {
     10741+    std::tr1::shared_ptr<foo<T> > m_foo;
     10742+  };
     10743+
     10744+std::tr1::shared_ptr<foo<int> > t;
Note: See TracChangeset for help on using the changeset viewer.