- Timestamp:
- Mar 12, 2009, 6:50:16 PM (16 years ago)
- Branches:
- clfs-1.2, clfs-2.1, clfs-3.0.0-systemd, clfs-3.0.0-sysvinit, master, systemd, sysvinit
- Children:
- 8c75f86f
- Parents:
- b9dddef
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
patches/gcc-4.3.3-branch_update-4.patch
rb9dddef r73fb3dc5 1 1 Submitted By: Jim Gifford (jim at cross-lfs dot org) 2 Date: 03- 01-20092 Date: 03-12-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-09 13:49:28.992696000 -0700 170 @@ -1,3 +1,323 @@ 171 +2009-03-09 Denis Chertykov <denisc@overta.ru> 172 + 173 + * config/avr/avr.md ("andsi3"): Fix wrong cc attribute. 174 + 175 +2009-03-02 Richard Sandiford <rdsandiford@googlemail.com> 176 + 177 + * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling 178 + of ABI_64. 179 + 180 +2009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 181 + 182 + * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define. 183 + (spu_section_type_flags): New function. 184 + 171 185 +2009-02-28 Martin Jambor <mjambor@suse.cz> 172 186 + … … 478 492 479 493 * GCC 4.3.3 released. 480 @@ -5,8 +3 11,7 @@494 @@ -5,8 +325,7 @@ 481 495 2009-01-20 Joseph Myers <joseph@codesourcery.com> 482 496 … … 488 502 2009-01-19 Richard Guenther <rguenther@suse.de> 489 503 490 @@ -41,7 +3 46,8 @@504 @@ -41,7 +360,8 @@ 491 505 492 506 2009-01-11 Matthias Klose <doko@ubuntu.com> … … 498 512 499 513 * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives. 500 @@ -509,8 +8 15,8 @@514 @@ -509,8 +829,8 @@ 501 515 PR tree-optimization/37102 502 516 * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args … … 509 523 510 524 2008-10-08 Simon Martin <simartin@users.sourceforge.net> 511 @@ -986,8 +1 292,10 @@525 @@ -986,8 +1306,10 @@ 512 526 513 527 (MFC_MIN_DMA_LIST_ELEMENTS): New define. … … 782 796 + default_elf_asm_output_external (FILE, DECL, NAME) 783 797 +#endif 798 diff -Naur gcc-4.3.3.orig/gcc/config/avr/avr.md gcc-4.3.3/gcc/config/avr/avr.md 799 --- gcc-4.3.3.orig/gcc/config/avr/avr.md 2008-09-12 10:29:38.000000000 -0700 800 +++ gcc-4.3.3/gcc/config/avr/avr.md 2009-03-09 13:49:28.992696000 -0700 801 @@ -1,8 +1,8 @@ 802 ;; -*- Mode: Scheme -*- 803 ;; Machine description for GNU compiler, 804 ;; for ATMEL AVR micro controllers. 805 -;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008 806 -;; Free Software Foundation, Inc. 807 +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 808 +;; 2009 Free Software Foundation, Inc. 809 ;; Contributed by Denis Chertykov (denisc@overta.ru) 810 811 ;; This file is part of GCC. 812 @@ -1180,7 +1180,7 @@ 813 return \"bug\"; 814 }" 815 [(set_attr "length" "4,4") 816 - (set_attr "cc" "set_n,set_n")]) 817 + (set_attr "cc" "set_n,clobber")]) 818 819 ;;||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 820 ;; ior 784 821 diff -Naur gcc-4.3.3.orig/gcc/config/i386/i386.c gcc-4.3.3/gcc/config/i386/i386.c 785 822 --- gcc-4.3.3.orig/gcc/config/i386/i386.c 2008-08-28 06:31:33.000000000 -0700 … … 1100 1137 1101 1138 1139 diff -Naur gcc-4.3.3.orig/gcc/config/mips/mips.c gcc-4.3.3/gcc/config/mips/mips.c 1140 --- gcc-4.3.3.orig/gcc/config/mips/mips.c 2008-07-12 01:00:46.000000000 -0700 1141 +++ gcc-4.3.3/gcc/config/mips/mips.c 2009-03-02 12:42:24.177070000 -0800 1142 @@ -7080,7 +7080,7 @@ 1143 case ABI_N32: 1144 return "abiN32"; 1145 case ABI_64: 1146 - return "abiN64"; 1147 + return "abi64"; 1148 case ABI_EABI: 1149 return TARGET_64BIT ? "eabi64" : "eabi32"; 1150 default: 1102 1151 diff -Naur gcc-4.3.3.orig/gcc/config/mips/sde.h gcc-4.3.3/gcc/config/mips/sde.h 1103 1152 --- gcc-4.3.3.orig/gcc/config/mips/sde.h 2007-09-19 10:13:33.000000000 -0700 … … 1264 1313 get us switched to various sections of interest. These are used 1265 1314 in all places where we simply want to switch to a section, and 1315 diff -Naur gcc-4.3.3.orig/gcc/config/spu/spu.c gcc-4.3.3/gcc/config/spu/spu.c 1316 --- gcc-4.3.3.orig/gcc/config/spu/spu.c 2008-09-12 06:29:31.000000000 -0700 1317 +++ gcc-4.3.3/gcc/config/spu/spu.c 2009-03-02 11:38:26.367169000 -0800 1318 @@ -142,6 +142,7 @@ 1319 static bool spu_vector_alignment_reachable (const_tree, bool); 1320 static int spu_sms_res_mii (struct ddg *g); 1321 static void asm_file_start (void); 1322 +static unsigned int spu_section_type_flags (tree, const char *, int); 1323 1324 extern const char *reg_names[]; 1325 rtx spu_compare_op0, spu_compare_op1; 1326 @@ -325,6 +326,9 @@ 1327 #undef TARGET_ASM_FILE_START 1328 #define TARGET_ASM_FILE_START asm_file_start 1329 1330 +#undef TARGET_SECTION_TYPE_FLAGS 1331 +#define TARGET_SECTION_TYPE_FLAGS spu_section_type_flags 1332 + 1333 struct gcc_target targetm = TARGET_INITIALIZER; 1334 1335 void 1336 @@ -6220,3 +6224,13 @@ 1337 default_file_start (); 1338 } 1339 1340 +/* Implement targetm.section_type_flags. */ 1341 +static unsigned int 1342 +spu_section_type_flags (tree decl, const char *name, int reloc) 1343 +{ 1344 + /* .toe needs to have type @nobits. */ 1345 + if (strcmp (name, ".toe") == 0) 1346 + return SECTION_BSS; 1347 + return default_section_type_flags (decl, name, reloc); 1348 +} 1349 + 1266 1350 diff -Naur gcc-4.3.3.orig/gcc/convert.c gcc-4.3.3/gcc/convert.c 1267 1351 --- gcc-4.3.3.orig/gcc/convert.c 2007-09-06 18:24:09.000000000 -0700 … … 1330 1414 diff -Naur gcc-4.3.3.orig/gcc/cp/ChangeLog gcc-4.3.3/gcc/cp/ChangeLog 1331 1415 --- gcc-4.3.3.orig/gcc/cp/ChangeLog 2009-01-24 02:15:39.000000000 -0800 1332 +++ gcc-4.3.3/gcc/cp/ChangeLog 2009-02-20 07:21:51.443104000 -0800 1333 @@ -1,3 +1,44 @@ 1416 +++ gcc-4.3.3/gcc/cp/ChangeLog 2009-03-04 11:37:43.898064000 -0800 1417 @@ -1,3 +1,56 @@ 1418 +2009-03-04 Jason Merrill <jason@redhat.com> 1419 + 1420 + PR c++/9634 1421 + PR c++/29469 1422 + PR c++/29607 1423 + * decl.c (make_typename_type): Do look inside currently open classes. 1424 + * parser.c (cp_parser_lookup_name): Likewise. 1425 + (cp_parser_template_name): Likewise. 1426 + * pt.c (dependent_scope_p): New function. 1427 + * cp-tree.h: Declare it. 1428 + * class.c (currently_open_class): Return fast if T isn't a class. 1429 + 1334 1430 +2009-02-20 Jason Merrill <jason@redhat.com> 1335 1431 + … … 1376 1472 1377 1473 * GCC 4.3.3 released. 1474 diff -Naur gcc-4.3.3.orig/gcc/cp/class.c gcc-4.3.3/gcc/cp/class.c 1475 --- gcc-4.3.3.orig/gcc/cp/class.c 2008-06-15 04:57:33.000000000 -0700 1476 +++ gcc-4.3.3/gcc/cp/class.c 2009-03-04 11:37:43.898064000 -0800 1477 @@ -5688,6 +5688,9 @@ 1478 { 1479 int i; 1480 1481 + if (!CLASS_TYPE_P (t)) 1482 + return false; 1483 + 1484 /* We start looking from 1 because entry 0 is from global scope, 1485 and has no type. */ 1486 for (i = current_class_depth; i > 0; --i) 1378 1487 diff -Naur gcc-4.3.3.orig/gcc/cp/cp-tree.h gcc-4.3.3/gcc/cp/cp-tree.h 1379 1488 --- gcc-4.3.3.orig/gcc/cp/cp-tree.h 2009-01-15 14:34:20.000000000 -0800 1380 +++ gcc-4.3.3/gcc/cp/cp-tree.h 2009-02-13 13:53:38.261573000 -0800 1381 @@ -4623,7 +4623,7 @@ 1489 +++ gcc-4.3.3/gcc/cp/cp-tree.h 2009-03-04 11:37:43.898064000 -0800 1490 @@ -4460,6 +4460,7 @@ 1491 extern tree maybe_get_template_decl_from_type_decl (tree); 1492 extern int processing_template_parmlist; 1493 extern bool dependent_type_p (tree); 1494 +extern bool dependent_scope_p (tree); 1495 extern bool any_dependent_template_arguments_p (const_tree); 1496 extern bool dependent_template_p (tree); 1497 extern bool dependent_template_id_p (tree, tree); 1498 @@ -4623,7 +4624,7 @@ 1382 1499 extern tree finish_stmt_expr (tree, bool); 1383 1500 extern tree stmt_expr_value_expr (tree); … … 1390 1507 diff -Naur gcc-4.3.3.orig/gcc/cp/decl.c gcc-4.3.3/gcc/cp/decl.c 1391 1508 --- gcc-4.3.3.orig/gcc/cp/decl.c 2008-09-30 12:56:13.000000000 -0700 1392 +++ gcc-4.3.3/gcc/cp/decl.c 2009-02-20 07:21:51.443104000 -0800 1393 @@ -7512,7 +7512,9 @@ 1509 +++ gcc-4.3.3/gcc/cp/decl.c 2009-03-04 11:37:43.898064000 -0800 1510 @@ -2978,12 +2978,6 @@ 1511 gcc_assert (TREE_CODE (name) == IDENTIFIER_NODE); 1512 gcc_assert (TYPE_P (context)); 1513 1514 - /* When the CONTEXT is a dependent type, NAME could refer to a 1515 - dependent base class of CONTEXT. So we cannot peek inside it, 1516 - even if CONTEXT is a currently open scope. */ 1517 - if (dependent_type_p (context)) 1518 - return build_typename_type (context, name, fullname, tag_type); 1519 - 1520 if (!IS_AGGR_TYPE (context)) 1521 { 1522 if (complain & tf_error) 1523 @@ -2991,11 +2985,23 @@ 1524 return error_mark_node; 1525 } 1526 1527 + /* When the CONTEXT is a dependent type, NAME could refer to a 1528 + dependent base class of CONTEXT. But look inside it anyway 1529 + if CONTEXT is a currently open scope, in case it refers to a 1530 + member of the current instantiation or a non-dependent base; 1531 + lookup will stop when we hit a dependent base. */ 1532 + if (!dependent_scope_p (context)) 1533 + /* We should only set WANT_TYPE when we're a nested typename type. 1534 + Then we can give better diagnostics if we find a non-type. */ 1535 + t = lookup_field (context, name, 0, /*want_type=*/true); 1536 + else 1537 + t = NULL_TREE; 1538 + 1539 + if (!t && dependent_type_p (context)) 1540 + return build_typename_type (context, name, fullname, tag_type); 1541 + 1542 want_template = TREE_CODE (fullname) == TEMPLATE_ID_EXPR; 1543 1544 - /* We should only set WANT_TYPE when we're a nested typename type. 1545 - Then we can give better diagnostics if we find a non-type. */ 1546 - t = lookup_field (context, name, 0, /*want_type=*/true); 1547 if (!t) 1548 { 1549 if (complain & tf_error) 1550 @@ -7512,7 +7518,9 @@ 1394 1551 } 1395 1552 … … 1402 1559 } 1403 1560 break; 1404 @@ -8009,8 +801 1,9 @@1561 @@ -8009,8 +8017,9 @@ 1405 1562 switch (TREE_CODE (unqualified_id)) 1406 1563 { … … 1414 1571 1415 1572 case IDENTIFIER_NODE: 1416 @@ -8856,21 +88 59,20 @@1573 @@ -8856,21 +8865,20 @@ 1417 1574 /* Check that the name used for a destructor makes sense. */ 1418 1575 if (sfk == sfk_destructor) … … 1443 1600 diff -Naur gcc-4.3.3.orig/gcc/cp/parser.c gcc-4.3.3/gcc/cp/parser.c 1444 1601 --- 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 -08001602 +++ gcc-4.3.3/gcc/cp/parser.c 2009-03-04 11:37:43.898064000 -0800 1446 1603 @@ -3791,6 +3791,8 @@ 1447 1604 parser->scope = NULL_TREE; … … 1470 1627 /* If an error occurred, assume that the name of the 1471 1628 destructor is the same as the name of the qualifying 1629 @@ -9941,7 +9953,7 @@ 1630 && !template_keyword_p 1631 && parser->scope && TYPE_P (parser->scope) 1632 && check_dependency_p 1633 - && dependent_type_p (parser->scope) 1634 + && dependent_scope_p (parser->scope) 1635 /* Do not do this for dtors (or ctors), since they never 1636 need the template keyword before their name. */ 1637 && !constructor_name_p (identifier, parser->scope)) 1638 @@ -16214,35 +16226,11 @@ 1639 cannot look up the name if the scope is not a class type; it 1640 might, for example, be a template type parameter. */ 1641 dependent_p = (TYPE_P (parser->scope) 1642 - && !(parser->in_declarator_p 1643 - && currently_open_class (parser->scope)) 1644 - && dependent_type_p (parser->scope)); 1645 + && dependent_scope_p (parser->scope)); 1646 if ((check_dependency || !CLASS_TYPE_P (parser->scope)) 1647 - && dependent_p) 1648 - { 1649 - if (tag_type) 1650 - { 1651 - tree type; 1652 - 1653 - /* The resolution to Core Issue 180 says that `struct 1654 - A::B' should be considered a type-name, even if `A' 1655 - is dependent. */ 1656 - type = make_typename_type (parser->scope, name, tag_type, 1657 - /*complain=*/tf_error); 1658 - decl = TYPE_NAME (type); 1659 - } 1660 - else if (is_template 1661 - && (cp_parser_next_token_ends_template_argument_p (parser) 1662 - || cp_lexer_next_token_is (parser->lexer, 1663 - CPP_CLOSE_PAREN))) 1664 - decl = make_unbound_class_template (parser->scope, 1665 - name, NULL_TREE, 1666 - /*complain=*/tf_error); 1667 - else 1668 - decl = build_qualified_name (/*type=*/NULL_TREE, 1669 - parser->scope, name, 1670 - is_template); 1671 - } 1672 + && dependent_p) 1673 + /* Defer lookup. */ 1674 + decl = error_mark_node; 1675 else 1676 { 1677 tree pushed_scope = NULL_TREE; 1678 @@ -16263,14 +16251,42 @@ 1679 /*complain=*/true); 1680 1681 /* If we have a single function from a using decl, pull it out. */ 1682 - if (decl 1683 - && TREE_CODE (decl) == OVERLOAD 1684 + if (TREE_CODE (decl) == OVERLOAD 1685 && !really_overloaded_fn (decl)) 1686 decl = OVL_FUNCTION (decl); 1687 1688 if (pushed_scope) 1689 pop_scope (pushed_scope); 1690 } 1691 + 1692 + /* If the scope is a dependent type and either we deferred lookup or 1693 + we did lookup but didn't find the name, rememeber the name. */ 1694 + if (decl == error_mark_node && TYPE_P (parser->scope) 1695 + && dependent_type_p (parser->scope)) 1696 + { 1697 + if (tag_type) 1698 + { 1699 + tree type; 1700 + 1701 + /* The resolution to Core Issue 180 says that `struct 1702 + A::B' should be considered a type-name, even if `A' 1703 + is dependent. */ 1704 + type = make_typename_type (parser->scope, name, tag_type, 1705 + /*complain=*/tf_error); 1706 + decl = TYPE_NAME (type); 1707 + } 1708 + else if (is_template 1709 + && (cp_parser_next_token_ends_template_argument_p (parser) 1710 + || cp_lexer_next_token_is (parser->lexer, 1711 + CPP_CLOSE_PAREN))) 1712 + decl = make_unbound_class_template (parser->scope, 1713 + name, NULL_TREE, 1714 + /*complain=*/tf_error); 1715 + else 1716 + decl = build_qualified_name (/*type=*/NULL_TREE, 1717 + parser->scope, name, 1718 + is_template); 1719 + } 1720 parser->qualifying_scope = parser->scope; 1721 parser->object_scope = NULL_TREE; 1722 } 1472 1723 diff -Naur gcc-4.3.3.orig/gcc/cp/pt.c gcc-4.3.3/gcc/cp/pt.c 1473 1724 --- 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 -08001725 +++ gcc-4.3.3/gcc/cp/pt.c 2009-03-04 11:37:43.898064000 -0800 1475 1726 @@ -4555,6 +4555,13 @@ 1476 1727 expr = convert_nontype_argument_function (type, expr); … … 1511 1762 /* We haven't deduced the type of this parameter yet. Try again 1512 1763 later. */ 1764 @@ -15637,6 +15644,16 @@ 1765 return TYPE_DEPENDENT_P (type); 1766 } 1767 1768 +/* Returns TRUE if SCOPE is a dependent scope, in which we can't do any 1769 + lookup. In other words, a dependent type that is not the current 1770 + instantiation. */ 1771 + 1772 +bool 1773 +dependent_scope_p (tree scope) 1774 +{ 1775 + return dependent_type_p (scope) && !currently_open_class (scope); 1776 +} 1777 + 1778 /* Returns TRUE if EXPRESSION is dependent, according to CRITERION. */ 1779 1780 static bool 1781 @@ -15658,7 +15675,7 @@ 1782 An id-expression is type-dependent if it contains a 1783 nested-name-specifier that contains a class-name that names a 1784 dependent type. */ 1785 - /* The suggested resolution to Core Issue 2 implies that if the 1786 + /* The suggested resolution to Core Issue 224 implies that if the 1787 qualifying type is the current class, then we must peek 1788 inside it. */ 1789 if (DECL_P (name) 1513 1790 diff -Naur gcc-4.3.3.orig/gcc/cp/semantics.c gcc-4.3.3/gcc/cp/semantics.c 1514 1791 --- gcc-4.3.3.orig/gcc/cp/semantics.c 2008-11-14 14:01:12.000000000 -0800 … … 1669 1946 diff -Naur gcc-4.3.3.orig/gcc/DATESTAMP gcc-4.3.3/gcc/DATESTAMP 1670 1947 --- 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 -08001948 +++ gcc-4.3.3/gcc/DATESTAMP 2009-03-11 17:16:41.615225000 -0700 1672 1949 @@ -1 +1 @@ 1673 1950 -20090124 1674 +200903 011951 +20090312 1675 1952 diff -Naur gcc-4.3.3.orig/gcc/doc/invoke.texi gcc-4.3.3/gcc/doc/invoke.texi 1676 1953 --- gcc-4.3.3.orig/gcc/doc/invoke.texi 2008-11-21 08:21:50.000000000 -0800 … … 1728 2005 diff -Naur gcc-4.3.3.orig/gcc/fortran/ChangeLog gcc-4.3.3/gcc/fortran/ChangeLog 1729 2006 --- gcc-4.3.3.orig/gcc/fortran/ChangeLog 2009-01-24 02:15:54.000000000 -0800 1730 +++ gcc-4.3.3/gcc/fortran/ChangeLog 2009-02-18 22:43:15.919035000 -0800 1731 @@ -1,3 +1,43 @@ 2007 +++ gcc-4.3.3/gcc/fortran/ChangeLog 2009-03-07 07:58:49.569600000 -0800 2008 @@ -1,3 +1,57 @@ 2009 +2009-03-07 Paul Thomas <pault@gcc.gnu.org> 2010 + 2011 + PR fortran/39295 2012 + * interface.c (compare_type_rank_if): Return 1 if the symbols 2013 + are the same and deal with external procedures where one is 2014 + identified to be a function or subroutine by usage but the 2015 + other is not. 2016 + 2017 +2009-03-07 Paul Thomas <pault@gcc.gnu.org> 2018 + 2019 + PR fortran/39292 2020 + * trans-array.c (gfc_conv_array_initializer): Convert all 2021 + expressions rather than ICEing. 2022 + 1732 2023 +2009-02-19 Paul Thomas <pault@gcc.gnu.org> 1733 2024 + … … 1773 2064 1774 2065 * GCC 4.3.3 released. 2066 diff -Naur gcc-4.3.3.orig/gcc/fortran/interface.c gcc-4.3.3/gcc/fortran/interface.c 2067 --- gcc-4.3.3.orig/gcc/fortran/interface.c 2009-01-10 13:01:14.000000000 -0800 2068 +++ gcc-4.3.3/gcc/fortran/interface.c 2009-03-07 07:58:49.569600000 -0800 2069 @@ -492,17 +492,26 @@ 2070 if (s1 == NULL || s2 == NULL) 2071 return s1 == s2 ? 1 : 0; 2072 2073 + if (s1 == s2) 2074 + return 1; 2075 + 2076 if (s1->attr.flavor != FL_PROCEDURE && s2->attr.flavor != FL_PROCEDURE) 2077 return compare_type_rank (s1, s2); 2078 2079 if (s1->attr.flavor != FL_PROCEDURE || s2->attr.flavor != FL_PROCEDURE) 2080 return 0; 2081 2082 - /* At this point, both symbols are procedures. */ 2083 - if ((s1->attr.function == 0 && s1->attr.subroutine == 0) 2084 - || (s2->attr.function == 0 && s2->attr.subroutine == 0)) 2085 - return 0; 2086 + /* At this point, both symbols are procedures. It can happen that 2087 + a external procedures are compared where one is identified by usage 2088 + to be a function or subroutine but the other is not. Check TKR 2089 + nonetheless for these cases. */ 2090 + if (s1->attr.function == 0 && s1->attr.subroutine == 0) 2091 + return s1->attr.external == 1 ? compare_type_rank (s1, s2) : 0; 2092 + 2093 + if (s2->attr.function == 0 && s2->attr.subroutine == 0) 2094 + return s2->attr.external == 1 ? compare_type_rank (s1, s2) : 0; 2095 2096 + /* Now the type of procedure has been identified. */ 2097 if (s1->attr.function != s2->attr.function 2098 || s1->attr.subroutine != s2->attr.subroutine) 2099 return 0; 1775 2100 diff -Naur gcc-4.3.3.orig/gcc/fortran/module.c gcc-4.3.3/gcc/fortran/module.c 1776 2101 --- gcc-4.3.3.orig/gcc/fortran/module.c 2009-01-17 01:28:50.000000000 -0800 … … 1981 2306 case AR_SECTION: 1982 2307 case AR_UNKNOWN: 2308 diff -Naur gcc-4.3.3.orig/gcc/fortran/trans-array.c gcc-4.3.3/gcc/fortran/trans-array.c 2309 --- gcc-4.3.3.orig/gcc/fortran/trans-array.c 2008-11-29 12:42:22.000000000 -0800 2310 +++ gcc-4.3.3/gcc/fortran/trans-array.c 2009-03-07 07:56:37.773017000 -0800 2311 @@ -3867,8 +3867,21 @@ 2312 CONSTRUCTOR_APPEND_ELT (v, index, se.expr); 2313 break; 2314 2315 + 2316 default: 2317 - gcc_unreachable (); 2318 + /* Catch those occasional beasts that do not simplify 2319 + for one reason or another, assuming that if they are 2320 + standard defying the frontend will catch them. */ 2321 + gfc_conv_expr (&se, c->expr); 2322 + if (range == NULL_TREE) 2323 + CONSTRUCTOR_APPEND_ELT (v, index, se.expr); 2324 + else 2325 + { 2326 + if (index != NULL_TREE) 2327 + CONSTRUCTOR_APPEND_ELT (v, index, se.expr); 2328 + CONSTRUCTOR_APPEND_ELT (v, range, se.expr); 2329 + } 2330 + break; 2331 } 2332 } 2333 break; 1983 2334 diff -Naur gcc-4.3.3.orig/gcc/fortran/trans-intrinsic.c gcc-4.3.3/gcc/fortran/trans-intrinsic.c 1984 2335 --- gcc-4.3.3.orig/gcc/fortran/trans-intrinsic.c 2008-07-27 04:41:35.000000000 -0700 … … 2217 2568 diff -Naur gcc-4.3.3.orig/gcc/testsuite/ChangeLog gcc-4.3.3/gcc/testsuite/ChangeLog 2218 2569 --- gcc-4.3.3.orig/gcc/testsuite/ChangeLog 2009-01-24 02:15:24.000000000 -0800 2219 +++ gcc-4.3.3/gcc/testsuite/ChangeLog 2009-02-25 23:06:48.803473000 -0800 2220 @@ -1,3 +1,327 @@ 2570 +++ gcc-4.3.3/gcc/testsuite/ChangeLog 2009-03-11 10:53:13.287573000 -0700 2571 @@ -1,3 +1,350 @@ 2572 +2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 2573 + 2574 + * g++.old-deja/g++.jason/thunk2.C: Skip on SPU. 2575 + 2576 +2009-03-07 Paul Thomas <pault@gcc.gnu.org> 2577 + 2578 + PR fortran/39295 2579 + * gfortran.dg/interface_25.f90: New test. 2580 + * gfortran.dg/interface_26.f90: New test. 2581 + 2582 +2009-03-07 Paul Thomas <pault@gcc.gnu.org> 2583 + 2584 + PR fortran/39292 2585 + * gfortran.dg/initialization_22.f90: New test. 2586 + 2587 +2009-03-04 Jason Merrill <jason@redhat.com> 2588 + Giovanni Bajo <giovannibajo@gcc.gnu.org> 2589 + 2590 + PR c++/9634 2591 + PR c++/29469 2592 + PR c++/29607 2593 + * g++.dg/template/dependent-name5.C: New test. 2594 + 2221 2595 +2009-02-26 Uros Bizjak <ubizjak@gmail.com> 2222 2596 + … … 2546 2920 2547 2921 * GCC 4.3.3 released. 2548 @@ -89,7 +4 13,7 @@2922 @@ -89,7 +436,7 @@ 2549 2923 2550 2924 Backport from mainline: … … 2555 2929 PR tree-optimization/38529 2556 2930 * gcc.dg/vect/pr38529.c: New test. 2557 @@ -426,8 +7 50,8 @@2931 @@ -426,8 +773,8 @@ 2558 2932 2559 2933 2008-11-14 Paul Thomas <pault@gcc.gnu.org> … … 4173 4547 + f(y); // ICE 4174 4548 +} 4549 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 4550 --- gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/dependent-name5.C 1969-12-31 16:00:00.000000000 -0800 4551 +++ gcc-4.3.3/gcc/testsuite/g++.dg/template/dependent-name5.C 2009-03-04 11:37:43.898064000 -0800 4552 @@ -0,0 +1,45 @@ 4553 +// PR c++/9634, c++/29469, c++/29607 4554 +// Contributed by: Giovanni Bajo <giovannibajo at gcc dot gnu dot org> 4555 +// DR224: Make sure that a name is *truly* semantically dependent. 4556 + 4557 +struct D { 4558 + typedef int K; 4559 +}; 4560 + 4561 +template <typename T> 4562 +struct A 4563 +{ 4564 + typedef int Bar; 4565 + 4566 + template <typename> 4567 + struct N {}; 4568 + 4569 + typedef Bar type1; 4570 + typedef A::Bar type2; 4571 + typedef A<T>::Bar type3; 4572 + typedef A<T*>::Bar type4; // { dg-error "" } 4573 + typedef typename A<T*>::Bar type5; 4574 + 4575 + typedef N<int> type6; 4576 + typedef A::N<int> type7; 4577 + typedef A<T>::N<int> type8; 4578 + typedef A<T*>::template N<int> type9; // { dg-error "" } 4579 + typedef typename A<T*>::template N<int> type10; 4580 + 4581 + typedef D Bar2; 4582 + struct N2 { typedef int K; }; 4583 + 4584 + // Check that A::N2 is still considered dependent (because it 4585 + // could be specialized), while A::Bar2 (being just ::D) is not. 4586 + typedef A::Bar2 type11; 4587 + typedef type11::K k3; 4588 + 4589 + typedef A::N2 type12; 4590 + typedef typename type12::K k2; 4591 + typedef type12::K k1; // { dg-error "" } 4592 + 4593 + // Check that A::Bar2 is not considered dependent even if we use 4594 + // the typename keyword. 4595 + typedef typename A::Bar2 type13; 4596 + typedef type13::K k4; 4597 +}; 4175 4598 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 4599 --- gcc-4.3.3.orig/gcc/testsuite/g++.dg/template/dtor5.C 1969-12-31 16:00:00.000000000 -0800 … … 4571 4994 + 4572 4995 +! { dg-final { cleanup-modules "sa0054_stuff" } } 4996 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 4997 --- gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/initialization_22.f90 1969-12-31 16:00:00.000000000 -0800 4998 +++ gcc-4.3.3/gcc/testsuite/gfortran.dg/initialization_22.f90 2009-03-07 07:56:37.773017000 -0800 4999 @@ -0,0 +1,10 @@ 5000 +! { dg-do run } 5001 +! tests the fix for PR39292, where the intitialization expression 5002 +! did not simplify and caused an ICE in gfc_conv_array_initializer. 5003 +! 5004 +! Contributed by Richard Guenther <rguenth@gcc.gnu.org> 5005 +! 5006 + integer :: n 5007 + real, dimension(2) :: a = (/ ( (float(n))**(1.0), n=1,2) /) 5008 + if (any (a .ne. (/ ( (float(n))**(1.0), n=1,2) /))) call abort 5009 +end 5010 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 5011 --- gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/interface_25.f90 1969-12-31 16:00:00.000000000 -0800 5012 +++ gcc-4.3.3/gcc/testsuite/gfortran.dg/interface_25.f90 2009-03-07 07:58:49.569600000 -0800 5013 @@ -0,0 +1,45 @@ 5014 +! { dg-do compile } 5015 +! Tests the fix for PR39295, in which the check of the interfaces 5016 +! at lines 25 and 42 failed because opfunc1 is identified as a 5017 +! function by usage, whereas opfunc2 is not. 5018 +! 5019 +! Contributed by Jon Hurst <jhurst@ucar.edu> 5020 +! 5021 +MODULE funcs 5022 +CONTAINS 5023 + INTEGER FUNCTION test1(a,b,opfunc1) 5024 + INTEGER :: a,b 5025 + INTEGER, EXTERNAL :: opfunc1 5026 + test1 = opfunc1( a, b ) 5027 + END FUNCTION test1 5028 + INTEGER FUNCTION sumInts(a,b) 5029 + INTEGER :: a,b 5030 + sumInts = a + b 5031 + END FUNCTION sumInts 5032 +END MODULE funcs 5033 + 5034 +PROGRAM test 5035 + USE funcs 5036 + INTEGER :: rs 5037 + INTEGER, PARAMETER :: a = 2, b = 1 5038 + rs = recSum( a, b, test1, sumInts ) 5039 + write(*,*) "Results", rs 5040 +CONTAINS 5041 + RECURSIVE INTEGER FUNCTION recSum( a,b,UserFunction,UserOp ) RESULT( res ) 5042 + IMPLICIT NONE 5043 + INTEGER :: a,b 5044 + INTERFACE 5045 + INTEGER FUNCTION UserFunction(a,b,opfunc2) 5046 + INTEGER :: a,b 5047 + INTEGER, EXTERNAL :: opfunc2 5048 + END FUNCTION UserFunction 5049 + END INTERFACE 5050 + INTEGER, EXTERNAL :: UserOp 5051 + 5052 + res = UserFunction( a,b, UserOp ) 5053 + 5054 + if( res .lt. 10 ) then 5055 + res = recSum( a, res, UserFunction, UserOp ) 5056 + end if 5057 + END FUNCTION recSum 5058 +END PROGRAM test 5059 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 5060 --- gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/interface_26.f90 1969-12-31 16:00:00.000000000 -0800 5061 +++ gcc-4.3.3/gcc/testsuite/gfortran.dg/interface_26.f90 2009-03-07 07:58:49.569600000 -0800 5062 @@ -0,0 +1,46 @@ 5063 +! { dg-do compile } 5064 +! Tests the fix for PR39295, in which the check of the interfaces 5065 +! at lines 26 and 43 failed because opfunc1 is identified as a 5066 +! function by usage, whereas opfunc2 is not. This testcase checks 5067 +! that TKR is stll OK in these cases. 5068 +! 5069 +! Contributed by Jon Hurst <jhurst@ucar.edu> 5070 +! 5071 +MODULE funcs 5072 +CONTAINS 5073 + INTEGER FUNCTION test1(a,b,opfunc1) 5074 + INTEGER :: a,b 5075 + INTEGER, EXTERNAL :: opfunc1 5076 + test1 = opfunc1( a, b ) 5077 + END FUNCTION test1 5078 + INTEGER FUNCTION sumInts(a,b) 5079 + INTEGER :: a,b 5080 + sumInts = a + b 5081 + END FUNCTION sumInts 5082 +END MODULE funcs 5083 + 5084 +PROGRAM test 5085 + USE funcs 5086 + INTEGER :: rs 5087 + INTEGER, PARAMETER :: a = 2, b = 1 5088 + rs = recSum( a, b, test1, sumInts ) ! { dg-error "Type/rank mismatch in argument" } 5089 + write(*,*) "Results", rs 5090 +CONTAINS 5091 + RECURSIVE INTEGER FUNCTION recSum( a,b,UserFunction,UserOp ) RESULT( res ) 5092 + IMPLICIT NONE 5093 + INTEGER :: a,b 5094 + INTERFACE 5095 + INTEGER FUNCTION UserFunction(a,b,opfunc2) 5096 + INTEGER :: a,b 5097 + REAL, EXTERNAL :: opfunc2 5098 + END FUNCTION UserFunction 5099 + END INTERFACE 5100 + INTEGER, EXTERNAL :: UserOp 5101 + 5102 + res = UserFunction( a,b, UserOp ) 5103 + 5104 + if( res .lt. 10 ) then 5105 + res = recSum( a, res, UserFunction, UserOp ) 5106 + end if 5107 + END FUNCTION recSum 5108 +END PROGRAM test 4573 5109 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 5110 --- gcc-4.3.3.orig/gcc/testsuite/gfortran.dg/module_commons_3.f90 1969-12-31 16:00:00.000000000 -0800 … … 4785 5321 +! { dg-final { scan-rtl-dump-times "line\\\+80" 0 "expand" } } 4786 5322 +! { dg-final { cleanup-rtl-dump "expand" } } */ 5323 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 5324 --- gcc-4.3.3.orig/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C 2005-10-22 13:57:01.000000000 -0700 5325 +++ gcc-4.3.3/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C 2009-03-11 10:53:13.287573000 -0700 5326 @@ -1,6 +1,7 @@ 5327 // { dg-do run { target fpic } } 5328 // { dg-options "-fPIC" } 5329 // { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))|\[Bb\]ad fixup at .DATA.:" "PIC unsupported" { xfail *-*-netware* } 0 } 5330 +// { dg-skip-if "requires unsupported run-time relocation" { spu-*-* } { "*" } { "" } } 5331 // Test that non-variadic function calls using thunks and PIC work right. 5332 5333 struct A { 4787 5334 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 5335 --- gcc-4.3.3.orig/gcc/testsuite/objc.dg/gnu-encoding/gnu-encoding.exp 2007-08-01 09:25:11.000000000 -0700 … … 4941 5488 diff -Naur gcc-4.3.3.orig/gcc/version.c gcc-4.3.3/gcc/version.c 4942 5489 --- 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 -08005490 +++ gcc-4.3.3/gcc/version.c 2009-03-12 10:34:15.068288868 -0700 4944 5491 @@ -14,4 +14,4 @@ 4945 5492 Makefile. */ … … 4947 5494 const char version_string[] = BASEVER DATESTAMP DEVPHASE REVISION; 4948 5495 -const char pkgversion_string[] = PKGVERSION; 4949 +const char pkgversion_string[] = "(GCC for Cross-LFS 4.3.3.200903 01) ";5496 +const char pkgversion_string[] = "(GCC for Cross-LFS 4.3.3.20090312) "; 4950 5497 diff -Naur gcc-4.3.3.orig/libjava/classpath/doc/cp-tools.info gcc-4.3.3/libjava/classpath/doc/cp-tools.info 4951 5498 --- gcc-4.3.3.orig/libjava/classpath/doc/cp-tools.info 2009-01-24 04:05:54.000000000 -0800
Note:
See TracChangeset
for help on using the changeset viewer.