Changeset 2804a96 in clfs-embedded
- Timestamp:
- Mar 28, 2009, 8:15:27 AM (16 years ago)
- Branches:
- master
- Children:
- 118c546
- Parents:
- 05ce0d3
- Files:
-
- 1 added
- 6 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
BOOK/cross-tools/arm/variables.xml
r05ce0d3 r2804a96 31 31 xpointer="xpointer(//*[@os='e'])"/> 32 32 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/') 34 34 if [ "${CLFS_ENDIAN}" = "LITTLE" ]; then 35 35 export CLFS_NOT_ENDIAN=BIG -
BOOK/cross-tools/common/binutils.xml
r05ce0d3 r2804a96 32 32 enable.</para> 33 33 34 <!--35 34 <para os="p1">The following patch contains a number of updates to the 36 35 &binutils-version; branch by the Binutils developers:</para> 37 36 38 37 <screen os="p2"><userinput>patch -Np1 -i ../&binutils-branch_update-patch;</userinput></screen> 39 -->40 38 41 39 <para os="p3">To make sure that the proper syntax is used for a couple of -
BOOK/cross-tools/mips/variables.xml
r05ce0d3 r2804a96 31 31 xpointer="xpointer(//*[@os='e'])"/> 32 32 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/') 34 34 if [ "${CLFS_ENDIAN}" = "LITTLE" ]; then 35 35 export CLFS_NOT_ENDIAN=BIG -
BOOK/general.ent
r05ce0d3 r2804a96 3 3 <!ENTITY month "03"> <!-- Use two digits --> 4 4 <!ENTITY month_name "March"> 5 <!ENTITY day "2 3"> <!-- Use two digits -->5 <!ENTITY day "28"> <!-- Use two digits --> 6 6 <!ENTITY year "2009"> <!-- Use four digits --> 7 7 -
BOOK/materials/common/patches.xml
r05ce0d3 r2804a96 19 19 <variablelist role="materials"> 20 20 21 <!--22 21 <varlistentry> 23 22 <term>Binutils Branch Update Patch - <token>&binutils-branch_update-patch-size;</token>:</term> … … 28 27 </listitem> 29 28 </varlistentry> 30 -->31 29 32 30 <varlistentry> -
BOOK/patches.ent
r05ce0d3 r2804a96 5 5 <!-- Start of Common Patches --> 6 6 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 " 120KB">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"> 10 10 11 11 <!ENTITY binutils-posix-patch "binutils-&binutils-version;-posix-1.patch"> … … 17 17 <!ENTITY busybox-branch_update-patch-size "11 KB"> 18 18 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 "3 25KB">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"> 22 22 23 23 <!ENTITY gcc-posix-patch "gcc-&gcc-version;-posix-1.patch"> -
patches/gcc-4.3.3-branch_update-5.patch
r05ce0d3 r2804a96 1 1 Submitted By: Jim Gifford (jim at cross-lfs dot org) 2 Date: 03- 01-20092 Date: 03-23-2009 3 3 Initial Package Version: 4.3.3 4 4 Origin: Upstream … … 9 9 diff -Naur gcc-4.3.3.orig/gcc/ada/ChangeLog gcc-4.3.3/gcc/ada/ChangeLog 10 10 --- 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-0 2-28 09:30:26.328421000 -080011 +++ gcc-4.3.3/gcc/ada/ChangeLog 2009-03-01 15:05:14.694633000 -0800 12 12 @@ -1,3 +1,8 @@ 13 13 +2009-02-28 Eric Botcazou <ebotcazou@adacore.com> 14 14 + 15 15 + * Makefile.in (cygwin/mingw): Revert accidental EH_MECHANISM change 16 + in r130816.16 + made on 2007-12-06. 17 17 + 18 18 2009-01-24 Release Manager … … 167 167 diff -Naur gcc-4.3.3.orig/gcc/ChangeLog gcc-4.3.3/gcc/ChangeLog 168 168 --- 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 + 171 203 +2009-02-28 Martin Jambor <mjambor@suse.cz> 172 204 + … … 478 510 479 511 * GCC 4.3.3 released. 480 @@ -5,8 +3 11,7 @@512 @@ -5,8 +343,7 @@ 481 513 2009-01-20 Joseph Myers <joseph@codesourcery.com> 482 514 … … 488 520 2009-01-19 Richard Guenther <rguenther@suse.de> 489 521 490 @@ -41,7 +3 46,8 @@522 @@ -41,7 +378,8 @@ 491 523 492 524 2009-01-11 Matthias Klose <doko@ubuntu.com> … … 498 530 499 531 * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives. 500 @@ -509,8 +8 15,8 @@532 @@ -509,8 +847,8 @@ 501 533 PR tree-optimization/37102 502 534 * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args … … 509 541 510 542 2008-10-08 Simon Martin <simartin@users.sourceforge.net> 511 @@ -986,8 +1 292,10 @@543 @@ -986,8 +1324,10 @@ 512 544 513 545 (MFC_MIN_DMA_LIST_ELEMENTS): New define. … … 782 814 + default_elf_asm_output_external (FILE, DECL, NAME) 783 815 +#endif 816 diff -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 784 839 diff -Naur gcc-4.3.3.orig/gcc/config/i386/i386.c gcc-4.3.3/gcc/config/i386/i386.c 785 840 --- gcc-4.3.3.orig/gcc/config/i386/i386.c 2008-08-28 06:31:33.000000000 -0700 … … 1084 1139 emit_insn (gen_cmpqi_ext_3 (scratch, val)); 1085 1140 cond = gen_rtx_fmt_ee (EQ, QImode, 1141 diff -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") 1086 1162 diff -Naur gcc-4.3.3.orig/gcc/config/ia64/ia64.c gcc-4.3.3/gcc/config/ia64/ia64.c 1087 1163 --- gcc-4.3.3.orig/gcc/config/ia64/ia64.c 2008-07-01 13:59:19.000000000 -0700 … … 1100 1176 1101 1177 1178 diff -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: 1102 1190 diff -Naur gcc-4.3.3.orig/gcc/config/mips/sde.h gcc-4.3.3/gcc/config/mips/sde.h 1103 1191 --- gcc-4.3.3.orig/gcc/config/mips/sde.h 2007-09-19 10:13:33.000000000 -0700 … … 1264 1352 get us switched to various sections of interest. These are used 1265 1353 in all places where we simply want to switch to a section, and 1354 diff -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 + 1266 1389 diff -Naur gcc-4.3.3.orig/gcc/convert.c gcc-4.3.3/gcc/convert.c 1267 1390 --- gcc-4.3.3.orig/gcc/convert.c 2007-09-06 18:24:09.000000000 -0700 … … 1330 1453 diff -Naur gcc-4.3.3.orig/gcc/cp/ChangeLog gcc-4.3.3/gcc/cp/ChangeLog 1331 1454 --- 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 + 1334 1479 +2009-02-20 Jason Merrill <jason@redhat.com> 1335 1480 + … … 1376 1521 1377 1522 * GCC 4.3.3 released. 1523 diff -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) 1378 1536 diff -Naur gcc-4.3.3.orig/gcc/cp/cp-tree.h gcc-4.3.3/gcc/cp/cp-tree.h 1379 1537 --- 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 @@ 1382 1548 extern tree finish_stmt_expr (tree, bool); 1383 1549 extern tree stmt_expr_value_expr (tree); … … 1390 1556 diff -Naur gcc-4.3.3.orig/gcc/cp/decl.c gcc-4.3.3/gcc/cp/decl.c 1391 1557 --- 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 @@ 1394 1600 } 1395 1601 … … 1402 1608 } 1403 1609 break; 1404 @@ -8009,8 +801 1,9 @@1610 @@ -8009,8 +8017,9 @@ 1405 1611 switch (TREE_CODE (unqualified_id)) 1406 1612 { … … 1414 1620 1415 1621 case IDENTIFIER_NODE: 1416 @@ -8856,21 +88 59,20 @@1622 @@ -8856,21 +8865,20 @@ 1417 1623 /* Check that the name used for a destructor makes sense. */ 1418 1624 if (sfk == sfk_destructor) … … 1443 1649 diff -Naur gcc-4.3.3.orig/gcc/cp/parser.c gcc-4.3.3/gcc/cp/parser.c 1444 1650 --- 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-0 2-02 11:57:29.682708000 -08001651 +++ gcc-4.3.3/gcc/cp/parser.c 2009-03-18 08:00:32.834440000 -0700 1446 1652 @@ -3791,6 +3791,8 @@ 1447 1653 parser->scope = NULL_TREE; … … 1470 1676 /* If an error occurred, assume that the name of the 1471 1677 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 } 1472 1780 diff -Naur gcc-4.3.3.orig/gcc/cp/pt.c gcc-4.3.3/gcc/cp/pt.c 1473 1781 --- 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-0 2-17 10:27:32.576290000 -08001782 +++ gcc-4.3.3/gcc/cp/pt.c 2009-03-04 11:37:43.898064000 -0800 1475 1783 @@ -4555,6 +4555,13 @@ 1476 1784 expr = convert_nontype_argument_function (type, expr); … … 1511 1819 /* We haven't deduced the type of this parameter yet. Try again 1512 1820 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) 1513 1847 diff -Naur gcc-4.3.3.orig/gcc/cp/semantics.c gcc-4.3.3/gcc/cp/semantics.c 1514 1848 --- gcc-4.3.3.orig/gcc/cp/semantics.c 2008-11-14 14:01:12.000000000 -0800 … … 1669 2003 diff -Naur gcc-4.3.3.orig/gcc/DATESTAMP gcc-4.3.3/gcc/DATESTAMP 1670 2004 --- gcc-4.3.3.orig/gcc/DATESTAMP 2009-01-23 16:16:35.000000000 -0800 1671 +++ gcc-4.3.3/gcc/DATESTAMP 2009-0 2-28 16:16:39.911584000 -08002005 +++ gcc-4.3.3/gcc/DATESTAMP 2009-03-22 17:16:37.424141000 -0700 1672 2006 @@ -1 +1 @@ 1673 2007 -20090124 1674 +20090301 2008 +20090323 2009 diff -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 1675 2021 diff -Naur gcc-4.3.3.orig/gcc/doc/invoke.texi gcc-4.3.3/gcc/doc/invoke.texi 1676 2022 --- gcc-4.3.3.orig/gcc/doc/invoke.texi 2008-11-21 08:21:50.000000000 -0800 … … 1728 2074 diff -Naur gcc-4.3.3.orig/gcc/fortran/ChangeLog gcc-4.3.3/gcc/fortran/ChangeLog 1729 2075 --- 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 + 1732 2092 +2009-02-19 Paul Thomas <pault@gcc.gnu.org> 1733 2093 + … … 1773 2133 1774 2134 * GCC 4.3.3 released. 2135 diff -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; 1775 2169 diff -Naur gcc-4.3.3.orig/gcc/fortran/module.c gcc-4.3.3/gcc/fortran/module.c 1776 2170 --- gcc-4.3.3.orig/gcc/fortran/module.c 2009-01-17 01:28:50.000000000 -0800 … … 1981 2375 case AR_SECTION: 1982 2376 case AR_UNKNOWN: 2377 diff -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; 1983 2403 diff -Naur gcc-4.3.3.orig/gcc/fortran/trans-intrinsic.c gcc-4.3.3/gcc/fortran/trans-intrinsic.c 1984 2404 --- gcc-4.3.3.orig/gcc/fortran/trans-intrinsic.c 2008-07-27 04:41:35.000000000 -0700 … … 2217 2637 diff -Naur gcc-4.3.3.orig/gcc/testsuite/ChangeLog gcc-4.3.3/gcc/testsuite/ChangeLog 2218 2638 --- 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 + 2221 2683 +2009-02-26 Uros Bizjak <ubizjak@gmail.com> 2222 2684 + … … 2546 3008 2547 3009 * GCC 4.3.3 released. 2548 @@ -89,7 +4 13,7 @@3010 @@ -89,7 +455,7 @@ 2549 3011 2550 3012 Backport from mainline: … … 2555 3017 PR tree-optimization/38529 2556 3018 * gcc.dg/vect/pr38529.c: New test. 2557 @@ -426,8 +7 50,8 @@3019 @@ -426,8 +792,8 @@ 2558 3020 2559 3021 2008-11-14 Paul Thomas <pault@gcc.gnu.org> … … 2901 3363 + return (0); 2902 3364 +} 3365 diff -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 } 2903 3379 diff -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 2904 3380 --- gcc-4.3.3.orig/gcc/testsuite/gcc.dg/attr-alias-4.c 1969-12-31 16:00:00.000000000 -0800 … … 4173 4649 + f(y); // ICE 4174 4650 +} 4651 diff -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 +}; 4175 4700 diff -Naur gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/dtor5.C gcc-4.3.3/gcc/testsuite/g++.dg/template/dtor5.C 4176 4701 --- gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/dtor5.C 1969-12-31 16:00:00.000000000 -0800 … … 4214 4739 +void f() { } 4215 4740 +foo<int,&f> m_foo; 4741 diff -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" } 4763 diff -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 }; 4216 4773 diff -Naur gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/typename15.C gcc-4.3.3/gcc/testsuite/g++.dg/template/typename15.C 4217 4774 --- gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/typename15.C 1969-12-31 16:00:00.000000000 -0800 … … 4571 5128 + 4572 5129 +! { dg-final { cleanup-modules "sa0054_stuff" } } 5130 diff -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 5144 diff -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 5193 diff -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 4573 5243 diff -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 4574 5244 --- gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/module_commons_3.f90 1969-12-31 16:00:00.000000000 -0800 … … 4785 5455 +! { dg-final { scan-rtl-dump-times "line\\\+80" 0 "expand" } } 4786 5456 +! { dg-final { cleanup-rtl-dump "expand" } } */ 5457 diff -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 { 4787 5468 diff -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 4788 5469 --- gcc-4.3.3.orig/gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp 2007-08-01 09:25:11.000000000 -0700 … … 4941 5622 diff -Naur gcc-4.3.3.orig/gcc/version.c gcc-4.3.3/gcc/version.c 4942 5623 --- 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 -08005624 +++ gcc-4.3.3/gcc/version.c 2009-03-23 00:37:55.451673138 -0700 4944 5625 @@ -14,4 +14,4 @@ 4945 5626 Makefile. */ … … 4947 5628 const char version_string[] = BASEVER DATESTAMP DEVPHASE REVISION; 4948 5629 -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) "; 5631 diff -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. 5643 diff -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: 5655 diff -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 5770 diff -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 4950 5785 diff -Naur gcc-4.3.3.orig/libjava/classpath/doc/cp-tools.info gcc-4.3.3/libjava/classpath/doc/cp-tools.info 4951 5786 --- gcc-4.3.3.orig/libjava/classpath/doc/cp-tools.info 2009-01-24 04:05:54.000000000 -0800 … … 9471 10306 -.IX Header "SEE ALSO" 9472 10307 -\&\fIjava\fR\|(1), ... 10308 diff -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; 9473 10327 diff -Naur gcc-4.3.3.orig/libstdc++-v3/ChangeLog gcc-4.3.3/libstdc++-v3/ChangeLog 9474 10328 --- 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 + 9477 10339 +2009-02-09 Johannes Singler <singler@ira.uka.de> 9478 10340 + … … 9761 10623 } 9762 10624 10625 diff -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 9763 10654 diff -Naur gcc-4.3.3.orig/libstdc++-v3/scripts/extract_symvers gcc-4.3.3/libstdc++-v3/scripts/extract_symvers 9764 10655 --- gcc-4.3.3.orig/libstdc++-v3/scripts/extract_symvers 2005-08-16 19:28:44.000000000 -0700 … … 9783 10674 printf "%s:%s\n", $4, $8; 9784 10675 else if ($4 == "OBJECT") 10676 diff -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; 10711 diff -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.