[Bug fortran/33997] Generic interface: Rejects non-ambiguous interface as ambiguous
--- Comment #5 from pault at gcc dot gnu dot org 2007-11-06 08:08 --- (In reply to comment #4) I had come to the same conclusion overnight - it is odd that procedures are not distinguished from non-procedures but there we are; that's what the standard does not say. Well done, Tobias. Paul -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33997
[Bug c++/33894] [4.3 Regression] pragma omp atomic broken
--- Comment #5 from jakub at gcc dot gnu dot org 2007-11-06 08:27 --- Subject: Bug 33894 Author: jakub Date: Tue Nov 6 08:26:50 2007 New Revision: 129919 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129919 Log: PR c++/33894 * cp-tree.h: Update comment - TYPE_LANG_FLAG_0 is not OMP_ATOMIC_DEPENDENT_P in OMP_ATOMIC. * pt.c (tsubst_expr): Assert OMP_ATOMIC_DEPENDENT_P. * semantics.c (finish_omp_atomic): Revert most of the 2007-02-05 changes, just keep the new representation of OMP_ATOMIC_DEPENDENT_P OMP_ATOMIC. * testsuite/libgomp.c++/atomic-1.C: New test. Added: trunk/libgomp/testsuite/libgomp.c++/atomic-1.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/cp-tree.h trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/libgomp/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33894
[Bug fortran/34002] New: ICE with constant intrinsic array specs
[EMAIL PROTECTED] CompTest]$ cat isotope.f90 program fred implicit none integer,dimension(3),parameter::MaxJ=2 integer,dimension(maxval(MaxJ))::N integer::J N=0 do J=1,maxval(MaxJ) write(*,*)N(J) enddo end [EMAIL PROTECTED] CompTest]$ gfortran -v -c isotope.f90 Using built-in specs. Target: x86_64-unknown-linux-gnu Configured with: ./configure --disable-multilib --enable-languages=c,fortran Thread model: posix gcc version 4.2.2 /usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.2.2/f951 isotope.f90 -quiet -dumpbase isotope.f90 -mtune=generic -auxbase isotope -version -I /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.2.2/finclude -o /tmp/ccS94960.s GNU F95 version 4.2.2 (x86_64-unknown-linux-gnu) compiled by GNU C version 4.2.2. GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 isotope.f90: In function MAIN__: isotope.f90:4: internal compiler error: in gfc_conv_intrinsic_minmaxval, at fortran/trans-intrinsic.c:2119 Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html> for instructions. I do recall running into some sort of problems w.r.t. standards conformance with this type of intrinsic in array specifications in the past (the details allude me), so I'm not certain this is legal. However, with a similar code (without the loop that seems to be causing the problem) I can't get gfortran to produce an error or warning with any combination of -std and -pedantic, and size(N) returns the expected value. So if it's not legal code, there's another bug to go with the ICE! (*sigh* Another problem of not having standards documents readily available without forking out cash... or is there a reliable Fortran specification living on the web somewhere?) -- Summary: ICE with constant intrinsic array specs Product: gcc Version: 4.2.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: terry at chem dot gu dot se GCC host triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34002
[Bug tree-optimization/33993] [4.3 Regression] ICE: verify_stmts failed (invalid reference prefix)
--- Comment #6 from jakub at gcc dot gnu dot org 2007-11-06 08:35 --- Fixed. -- jakub at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33993
[Bug tree-optimization/33993] [4.3 Regression] ICE: verify_stmts failed (invalid reference prefix)
--- Comment #5 from jakub at gcc dot gnu dot org 2007-11-06 08:28 --- Subject: Bug 33993 Author: jakub Date: Tue Nov 6 08:28:37 2007 New Revision: 129920 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129920 Log: PR tree-optimization/33993 * tree-vect-transform.c (vect_get_constant_vectors): Use build_vector rather than build_constructor_from_list if all list values are constants. (get_initial_def_for_induction): Use build_vector instead of build_constructor_from_list. * gcc.c-torture/compile/20071105-1.c: New test. Added: trunk/gcc/testsuite/gcc.c-torture/compile/20071105-1.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-vect-transform.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33993
[Bug tree-optimization/33458] [4.3 regression] ICE "PHI def is not a GIMPLE value"
--- Comment #8 from jakub at gcc dot gnu dot org 2007-11-06 08:29 --- Subject: Bug 33458 Author: jakub Date: Tue Nov 6 08:29:48 2007 New Revision: 129921 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129921 Log: PR tree-optimization/33458 * tree-inline.c (copy_phis_for_bb): If PHI arg substitution creates !is_gimple_val PHI argument, gimplify it and insert it on edge. * g++.dg/opt/inline12.C: New test. Added: trunk/gcc/testsuite/g++.dg/opt/inline12.C Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-inline.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33458
[Bug target/33168] [4.3 Regression] GCC Boot failure, building libstc++
--- Comment #15 from jakub at gcc dot gnu dot org 2007-11-06 08:33 --- Subject: Bug 33168 Author: jakub Date: Tue Nov 6 08:33:25 2007 New Revision: 129922 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129922 Log: PR target/33168 * decl.c (cp_finish_decl): Call make_rtl_for_nonlocal_decl already with the final TREE_READONLY flag in place. processing_template_decl is known to be 0 in this part of function. * g++.dg/other/datasec1.C: New test. Added: trunk/gcc/testsuite/g++.dg/other/datasec1.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/decl.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33168
[Bug c++/33894] [4.3 Regression] pragma omp atomic broken
--- Comment #6 from jakub at gcc dot gnu dot org 2007-11-06 08:34 --- Fixed. -- jakub at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33894
[Bug tree-optimization/33458] [4.3 regression] ICE "PHI def is not a GIMPLE value"
--- Comment #9 from jakub at gcc dot gnu dot org 2007-11-06 08:35 --- Fixed. -- jakub at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33458
[Bug target/33168] [4.3 Regression] GCC Boot failure, building libstc++
--- Comment #16 from jakub at gcc dot gnu dot org 2007-11-06 08:37 --- Fixed, ppc64-linux bootstraps just fine now even without --with-cpu=default32. -- jakub at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33168
[Bug bootstrap/34003] New: gcc 4.3.0 unable to bootstrap itself; Unsatisfied symbols: ggc_free
gcc-4.3.0 revision 129794 Builds fine with gcc 4.1.2 as boostrap compiler: Target: hppa2.0w-hp-hpux11.00 Configured with: /raid/tecosim/it/devel/projects/develtools/src/gcc-4.3.0/configure --prefix=/appl/shared/gcc/HP-UX/hppa2.0w-hp-hpux11.00/gcc-4.3.0 --with-gnu-as --with-as=/appl/shared/gcc/HP-UX/hppa2.0w-hp-hpux11.00/gcc-4.3.0/bin/as --with-ld=/usr/ccs/bin/ld --enable-threads=posix --enable-shared --enable-checking=release --enable-languages=c,ada,c++,fortran,java,objc,obj-c++,treelang --with-gmp=/SCRATCH/gcc-build/HP-UX/hppa2.0w-hp-hpux11.00/install --with-mpfr=/SCRATCH/gcc-build/HP-UX/hppa2.0w-hp-hpux11.00/install --with-local-prefix=/appl/shared/gnu/HP-UX/hppa2.0w-hp-hpux11.00 Thread model: posix gcc version 4.3.0 20071031 (experimental) (GCC) But using this as bootstrap compiler for itself results in the following error in stage 1: gcc -g -fkeep-inline-functions -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings-DHAVE_CONFIG_H -DGENERATOR_FILE -o build/genconstants \ build/genconstants.o build/rtl.o build/read-rtl.o build/ggc-none.o build/vec.o build/min-insn-modes.o build/gensupport.o build/print-rtl.o build/errors.o ../build-hppa2.0w-hp-hpux11.00/libiberty /libiberty.a /usr/ccs/bin/ld: Unsatisfied symbols: ggc_free (first referenced in build/rtl.o) (data) /usr/ccs/bin/ld: (Warning) Linker features were used that may not be supported in future releases. The +vallcompatwarnings option can be used to display more details, and the ld(1) man page contains additio nal information. This warning can be suppressed with the +vnocompatwarnings option. collect2: ld returned 1 exit status gmake[3]: *** [build/genconstants] Error 1 gmake[3]: Leaving directory `/disk1/SCRATCH/gcc-build/HP-UX/hppa2.0w-hp-hpux11.00/gcc-4.3.0/gcc-4.3.0/gcc' gmake[2]: *** [all-stage1-gcc] Error 2 gmake[2]: Leaving directory `/disk1/SCRATCH/gcc-build/HP-UX/hppa2.0w-hp-hpux11.00/gcc-4.3.0/gcc-4.3.0' gmake[1]: *** [stage1-bubble] Error 2 gmake[1]: Leaving directory `/disk1/SCRATCH/gcc-build/HP-UX/hppa2.0w-hp-hpux11.00/gcc-4.3.0/gcc-4.3.0' gmake: *** [all] Error 2 -- Summary: gcc 4.3.0 unable to bootstrap itself; Unsatisfied symbols: ggc_free Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: r dot emrich at de dot tecosim dot com GCC build triplet: hppa2.0w-hp-hpux11.00 GCC host triplet: hppa2.0w-hp-hpux11.00 GCC target triplet: hppa2.0w-hp-hpux11.00 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34003
[Bug bootstrap/34003] gcc 4.3.0 unable to bootstrap itself; Unsatisfied symbols: ggc_free
--- Comment #1 from r dot emrich at de dot tecosim dot com 2007-11-06 10:23 --- Created an attachment (id=14488) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14488&action=view) preprocessed source -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34003
[Bug middle-end/33335] [4.3 Regression] FAIL: 26_numerics/complex/inserters_extractors/wchar_t/1.cc
--- Comment #8 from jakub at gcc dot gnu dot org 2007-11-06 10:47 --- Seems to be (at least on ppc64-linux) PCH related, if I move O2.gch away, assembly contains the correct __gcc_qdiv references, while after moving it back I get back the incorrect __divtf3 ones. Looking into it. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=5
[Bug bootstrap/34003] gcc 4.3.0 unable to bootstrap itself; Unsatisfied symbols: ggc_free
--- Comment #2 from pinskia at gcc dot gnu dot org 2007-11-06 11:30 --- This comes from: DEF_VEC_P(rtx); DEF_VEC_ALLOC_P(rtx,heap); DEF_VEC_ALLOC_P(rtx,gc); -- pinskia at gcc dot gnu dot org changed: What|Removed |Added CC||pinskia at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34003
[Bug bootstrap/34003] [4.3 Regression] gcc 4.3.0 unable to bootstrap itself; Unsatisfied symbols: ggc_free
--- Comment #3 from pinskia at gcc dot gnu dot org 2007-11-06 11:33 --- I think 4.2 is also broken. -- pinskia at gcc dot gnu dot org changed: What|Removed |Added Severity|normal |blocker Keywords||build Summary|gcc 4.3.0 unable to |[4.3 Regression] gcc 4.3.0 |bootstrap itself; |unable to bootstrap itself; |Unsatisfied symbols:|Unsatisfied symbols: |ggc_free|ggc_free Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34003
[Bug bootstrap/34003] [4.3 Regression] gcc 4.3.0 unable to bootstrap itself; Unsatisfied symbols: ggc_free
--- Comment #4 from r dot emrich at de dot tecosim dot com 2007-11-06 11:35 --- (In reply to comment #3) > I think 4.2 is also broken. > 4.2.2 is ok. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34003
[Bug middle-end/33335] [4.3 Regression] FAIL: 26_numerics/complex/inserters_extractors/wchar_t/1.cc
-- jakub at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jakub at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2007-09-08 01:11:55 |2007-11-06 11:41:58 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=5
[Bug fortran/34002] ICE with constant intrinsic array specs
--- Comment #1 from jv244 at cam dot ac dot uk 2007-11-06 11:44 --- http://j3-fortran.org/doc/year/97/97-007r2/pdf/97-007r2.pdf -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34002
[Bug fortran/33998] ICE in make_decl_rtl, at varasm.c:1263
--- Comment #2 from pault at gcc dot gnu dot org 2007-11-06 11:49 --- In the code for the testcase: len_test () { real4 x[7]; static int4 options.40[7] = {68, 127, 0, 0, 0, 1, 0}; ..snip.. parm.48.dim[0].lbound = D.727; parm.48.dim[0].ubound = ubound.45; parm.48.dim[0].stride = 1; parm.48.data = (void *) (char[0:][1:1] *) &(*sv2)[D.727 - lbound.44]; parm.48.offset = (lbound.44 - D.727) + D.730; ..snip. _gfortran_st_write_done (&dt_parm.41); } } Thus, there are two remarks to make: (1) First 'sv2' is being referenced in the main programme, so the interface functions in trans-expr.c are failing; and (2) A temporary descriptor is being written, which is unnecessary. This is very much related to PR33888 in my opinion. In that PR, the problem arises because trans-array.c(gfc_conv_expr_descriptor) fails to substitute the dummy expressions, with the interface routines, before creating the temporary. The character length calculation at trans-array.c:4685 is simply not up to the job. I do not see any alternative but to rewrite the interface routines and put them in resolve.c. Cheers Paul -- pault at gcc dot gnu dot org changed: What|Removed |Added BugsThisDependsOn||33888 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33998
[Bug bootstrap/34003] [4.3 Regression] gcc 4.3.0 unable to bootstrap itself; Unsatisfied symbols: ggc_free
--- Comment #5 from pinskia at gcc dot gnu dot org 2007-11-06 11:37 --- What I mean is that 4.2's rtl has the same issue. What happens if you try to bootstrap 4.2 with 4.3? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34003
[Bug bootstrap/34003] [4.3 Regression] gcc 4.3.0 unable to bootstrap itself; Unsatisfied symbols: ggc_free
--- Comment #6 from r dot emrich at de dot tecosim dot com 2007-11-06 12:02 --- Takes a few minutes. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34003
[Bug middle-end/33970] Missed optimization using unsigned char loop variable
--- Comment #9 from henning dot m at insightbb dot com 2007-11-06 12:37 --- (In reply to comment #8) > (In reply to comment #7) > > With Mike's description in comment #6, confirmed on 4.1.2 and 4.2.2. AVR GCC > > 4.2.2 is worse than 4.1.2, in that even if sub2 is called with (x+1), the > > variable is still 16 bits. > > > > There is something more going on, this is the assembler output when sub2 is > not > in the same file, and calling sub2(x), i.e not x+1: > === I think you will also find that if x is changed from ststic to auto the same problem appears. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33970
[Bug tree-optimization/33953] [4.3 regression] internal compiler error: vector VEC(tree,base) index domain error, in vectorizable_operation at tree-vect-transform.c:4017
--- Comment #8 from irar at il dot ibm dot com 2007-11-06 13:17 --- (In reply to comment #6) > (In reply to comment #2) > > For example vect_get_vec_defs_for_stmt_copy > > doesn't allocate the VECs which is exactly what causes the problem here. > > vect_get_vec_defs_for_stmt_copy is not called here, it is used to create > vector > copies in case of multiple types in the loop. It should reuse the VEC used for > the first copy. I think, there is indeed a problem here. We should overwrite > the existing entries and not push the new ones. I'll look into this. I thought that there is a problem, because I missed the first pop there. I think this function is O.K. Ira -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33953
[Bug bootstrap/34003] [4.3 Regression] gcc 4.3.0 unable to bootstrap itself; Unsatisfied symbols: ggc_free
--- Comment #7 from r dot emrich at de dot tecosim dot com 2007-11-06 14:22 --- Created an attachment (id=14489) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14489&action=view) preprocessed source gcc-4.2.2 yields the same problem -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34003
[Bug fortran/34004] New: Accepts invalid: Ambigiuous interface with subroutine.
After PR 33997 turned out to be no bug, there is the following program, which gfortran wrongly accepts. A bit oddly the Fortran standard does not distinguish between variables and functions and subroutines are wild matches. The following is the relevant part from the Fortran 2003 standard ("16.2.3 Restrictions on generic declarations"): "Two dummy arguments are distinguishable if neither is a subroutine and neither is TKR compatible (5.1.1.2) with the other." module ambiguous implicit none interface both module procedure test1, test2 end interface both contains function test1(x) implicit integer(x) integer test1 test1 = 1 end function test1 function test2(x) interface subroutine x() end subroutine x end interface integer test2 test2 = 2 end function test2 subroutine test3 end subroutine test3 end module ambiguous program main use ambiguous implicit none write(*,*) both(1) write(*,*) both(test3) end program main -- Summary: Accepts invalid: Ambigiuous interface with subroutine. Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: accepts-invalid Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: burnus at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34004
[Bug fortran/34002] ICE with constant intrinsic array specs
--- Comment #2 from pault at gcc dot gnu dot org 2007-11-06 14:13 --- GNU Fortran (GCC) 4.3.0 20070912 (experimental) Copyright (C) 2007 Free Software Foundation, Inc. $ cat pr34002.f90 program fred implicit none integer,dimension(3),parameter::MaxJ=2 integer,dimension(maxval(MaxJ))::N integer::J N=9 do J=1,maxval(MaxJ) write(*,*)N(J) enddo end $ /irun/bin/gfortran pr34002.f90 $ ./a 9 9 I'm closing this as fixed for 4.3.0. Please try to upgrade to the latest version, which is available from the gfortran wiki - http://gcc.gnu.org/wiki/GFortran , together with copies of all the fortran standards. Paul -- pault at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34002
[Bug libstdc++/24347] Document boost_shared_ptr vs concurrency
--- Comment #3 from jwakely dot gcc at gmail dot com 2007-11-06 14:34 --- Some related discussion: http://gcc.gnu.org/ml/libstdc++/2007-10/msg00180.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24347
[Bug c++/32566] [4.3 regression] ICE with invalid specialization of variadic template
--- Comment #3 from dgregor at gcc dot gnu dot org 2007-11-06 14:38 --- Subject: Bug 32566 Author: dgregor Date: Tue Nov 6 14:37:56 2007 New Revision: 129928 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129928 Log: 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> PR c++/31439 PR c++/32114 PR c++/32115 PR c++/32125 PR c++/32126 PR c++/32127 PR c++/32128 PR c++/32253 PR c++/32566 * typeck.c (check_return_expr): Pass address of retval to check_for_bare_parameter_packs. * class.c (build_base_field): Tolerate bases that have no layout due to errors. (end_of_base): Ditto. * tree.c (canonical_type_variant): Be careful with ERROR_MARK_NODE. * cp-tree.h (check_for_bare_parameter_packs): Now accepts a tree*. * pt.c (find_parameter_pack_data): Add set_packs_to_error field, which states whether parameter packs should be replaced with ERROR_MARK_NODE. (find_parameter_packs_r): Pass addresses to cp_walk_tree wherever possible. If set_packs_to_error is set true, replace the parameter pack with ERROR_MARK_NODE. Manage our own pointer sets. (uses_parameter_packs): Don't set parameter packs to ERROR_MARK_NODE. (check_for_bare_parameter_packs): Now takes a pointer to a tree, which may be modified (if it is a parameter pack). Instructs find_parameter_packs_r to replace parameter packs with ERROR_MARK_NODE (so that they won't cause errors later on). (process_template_parm): Pass pointer to check_for_bare_parameter_packs. (process_partial_specialization): Replace pack expansions before the end of the template argument list with ERROR_MARK_NODE. (push_template_decl_real): Pass pointer to check_for_bare_parameter_packs. Replace parameter packs not at the end of the template parameter list with ERROR_MARK_NODE. (convert_template_argument): Be more careful about using DECL_NAME on only declarations. (unify): Can't unify against ERROR_MARK_NODE. * semantics.c (finish_cond): Pass pointer to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Pass pointer to check_for_bare_parameter_packs, and call it before we put the condition into the statement. (finish_mem_initializers): Pass pointer to check_for_bare_parameter_packs. (finish_member_declaration): Ditto. * parser.c (cp_parser_base_clause): Ditto. 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> * testsuite/g++.dg/parser/crash36.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31439.C: New. * testsuite/g++.dg/cpp0x/pr32114.C: New. * testsuite/g++.dg/cpp0x/pr32115.C: New. * testsuite/g++.dg/cpp0x/pr32125.C: New. * testsuite/g++.dg/cpp0x/pr32126.C: New. * testsuite/g++.dg/cpp0x/pr32127.C: New. * testsuite/g++.dg/cpp0x/pr32128.C: New. * testsuite/g++.dg/cpp0x/pr32253.C: New. * testsuite/g++.dg/cpp0x/pr32566.C: New. * testsuite/g++.dg/cpp0x/pr31445.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31438.C: Ditto. * testsuite/g++.dg/cpp0x/variadic81.C: Ditto. * testsuite/g++.dg/cpp0x/pr31432.C: Ditto. * testsuite/g++.dg/cpp0x/pr31442.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/pr31439.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32114.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32115.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32127.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32128.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32253.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32566.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31432.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31442.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31445.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/parse/crash36.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32566
[Bug c++/32115] [4.3 regression] ICE with default argument in variadic template
--- Comment #1 from dgregor at gcc dot gnu dot org 2007-11-06 14:38 --- Subject: Bug 32115 Author: dgregor Date: Tue Nov 6 14:37:56 2007 New Revision: 129928 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129928 Log: 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> PR c++/31439 PR c++/32114 PR c++/32115 PR c++/32125 PR c++/32126 PR c++/32127 PR c++/32128 PR c++/32253 PR c++/32566 * typeck.c (check_return_expr): Pass address of retval to check_for_bare_parameter_packs. * class.c (build_base_field): Tolerate bases that have no layout due to errors. (end_of_base): Ditto. * tree.c (canonical_type_variant): Be careful with ERROR_MARK_NODE. * cp-tree.h (check_for_bare_parameter_packs): Now accepts a tree*. * pt.c (find_parameter_pack_data): Add set_packs_to_error field, which states whether parameter packs should be replaced with ERROR_MARK_NODE. (find_parameter_packs_r): Pass addresses to cp_walk_tree wherever possible. If set_packs_to_error is set true, replace the parameter pack with ERROR_MARK_NODE. Manage our own pointer sets. (uses_parameter_packs): Don't set parameter packs to ERROR_MARK_NODE. (check_for_bare_parameter_packs): Now takes a pointer to a tree, which may be modified (if it is a parameter pack). Instructs find_parameter_packs_r to replace parameter packs with ERROR_MARK_NODE (so that they won't cause errors later on). (process_template_parm): Pass pointer to check_for_bare_parameter_packs. (process_partial_specialization): Replace pack expansions before the end of the template argument list with ERROR_MARK_NODE. (push_template_decl_real): Pass pointer to check_for_bare_parameter_packs. Replace parameter packs not at the end of the template parameter list with ERROR_MARK_NODE. (convert_template_argument): Be more careful about using DECL_NAME on only declarations. (unify): Can't unify against ERROR_MARK_NODE. * semantics.c (finish_cond): Pass pointer to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Pass pointer to check_for_bare_parameter_packs, and call it before we put the condition into the statement. (finish_mem_initializers): Pass pointer to check_for_bare_parameter_packs. (finish_member_declaration): Ditto. * parser.c (cp_parser_base_clause): Ditto. 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> * testsuite/g++.dg/parser/crash36.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31439.C: New. * testsuite/g++.dg/cpp0x/pr32114.C: New. * testsuite/g++.dg/cpp0x/pr32115.C: New. * testsuite/g++.dg/cpp0x/pr32125.C: New. * testsuite/g++.dg/cpp0x/pr32126.C: New. * testsuite/g++.dg/cpp0x/pr32127.C: New. * testsuite/g++.dg/cpp0x/pr32128.C: New. * testsuite/g++.dg/cpp0x/pr32253.C: New. * testsuite/g++.dg/cpp0x/pr32566.C: New. * testsuite/g++.dg/cpp0x/pr31445.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31438.C: Ditto. * testsuite/g++.dg/cpp0x/variadic81.C: Ditto. * testsuite/g++.dg/cpp0x/pr31432.C: Ditto. * testsuite/g++.dg/cpp0x/pr31442.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/pr31439.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32114.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32115.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32127.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32128.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32253.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32566.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31432.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31442.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31445.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/parse/crash36.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32115
[Bug c++/32114] [4.3 regression] ICE on invalid use of typedef in variadic template
--- Comment #3 from dgregor at gcc dot gnu dot org 2007-11-06 14:38 --- Subject: Bug 32114 Author: dgregor Date: Tue Nov 6 14:37:56 2007 New Revision: 129928 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129928 Log: 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> PR c++/31439 PR c++/32114 PR c++/32115 PR c++/32125 PR c++/32126 PR c++/32127 PR c++/32128 PR c++/32253 PR c++/32566 * typeck.c (check_return_expr): Pass address of retval to check_for_bare_parameter_packs. * class.c (build_base_field): Tolerate bases that have no layout due to errors. (end_of_base): Ditto. * tree.c (canonical_type_variant): Be careful with ERROR_MARK_NODE. * cp-tree.h (check_for_bare_parameter_packs): Now accepts a tree*. * pt.c (find_parameter_pack_data): Add set_packs_to_error field, which states whether parameter packs should be replaced with ERROR_MARK_NODE. (find_parameter_packs_r): Pass addresses to cp_walk_tree wherever possible. If set_packs_to_error is set true, replace the parameter pack with ERROR_MARK_NODE. Manage our own pointer sets. (uses_parameter_packs): Don't set parameter packs to ERROR_MARK_NODE. (check_for_bare_parameter_packs): Now takes a pointer to a tree, which may be modified (if it is a parameter pack). Instructs find_parameter_packs_r to replace parameter packs with ERROR_MARK_NODE (so that they won't cause errors later on). (process_template_parm): Pass pointer to check_for_bare_parameter_packs. (process_partial_specialization): Replace pack expansions before the end of the template argument list with ERROR_MARK_NODE. (push_template_decl_real): Pass pointer to check_for_bare_parameter_packs. Replace parameter packs not at the end of the template parameter list with ERROR_MARK_NODE. (convert_template_argument): Be more careful about using DECL_NAME on only declarations. (unify): Can't unify against ERROR_MARK_NODE. * semantics.c (finish_cond): Pass pointer to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Pass pointer to check_for_bare_parameter_packs, and call it before we put the condition into the statement. (finish_mem_initializers): Pass pointer to check_for_bare_parameter_packs. (finish_member_declaration): Ditto. * parser.c (cp_parser_base_clause): Ditto. 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> * testsuite/g++.dg/parser/crash36.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31439.C: New. * testsuite/g++.dg/cpp0x/pr32114.C: New. * testsuite/g++.dg/cpp0x/pr32115.C: New. * testsuite/g++.dg/cpp0x/pr32125.C: New. * testsuite/g++.dg/cpp0x/pr32126.C: New. * testsuite/g++.dg/cpp0x/pr32127.C: New. * testsuite/g++.dg/cpp0x/pr32128.C: New. * testsuite/g++.dg/cpp0x/pr32253.C: New. * testsuite/g++.dg/cpp0x/pr32566.C: New. * testsuite/g++.dg/cpp0x/pr31445.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31438.C: Ditto. * testsuite/g++.dg/cpp0x/variadic81.C: Ditto. * testsuite/g++.dg/cpp0x/pr31432.C: Ditto. * testsuite/g++.dg/cpp0x/pr31442.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/pr31439.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32114.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32115.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32127.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32128.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32253.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32566.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31432.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31442.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31445.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/parse/crash36.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32114
[Bug rtl-optimization/33886] [4.3 regression] internal compiler error: canonical types differ for identical types
--- Comment #2 from dgregor at gcc dot gnu dot org 2007-11-06 14:39 --- Subject: Bug 33886 Author: dgregor Date: Tue Nov 6 14:39:41 2007 New Revision: 129929 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129929 Log: 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> PR c++/33977 PR c++/33886 * tree.c (c_build_qualified_type): Define bridge to cp_build_qualified_type. 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> PR c++/33977 PR c++/33886 * c-common.c (c_build_qualified_type): Moved to c-typeck.c. (complete_array_type): Set canonical type appropriately. * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The C and C++ front ends now have different versions of this function, because the C++ version needs to maintain canonical types here. 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> PR c++/33977 PR c++/33886 * g++.dg/other/canon-array.C: New. Modified: trunk/gcc/ChangeLog trunk/gcc/c-common.c trunk/gcc/c-typeck.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/tree.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33886
[Bug c++/33977] [4.3 Regression] internal compiler error: canonical types differ for identical types const char [5] and const sal_Char [5]
--- Comment #4 from dgregor at gcc dot gnu dot org 2007-11-06 14:39 --- Subject: Bug 33977 Author: dgregor Date: Tue Nov 6 14:39:41 2007 New Revision: 129929 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129929 Log: 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> PR c++/33977 PR c++/33886 * tree.c (c_build_qualified_type): Define bridge to cp_build_qualified_type. 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> PR c++/33977 PR c++/33886 * c-common.c (c_build_qualified_type): Moved to c-typeck.c. (complete_array_type): Set canonical type appropriately. * c-typeck.c (c_build_qualified_type): Moved from c-common.c. The C and C++ front ends now have different versions of this function, because the C++ version needs to maintain canonical types here. 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> PR c++/33977 PR c++/33886 * g++.dg/other/canon-array.C: New. Modified: trunk/gcc/ChangeLog trunk/gcc/c-common.c trunk/gcc/c-typeck.c trunk/gcc/cp/ChangeLog trunk/gcc/cp/tree.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33977
[Bug c++/32115] [4.3 regression] ICE with default argument in variadic template
--- Comment #2 from dgregor at gcc dot gnu dot org 2007-11-06 14:42 --- Fixed -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32115
[Bug c++/32253] [4.3 regression] ICE with variadic templates and function pointers
--- Comment #2 from dgregor at gcc dot gnu dot org 2007-11-06 14:43 --- Fixed -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32253
[Bug c++/32128] [4.3 regression] ICE on variadic template with two parameter packs
--- Comment #3 from dgregor at gcc dot gnu dot org 2007-11-06 14:43 --- Fixed -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32128
[Bug c++/32127] [4.3 regression] ICE with invalid static member in variadic template
--- Comment #2 from dgregor at gcc dot gnu dot org 2007-11-06 14:43 --- Fixed -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32127
[Bug c++/32126] [4.3 regression] ICE with invalid definition of variadic template
--- Comment #3 from dgregor at gcc dot gnu dot org 2007-11-06 14:43 --- Fixed -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32126
[Bug c++/32125] [4.3 regression] ICE with invalid specialization of variadic template
--- Comment #4 from dgregor at gcc dot gnu dot org 2007-11-06 14:43 --- Fixed -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32125
[Bug c++/32114] [4.3 regression] ICE on invalid use of typedef in variadic template
--- Comment #4 from dgregor at gcc dot gnu dot org 2007-11-06 14:42 --- Fixed -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32114
[Bug c++/31439] [4.3 regression] ICE with variadic template and broken specialization
--- Comment #2 from dgregor at gcc dot gnu dot org 2007-11-06 14:42 --- Fixed -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31439
[Bug rtl-optimization/33886] [4.3 regression] internal compiler error: canonical types differ for identical types
--- Comment #3 from dgregor at gcc dot gnu dot org 2007-11-06 14:40 --- Fixed -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33886
[Bug c++/33977] [4.3 Regression] internal compiler error: canonical types differ for identical types const char [5] and const sal_Char [5]
--- Comment #5 from dgregor at gcc dot gnu dot org 2007-11-06 14:40 --- Fixed -- dgregor at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33977
[Bug c++/32128] [4.3 regression] ICE on variadic template with two parameter packs
--- Comment #2 from dgregor at gcc dot gnu dot org 2007-11-06 14:38 --- Subject: Bug 32128 Author: dgregor Date: Tue Nov 6 14:37:56 2007 New Revision: 129928 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129928 Log: 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> PR c++/31439 PR c++/32114 PR c++/32115 PR c++/32125 PR c++/32126 PR c++/32127 PR c++/32128 PR c++/32253 PR c++/32566 * typeck.c (check_return_expr): Pass address of retval to check_for_bare_parameter_packs. * class.c (build_base_field): Tolerate bases that have no layout due to errors. (end_of_base): Ditto. * tree.c (canonical_type_variant): Be careful with ERROR_MARK_NODE. * cp-tree.h (check_for_bare_parameter_packs): Now accepts a tree*. * pt.c (find_parameter_pack_data): Add set_packs_to_error field, which states whether parameter packs should be replaced with ERROR_MARK_NODE. (find_parameter_packs_r): Pass addresses to cp_walk_tree wherever possible. If set_packs_to_error is set true, replace the parameter pack with ERROR_MARK_NODE. Manage our own pointer sets. (uses_parameter_packs): Don't set parameter packs to ERROR_MARK_NODE. (check_for_bare_parameter_packs): Now takes a pointer to a tree, which may be modified (if it is a parameter pack). Instructs find_parameter_packs_r to replace parameter packs with ERROR_MARK_NODE (so that they won't cause errors later on). (process_template_parm): Pass pointer to check_for_bare_parameter_packs. (process_partial_specialization): Replace pack expansions before the end of the template argument list with ERROR_MARK_NODE. (push_template_decl_real): Pass pointer to check_for_bare_parameter_packs. Replace parameter packs not at the end of the template parameter list with ERROR_MARK_NODE. (convert_template_argument): Be more careful about using DECL_NAME on only declarations. (unify): Can't unify against ERROR_MARK_NODE. * semantics.c (finish_cond): Pass pointer to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Pass pointer to check_for_bare_parameter_packs, and call it before we put the condition into the statement. (finish_mem_initializers): Pass pointer to check_for_bare_parameter_packs. (finish_member_declaration): Ditto. * parser.c (cp_parser_base_clause): Ditto. 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> * testsuite/g++.dg/parser/crash36.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31439.C: New. * testsuite/g++.dg/cpp0x/pr32114.C: New. * testsuite/g++.dg/cpp0x/pr32115.C: New. * testsuite/g++.dg/cpp0x/pr32125.C: New. * testsuite/g++.dg/cpp0x/pr32126.C: New. * testsuite/g++.dg/cpp0x/pr32127.C: New. * testsuite/g++.dg/cpp0x/pr32128.C: New. * testsuite/g++.dg/cpp0x/pr32253.C: New. * testsuite/g++.dg/cpp0x/pr32566.C: New. * testsuite/g++.dg/cpp0x/pr31445.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31438.C: Ditto. * testsuite/g++.dg/cpp0x/variadic81.C: Ditto. * testsuite/g++.dg/cpp0x/pr31432.C: Ditto. * testsuite/g++.dg/cpp0x/pr31442.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/pr31439.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32114.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32115.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32127.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32128.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32253.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32566.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31432.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31442.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31445.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/parse/crash36.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32128
[Bug c++/32127] [4.3 regression] ICE with invalid static member in variadic template
--- Comment #1 from dgregor at gcc dot gnu dot org 2007-11-06 14:38 --- Subject: Bug 32127 Author: dgregor Date: Tue Nov 6 14:37:56 2007 New Revision: 129928 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129928 Log: 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> PR c++/31439 PR c++/32114 PR c++/32115 PR c++/32125 PR c++/32126 PR c++/32127 PR c++/32128 PR c++/32253 PR c++/32566 * typeck.c (check_return_expr): Pass address of retval to check_for_bare_parameter_packs. * class.c (build_base_field): Tolerate bases that have no layout due to errors. (end_of_base): Ditto. * tree.c (canonical_type_variant): Be careful with ERROR_MARK_NODE. * cp-tree.h (check_for_bare_parameter_packs): Now accepts a tree*. * pt.c (find_parameter_pack_data): Add set_packs_to_error field, which states whether parameter packs should be replaced with ERROR_MARK_NODE. (find_parameter_packs_r): Pass addresses to cp_walk_tree wherever possible. If set_packs_to_error is set true, replace the parameter pack with ERROR_MARK_NODE. Manage our own pointer sets. (uses_parameter_packs): Don't set parameter packs to ERROR_MARK_NODE. (check_for_bare_parameter_packs): Now takes a pointer to a tree, which may be modified (if it is a parameter pack). Instructs find_parameter_packs_r to replace parameter packs with ERROR_MARK_NODE (so that they won't cause errors later on). (process_template_parm): Pass pointer to check_for_bare_parameter_packs. (process_partial_specialization): Replace pack expansions before the end of the template argument list with ERROR_MARK_NODE. (push_template_decl_real): Pass pointer to check_for_bare_parameter_packs. Replace parameter packs not at the end of the template parameter list with ERROR_MARK_NODE. (convert_template_argument): Be more careful about using DECL_NAME on only declarations. (unify): Can't unify against ERROR_MARK_NODE. * semantics.c (finish_cond): Pass pointer to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Pass pointer to check_for_bare_parameter_packs, and call it before we put the condition into the statement. (finish_mem_initializers): Pass pointer to check_for_bare_parameter_packs. (finish_member_declaration): Ditto. * parser.c (cp_parser_base_clause): Ditto. 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> * testsuite/g++.dg/parser/crash36.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31439.C: New. * testsuite/g++.dg/cpp0x/pr32114.C: New. * testsuite/g++.dg/cpp0x/pr32115.C: New. * testsuite/g++.dg/cpp0x/pr32125.C: New. * testsuite/g++.dg/cpp0x/pr32126.C: New. * testsuite/g++.dg/cpp0x/pr32127.C: New. * testsuite/g++.dg/cpp0x/pr32128.C: New. * testsuite/g++.dg/cpp0x/pr32253.C: New. * testsuite/g++.dg/cpp0x/pr32566.C: New. * testsuite/g++.dg/cpp0x/pr31445.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31438.C: Ditto. * testsuite/g++.dg/cpp0x/variadic81.C: Ditto. * testsuite/g++.dg/cpp0x/pr31432.C: Ditto. * testsuite/g++.dg/cpp0x/pr31442.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/pr31439.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32114.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32115.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32127.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32128.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32253.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32566.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31432.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31442.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31445.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/parse/crash36.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32127
[Bug c++/32126] [4.3 regression] ICE with invalid definition of variadic template
--- Comment #2 from dgregor at gcc dot gnu dot org 2007-11-06 14:38 --- Subject: Bug 32126 Author: dgregor Date: Tue Nov 6 14:37:56 2007 New Revision: 129928 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129928 Log: 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> PR c++/31439 PR c++/32114 PR c++/32115 PR c++/32125 PR c++/32126 PR c++/32127 PR c++/32128 PR c++/32253 PR c++/32566 * typeck.c (check_return_expr): Pass address of retval to check_for_bare_parameter_packs. * class.c (build_base_field): Tolerate bases that have no layout due to errors. (end_of_base): Ditto. * tree.c (canonical_type_variant): Be careful with ERROR_MARK_NODE. * cp-tree.h (check_for_bare_parameter_packs): Now accepts a tree*. * pt.c (find_parameter_pack_data): Add set_packs_to_error field, which states whether parameter packs should be replaced with ERROR_MARK_NODE. (find_parameter_packs_r): Pass addresses to cp_walk_tree wherever possible. If set_packs_to_error is set true, replace the parameter pack with ERROR_MARK_NODE. Manage our own pointer sets. (uses_parameter_packs): Don't set parameter packs to ERROR_MARK_NODE. (check_for_bare_parameter_packs): Now takes a pointer to a tree, which may be modified (if it is a parameter pack). Instructs find_parameter_packs_r to replace parameter packs with ERROR_MARK_NODE (so that they won't cause errors later on). (process_template_parm): Pass pointer to check_for_bare_parameter_packs. (process_partial_specialization): Replace pack expansions before the end of the template argument list with ERROR_MARK_NODE. (push_template_decl_real): Pass pointer to check_for_bare_parameter_packs. Replace parameter packs not at the end of the template parameter list with ERROR_MARK_NODE. (convert_template_argument): Be more careful about using DECL_NAME on only declarations. (unify): Can't unify against ERROR_MARK_NODE. * semantics.c (finish_cond): Pass pointer to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Pass pointer to check_for_bare_parameter_packs, and call it before we put the condition into the statement. (finish_mem_initializers): Pass pointer to check_for_bare_parameter_packs. (finish_member_declaration): Ditto. * parser.c (cp_parser_base_clause): Ditto. 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> * testsuite/g++.dg/parser/crash36.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31439.C: New. * testsuite/g++.dg/cpp0x/pr32114.C: New. * testsuite/g++.dg/cpp0x/pr32115.C: New. * testsuite/g++.dg/cpp0x/pr32125.C: New. * testsuite/g++.dg/cpp0x/pr32126.C: New. * testsuite/g++.dg/cpp0x/pr32127.C: New. * testsuite/g++.dg/cpp0x/pr32128.C: New. * testsuite/g++.dg/cpp0x/pr32253.C: New. * testsuite/g++.dg/cpp0x/pr32566.C: New. * testsuite/g++.dg/cpp0x/pr31445.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31438.C: Ditto. * testsuite/g++.dg/cpp0x/variadic81.C: Ditto. * testsuite/g++.dg/cpp0x/pr31432.C: Ditto. * testsuite/g++.dg/cpp0x/pr31442.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/pr31439.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32114.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32115.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32127.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32128.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32253.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32566.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31432.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31442.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31445.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/parse/crash36.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32126
[Bug c++/31439] [4.3 regression] ICE with variadic template and broken specialization
--- Comment #1 from dgregor at gcc dot gnu dot org 2007-11-06 14:38 --- Subject: Bug 31439 Author: dgregor Date: Tue Nov 6 14:37:56 2007 New Revision: 129928 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129928 Log: 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> PR c++/31439 PR c++/32114 PR c++/32115 PR c++/32125 PR c++/32126 PR c++/32127 PR c++/32128 PR c++/32253 PR c++/32566 * typeck.c (check_return_expr): Pass address of retval to check_for_bare_parameter_packs. * class.c (build_base_field): Tolerate bases that have no layout due to errors. (end_of_base): Ditto. * tree.c (canonical_type_variant): Be careful with ERROR_MARK_NODE. * cp-tree.h (check_for_bare_parameter_packs): Now accepts a tree*. * pt.c (find_parameter_pack_data): Add set_packs_to_error field, which states whether parameter packs should be replaced with ERROR_MARK_NODE. (find_parameter_packs_r): Pass addresses to cp_walk_tree wherever possible. If set_packs_to_error is set true, replace the parameter pack with ERROR_MARK_NODE. Manage our own pointer sets. (uses_parameter_packs): Don't set parameter packs to ERROR_MARK_NODE. (check_for_bare_parameter_packs): Now takes a pointer to a tree, which may be modified (if it is a parameter pack). Instructs find_parameter_packs_r to replace parameter packs with ERROR_MARK_NODE (so that they won't cause errors later on). (process_template_parm): Pass pointer to check_for_bare_parameter_packs. (process_partial_specialization): Replace pack expansions before the end of the template argument list with ERROR_MARK_NODE. (push_template_decl_real): Pass pointer to check_for_bare_parameter_packs. Replace parameter packs not at the end of the template parameter list with ERROR_MARK_NODE. (convert_template_argument): Be more careful about using DECL_NAME on only declarations. (unify): Can't unify against ERROR_MARK_NODE. * semantics.c (finish_cond): Pass pointer to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Pass pointer to check_for_bare_parameter_packs, and call it before we put the condition into the statement. (finish_mem_initializers): Pass pointer to check_for_bare_parameter_packs. (finish_member_declaration): Ditto. * parser.c (cp_parser_base_clause): Ditto. 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> * testsuite/g++.dg/parser/crash36.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31439.C: New. * testsuite/g++.dg/cpp0x/pr32114.C: New. * testsuite/g++.dg/cpp0x/pr32115.C: New. * testsuite/g++.dg/cpp0x/pr32125.C: New. * testsuite/g++.dg/cpp0x/pr32126.C: New. * testsuite/g++.dg/cpp0x/pr32127.C: New. * testsuite/g++.dg/cpp0x/pr32128.C: New. * testsuite/g++.dg/cpp0x/pr32253.C: New. * testsuite/g++.dg/cpp0x/pr32566.C: New. * testsuite/g++.dg/cpp0x/pr31445.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31438.C: Ditto. * testsuite/g++.dg/cpp0x/variadic81.C: Ditto. * testsuite/g++.dg/cpp0x/pr31432.C: Ditto. * testsuite/g++.dg/cpp0x/pr31442.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/pr31439.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32114.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32115.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32127.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32128.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32253.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32566.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31432.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31442.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31445.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/parse/crash36.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31439
[Bug c++/32125] [4.3 regression] ICE with invalid specialization of variadic template
--- Comment #3 from dgregor at gcc dot gnu dot org 2007-11-06 14:38 --- Subject: Bug 32125 Author: dgregor Date: Tue Nov 6 14:37:56 2007 New Revision: 129928 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129928 Log: 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> PR c++/31439 PR c++/32114 PR c++/32115 PR c++/32125 PR c++/32126 PR c++/32127 PR c++/32128 PR c++/32253 PR c++/32566 * typeck.c (check_return_expr): Pass address of retval to check_for_bare_parameter_packs. * class.c (build_base_field): Tolerate bases that have no layout due to errors. (end_of_base): Ditto. * tree.c (canonical_type_variant): Be careful with ERROR_MARK_NODE. * cp-tree.h (check_for_bare_parameter_packs): Now accepts a tree*. * pt.c (find_parameter_pack_data): Add set_packs_to_error field, which states whether parameter packs should be replaced with ERROR_MARK_NODE. (find_parameter_packs_r): Pass addresses to cp_walk_tree wherever possible. If set_packs_to_error is set true, replace the parameter pack with ERROR_MARK_NODE. Manage our own pointer sets. (uses_parameter_packs): Don't set parameter packs to ERROR_MARK_NODE. (check_for_bare_parameter_packs): Now takes a pointer to a tree, which may be modified (if it is a parameter pack). Instructs find_parameter_packs_r to replace parameter packs with ERROR_MARK_NODE (so that they won't cause errors later on). (process_template_parm): Pass pointer to check_for_bare_parameter_packs. (process_partial_specialization): Replace pack expansions before the end of the template argument list with ERROR_MARK_NODE. (push_template_decl_real): Pass pointer to check_for_bare_parameter_packs. Replace parameter packs not at the end of the template parameter list with ERROR_MARK_NODE. (convert_template_argument): Be more careful about using DECL_NAME on only declarations. (unify): Can't unify against ERROR_MARK_NODE. * semantics.c (finish_cond): Pass pointer to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Pass pointer to check_for_bare_parameter_packs, and call it before we put the condition into the statement. (finish_mem_initializers): Pass pointer to check_for_bare_parameter_packs. (finish_member_declaration): Ditto. * parser.c (cp_parser_base_clause): Ditto. 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> * testsuite/g++.dg/parser/crash36.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31439.C: New. * testsuite/g++.dg/cpp0x/pr32114.C: New. * testsuite/g++.dg/cpp0x/pr32115.C: New. * testsuite/g++.dg/cpp0x/pr32125.C: New. * testsuite/g++.dg/cpp0x/pr32126.C: New. * testsuite/g++.dg/cpp0x/pr32127.C: New. * testsuite/g++.dg/cpp0x/pr32128.C: New. * testsuite/g++.dg/cpp0x/pr32253.C: New. * testsuite/g++.dg/cpp0x/pr32566.C: New. * testsuite/g++.dg/cpp0x/pr31445.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31438.C: Ditto. * testsuite/g++.dg/cpp0x/variadic81.C: Ditto. * testsuite/g++.dg/cpp0x/pr31432.C: Ditto. * testsuite/g++.dg/cpp0x/pr31442.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/pr31439.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32114.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32115.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32127.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32128.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32253.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32566.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31432.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31442.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31445.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/parse/crash36.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32125
[Bug c++/32253] [4.3 regression] ICE with variadic templates and function pointers
--- Comment #1 from dgregor at gcc dot gnu dot org 2007-11-06 14:38 --- Subject: Bug 32253 Author: dgregor Date: Tue Nov 6 14:37:56 2007 New Revision: 129928 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129928 Log: 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> PR c++/31439 PR c++/32114 PR c++/32115 PR c++/32125 PR c++/32126 PR c++/32127 PR c++/32128 PR c++/32253 PR c++/32566 * typeck.c (check_return_expr): Pass address of retval to check_for_bare_parameter_packs. * class.c (build_base_field): Tolerate bases that have no layout due to errors. (end_of_base): Ditto. * tree.c (canonical_type_variant): Be careful with ERROR_MARK_NODE. * cp-tree.h (check_for_bare_parameter_packs): Now accepts a tree*. * pt.c (find_parameter_pack_data): Add set_packs_to_error field, which states whether parameter packs should be replaced with ERROR_MARK_NODE. (find_parameter_packs_r): Pass addresses to cp_walk_tree wherever possible. If set_packs_to_error is set true, replace the parameter pack with ERROR_MARK_NODE. Manage our own pointer sets. (uses_parameter_packs): Don't set parameter packs to ERROR_MARK_NODE. (check_for_bare_parameter_packs): Now takes a pointer to a tree, which may be modified (if it is a parameter pack). Instructs find_parameter_packs_r to replace parameter packs with ERROR_MARK_NODE (so that they won't cause errors later on). (process_template_parm): Pass pointer to check_for_bare_parameter_packs. (process_partial_specialization): Replace pack expansions before the end of the template argument list with ERROR_MARK_NODE. (push_template_decl_real): Pass pointer to check_for_bare_parameter_packs. Replace parameter packs not at the end of the template parameter list with ERROR_MARK_NODE. (convert_template_argument): Be more careful about using DECL_NAME on only declarations. (unify): Can't unify against ERROR_MARK_NODE. * semantics.c (finish_cond): Pass pointer to check_for_bare_parameter_packs. (finish_expr_stmt): Ditto. (finish_for_expr): Ditto. (finish_switch_cond): Pass pointer to check_for_bare_parameter_packs, and call it before we put the condition into the statement. (finish_mem_initializers): Pass pointer to check_for_bare_parameter_packs. (finish_member_declaration): Ditto. * parser.c (cp_parser_base_clause): Ditto. 2007-11-06 Douglas Gregor <[EMAIL PROTECTED]> * testsuite/g++.dg/parser/crash36.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31439.C: New. * testsuite/g++.dg/cpp0x/pr32114.C: New. * testsuite/g++.dg/cpp0x/pr32115.C: New. * testsuite/g++.dg/cpp0x/pr32125.C: New. * testsuite/g++.dg/cpp0x/pr32126.C: New. * testsuite/g++.dg/cpp0x/pr32127.C: New. * testsuite/g++.dg/cpp0x/pr32128.C: New. * testsuite/g++.dg/cpp0x/pr32253.C: New. * testsuite/g++.dg/cpp0x/pr32566.C: New. * testsuite/g++.dg/cpp0x/pr31445.C: Tweak expected errors. * testsuite/g++.dg/cpp0x/pr31438.C: Ditto. * testsuite/g++.dg/cpp0x/variadic81.C: Ditto. * testsuite/g++.dg/cpp0x/pr31432.C: Ditto. * testsuite/g++.dg/cpp0x/pr31442.C: Ditto. Added: trunk/gcc/testsuite/g++.dg/cpp0x/pr31439.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32114.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32115.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32125.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32126.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32127.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32128.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32253.C trunk/gcc/testsuite/g++.dg/cpp0x/pr32566.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/class.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/pr31432.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31438.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31442.C trunk/gcc/testsuite/g++.dg/cpp0x/pr31445.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic81.C trunk/gcc/testsuite/g++.dg/parse/crash36.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32253
[Bug rtl-optimization/33737] [4.3 Regression] verify_flow_info failed: Wrong probability of edge 94->1 -6651
--- Comment #10 from ebotcazou at gcc dot gnu dot org 2007-11-06 15:14 --- Things start to go awry much earlier though, at the end of the first VRP pass when jumps are threaded. More specifically in update_bb_profile_for_threading if (prob > taken_edge->probability) { if (dump_file) fprintf (dump_file, "Jump threading proved probability of edge " "%i->%i too small (it is %i, should be %i).\n", taken_edge->src->index, taken_edge->dest->index, taken_edge->probability, prob); prob = taken_edge->probability; } is triggered a bunch times. Now, that it is triggered means that the local update of block frequency doesn't work and a global update would be needed. So we end up with a bunch of predecessors of the EXIT block with frequency greater than BB_FREQ_MAX / 2, which doesn't make much sense. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33737
[Bug c++/33871] [4.3 Regression] typeinfo name referenced in ... defined in discarded section
--- Comment #45 from jakub at gcc dot gnu dot org 2007-11-06 15:14 --- Fixed. -- jakub at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33871
[Bug tree-optimization/31976] [4.3 Regression] ICE in ssa_operand_alloc, at tree-ssa-operands.c:487 with -O3
--- Comment #10 from amacleod at redhat dot com 2007-11-06 15:28 --- Partitioning doesn't really seem to be the root problem. looking at testcase-min.i: There are about 820 SFTs associated with the giant structure, and we decide that they *all* can be affected by the memory access and try to issue VOPS for them. An int is loaded via MEM[base: Hoopster_ptr_17, offset: 3552]. In get_tmr_operands(), we always call add_virtual_operands() with an offset of 0 and a size of -1. This seems wrong. we should be able to use the size of the load and offset information to figure out the right SFT(s) to add. Instead, because the size is -1, we simply include all of them. Is this offset of 0 and size of -1 to paper over something else? I understand there might be issues trying to get the right offset and base calculations under some conditions... -- amacleod at redhat dot com changed: What|Removed |Added Last reconfirmed|2007-08-14 08:44:16 |2007-11-06 15:28:16 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31976
[Bug tree-optimization/34005] New: [4.3 Regression] ICE: verify_ssa failed (expected an SSA_NAME object)
With trunk from 20071105: [EMAIL PROTECTED]:~$ /usr/lib/gcc-snapshot/bin/gcc -c -O2 -ftree-vectorize vnc-Unwrap.c vnc-Unwrap.c: In function 'XdmcpUnwrap': vnc-Unwrap.c:4: error: expected an SSA_NAME object vnc-Unwrap.c:4: error: in statement base_off.31_46 = iftmp.32; vnc-Unwrap.c:4: internal compiler error: verify_ssa failed This looks similar to PR33680 on the outset but appears to be different (only happens on SPARC, Jakub's patch from that PR doesn't help in this case and when I change the testcase slightly I get a different ICE). -- Summary: [4.3 Regression] ICE: verify_ssa failed (expected an SSA_NAME object) Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tbm at cyrius dot com GCC target triplet: sparc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34005
[Bug tree-optimization/34005] [4.3 Regression] ICE: verify_ssa failed (expected an SSA_NAME object)
--- Comment #1 from tbm at cyrius dot com 2007-11-06 15:52 --- /* Testcase by Martin Michlmayr <[EMAIL PROTECTED]> */ void XdmcpUnwrap (unsigned char *input, unsigned char *output, int k) { int i; unsigned char blocks[8][8]; for (i = 0; i < 8; i++) blocks[k][i] = input[i]; k = (k == 0) ? 1 : 0; for (i = 0; i < 8; i++) output[i] = blocks[k][i]; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34005
[Bug tree-optimization/34005] [4.3 Regression] ICE: verify_ssa failed (expected an SSA_NAME object)
--- Comment #2 from tbm at cyrius dot com 2007-11-06 15:52 --- When I change the testcase slightly I get a difference ICE: [EMAIL PROTECTED]:~$ /usr/lib/gcc-snapshot/bin/gcc -c -O2 -ftree-vectorize vnc-Unwrap2.c vnc-Unwrap2.c: In function 'XdmcpUnwrap': vnc-Unwrap2.c:4: error: control flow in the middle of basic block 3 vnc-Unwrap2.c:4: error: control flow in the middle of basic block 3 vnc-Unwrap2.c:4: error: control flow in the middle of basic block 3 vnc-Unwrap2.c:4: error: control flow in the middle of basic block 3 vnc-Unwrap2.c:4: error: control flow in the middle of basic block 3 vnc-Unwrap2.c:4: error: control flow in the middle of basic block 3 vnc-Unwrap2.c:4: internal compiler error: verify_flow_info failed /* Testcase by Martin Michlmayr <[EMAIL PROTECTED]> */ void XdmcpUnwrap (unsigned char *output, int k) { int i; unsigned char blocks[2][8]; k = (k == 0) ? 1 : 0; for (i = 0; i < 8; i++) output[i] = blocks[k][i]; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34005
[Bug c++/32256] [4.0/4.1/4.2/4.3 regression] pragma system_header doesn't suppress warnings in tree-cfg
--- Comment #6 from tromey at gcc dot gnu dot org 2007-11-06 15:57 --- Subject: Bug 32256 Author: tromey Date: Tue Nov 6 15:57:02 2007 New Revision: 129936 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129936 Log: gcc PR c++/32256, PR c++/32368: * function.c (saved_in_system_header): New global. (push_cfun): Save in_system_header. (pop_cfun): Restore in_system_header. (push_struct_function): Save in_system_header. gcc/testsuite PR c++/32368: * g++.dg/warn/pragma-system_header3.h: New. * g++.dg/warn/pragma-system_header3.C: New. PR c++/32256: * g++.dg/warn/pragma-system_header4.C: New. * g++.dg/warn/pragma-system_header4.h: New. Added: trunk/gcc/testsuite/g++.dg/warn/pragma-system_header3.C trunk/gcc/testsuite/g++.dg/warn/pragma-system_header3.h trunk/gcc/testsuite/g++.dg/warn/pragma-system_header4.C trunk/gcc/testsuite/g++.dg/warn/pragma-system_header4.h Modified: trunk/gcc/ChangeLog trunk/gcc/function.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32256
[Bug c++/32368] warnings from system headers not suppressed.
--- Comment #5 from tromey at gcc dot gnu dot org 2007-11-06 15:57 --- Subject: Bug 32368 Author: tromey Date: Tue Nov 6 15:57:02 2007 New Revision: 129936 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129936 Log: gcc PR c++/32256, PR c++/32368: * function.c (saved_in_system_header): New global. (push_cfun): Save in_system_header. (pop_cfun): Restore in_system_header. (push_struct_function): Save in_system_header. gcc/testsuite PR c++/32368: * g++.dg/warn/pragma-system_header3.h: New. * g++.dg/warn/pragma-system_header3.C: New. PR c++/32256: * g++.dg/warn/pragma-system_header4.C: New. * g++.dg/warn/pragma-system_header4.h: New. Added: trunk/gcc/testsuite/g++.dg/warn/pragma-system_header3.C trunk/gcc/testsuite/g++.dg/warn/pragma-system_header3.h trunk/gcc/testsuite/g++.dg/warn/pragma-system_header4.C trunk/gcc/testsuite/g++.dg/warn/pragma-system_header4.h Modified: trunk/gcc/ChangeLog trunk/gcc/function.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32368
[Bug c++/32256] [4.0/4.1/4.2 regression] pragma system_header doesn't suppress warnings in tree-cfg
--- Comment #7 from tromey at gcc dot gnu dot org 2007-11-06 16:01 --- Fixed on trunk. -- tromey at gcc dot gnu dot org changed: What|Removed |Added Known to work|3.4.4 |3.4.4 4.3.0 Summary|[4.0/4.1/4.2/4.3 regression]|[4.0/4.1/4.2 regression] |pragma system_header doesn't|pragma system_header doesn't |suppress warnings in tree- |suppress warnings in tree- |cfg |cfg Target Milestone|4.1.3 |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32256
[Bug c++/32368] warnings from system headers not suppressed.
--- Comment #6 from tromey at gcc dot gnu dot org 2007-11-06 16:01 --- Fixed on trunk. -- tromey at gcc dot gnu dot org changed: What|Removed |Added Known to work||4.3.0 Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32368
[Bug fortran/34006] New: vectorization with 64-bit integers
Hi, the code (see below) compiled with gfortran -O2 -Wall -fdefault-integer-8 -ftree-vectorize a.f gives a complete garbage, since compiler changing the order of execution inside the loop. = DIMENSION Nvec(10),iVEC(10) do i=1,10 Nvec(i)=i enddo call Zbase(Nvec,iVec,10) print *,iVec end SUBROUTINE ZBASE(NVEC,IVEC,NCLASS) DIMENSION NVEC(NCLASS),IVEC(NCLASS) IVEC(1) = 1 DO 100 ICLASS = 2,NCLASS IVEC(ICLASS) = IVEC(ICLASS-1)+NVEC(ICLASS-1) 100 CONTINUE RETURN END = Removing -ftree-vectorize, or -fdefault-integer-8, or changing loop to 'Do 100 ICLASS= 2, 10' solves the problem. Best Regards, Valera. -- Summary: vectorization with 64-bit integers Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: major Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: valera dot veryazov at teokem dot lu dot se GCC host triplet: Linux_x86-64 CentOS http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34006
[Bug libfortran/33985] access="stream",form="unformatted" doesn't buffer
--- Comment #6 from dominiq at lps dot ens dot fr 2007-11-06 16:17 --- > Ans a simple patch to fix it: I have applied the patch, but the test case fails if teststream does not exist (passes if the file exists). [karma] f90/bug% gfc streamtest_7.f90 [karma] f90/bug% a.out [karma] f90/bug% a.out At line 15 of file streamtest_7.f90 (unit = 10, file = 'teststream') Fortran runtime error: End of file [karma] f90/bug% a.out [karma] f90/bug% a.out At line 15 of file streamtest_7.f90 (unit = 10, file = 'teststream') Fortran runtime error: End of file [karma] f90/bug% rm teststream remove teststream? y [karma] f90/bug% rm teststream rm: teststream: No such file or directory [karma] f90/bug% a.out At line 15 of file streamtest_7.f90 (unit = 10, file = 'teststream') Fortran runtime error: End of file [karma] f90/bug% rm teststream remove teststream? y [karma] f90/bug% a.out At line 15 of file streamtest_7.f90 (unit = 10, file = 'teststream') Fortran runtime error: End of file Since I did not do this test without the patch, I cannot say if this is due to the patch or if it was there before it. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33985
[Bug c++/32253] [4.3 regression] ICE with variadic templates and function pointers
--- Comment #3 from fang at csl dot cornell dot edu 2007-11-06 16:43 --- "Sieben auf einen Streich!" (9 really, but who's counting?) :D -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32253
[Bug bootstrap/34007] New: [4.3 Regression] "Error: Branch out of range" compiling fold-const.c in stage 1
Bootstrap is broken on mips-linux because binutils shows "Error: Branch out of range" while compiling fold-const.c. This happens during stage 1. Revisions 129937 and 129900 fail. I was able to bootstrap on 20071030 (revision 127646). My binutils is 2.18.1~cvs20071027-1 (2.18 branch from October 27). (sid)[EMAIL PROTECTED]:~/build/gcc-snapshot-20071106/build/gcc$ gcc -c -g -O -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common -DHAVE_CONFIG_H -I. -I. -I../../src/gcc -I../../src/gcc/. -I../../src/gcc/../include -I../../src/gcc/../libcpp/include -I../../src/gcc/../libdecnumber -I../../src/gcc/../libdecnumber/dpd -I../libdecnumber../../src/gcc/fold-const.c -o fold-const.o /tmp/ccM69d3d.s: Assembler messages: /tmp/ccM69d3d.s:108768: Error: Branch out of range -- Summary: [4.3 Regression] "Error: Branch out of range" compiling fold-const.c in stage 1 Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tbm at cyrius dot com GCC target triplet: mips-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34007
[Bug middle-end/33713] [4.3 Regression] can't find a register in class 'GENERAL_REGS' while reloading 'asm'
--- Comment #6 from bonzini at gnu dot org 2007-11-06 17:05 --- I think P1 is a little too much since this requires -fforce-addr. Anyway, here are my findings and thoughts: 1) reduced testcase: void oc_frag_recon_inter2_mmx(unsigned char *_dst,int _dst_ystride, const unsigned char *_src1,int _src1_ystride,const unsigned char *_src2, int _src2_ystride,const int *_residue) { long a; __asm__ __volatile__( "# %[src2] %[src1_ystride] %[src1] %[a] %[src2_ystride] \n\t" "# %[residue] %[dst_ystride] %[dst]\n\t" :[a]"=&a"(a),[dst]"+r"(_dst),[residue]"+r"(_residue), [src1]"+r"(_src1),[src2]"+r"(_src2) :[dst_ystride]"m"((long)_dst_ystride), [src1_ystride]"m"((long)_src1_ystride), [src2_ystride]"m"((long)_src2_ystride) ); } Note that the testcase is *relying on GCC to undo flag_force_addr!* In fact, the author used a "m" constraint exactly because they knew they would run out of registers: on a less starved machine, one would have used "r"! This makes me wonder if we shouldn't kill -fforce-addr just like we disposed of -fforce-mem. Let's go on anyway and try to fix it. 2) one of the problems is that at -O we do not run fwprop. We probably want to. 3) Here is a hack that I thought would fix it. Index: ../../peak-gcc-src/gcc/stmt.c === --- ../../peak-gcc-src/gcc/stmt.c (revision 129768) +++ ../../peak-gcc-src/gcc/stmt.c (working copy) @@ -660,6 +660,7 @@ expand_asm_operands (tree string, tree o const char **constraints = alloca ((noutputs + ninputs) * sizeof (const char *)); int old_generating_concat_p = generating_concat_p; + int save_force_addr = flag_force_addr; /* An ASM with no outputs needs to be treated as volatile, for now. */ if (noutputs == 0) @@ -780,6 +781,7 @@ expand_asm_operands (tree string, tree o /* Second pass evaluates arguments. */ ninout = 0; + flag_force_addr = false; for (i = 0, tail = outputs; tail; tail = TREE_CHAIN (tail), i++) { tree val = TREE_VALUE (tail); @@ -1072,6 +1074,8 @@ expand_asm_operands (tree string, tree o emit_insn (body); } + flag_force_addr = save_force_addr; + /* For any outputs that needed reloading into registers, spill them back to where they belong. */ for (i = 0; i < noutputs; ++i) The idea is that in an asm, the author already has full control of memory modes. If they want to use a simple one, they can (using "r"). Otherwise, they don't want -fforce-addr (assuming somebody wants it...). It doesn't work, actually, because CSE not only does not do the propagation in 4.3; with -fforce-addr, it undoes it!!! So, here are the three possibilities: a) temporarily set flag_force_addr to false during CSE (in addition to the above stmt.c hunks, and enabling fwprop at -O). b) make flag_force_addr effective only during expansion (in addition to the above stmt.c hunks, and enabling fwprop at -O). With tree level optimization, few RTL passes modify mems (CSE, fwprop), and they do so because of addressing mode selection. So none of them should benefit of -fforce-addr, even though only CSE is affected now. c) disable flag_force_addr completely (doesn't require anything else, we might still want to enable fwprop at -O?) My preference is c, b, a. Anybody else? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33713
[Bug bootstrap/34007] [4.3 Regression] "Error: Branch out of range" compiling fold-const.c in stage 1
--- Comment #1 from daney at gcc dot gnu dot org 2007-11-06 17:08 --- Perhaps your bootstrap compiler is faulty. It would seem that no code from the compiler-being-built is run at this point. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34007
[Bug c++/33604] [4.3 Regression] Revision 119502 causes significantly slower results with 4.3 compared to 4.2
--- Comment #7 from bonzini at gnu dot org 2007-11-06 17:10 --- I would also like to know the status, because I would like to get rid of -fforce-addr. :-) -- bonzini at gnu dot org changed: What|Removed |Added CC||bonzini at gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33604
[Bug bootstrap/34007] [4.3 Regression] "Error: Branch out of range" compiling fold-const.c in stage 1
--- Comment #2 from tbm at cyrius dot com 2007-11-06 17:11 --- (In reply to comment #1) > Perhaps your bootstrap compiler is faulty. > > It would seem that no code from the compiler-being-built is run at this point. I'm using 4.2.3 20071014 to bootstrap. So you don't see this problem? Anyway, I can put the assembler file somewhere if that's helpful. I need to go shopping right now, but I'll try to compile with 4.3 in a bit. (sid)[EMAIL PROTECTED]:~/build/gcc-snapshot-20071106/build/gcc$ as -EB -O2 -g -no-mdebug -mabi=32 -KPIC -o fold-const.o fold-const.s fold-const.s: Assembler messages: fold-const.s:108768: Error: Branch out of range (sid)[EMAIL PROTECTED]:~/build/gcc-snapshot-20071106/build/gcc$ ls -l fold-const.s -rw-r--r-- 1 tbm 1000 6132019 Nov 6 17:08 fold-const.s (sid)[EMAIL PROTECTED]:~/build/gcc-snapshot-20071106/build/gcc$ -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34007
[Bug bootstrap/34007] [4.3 Regression] "Error: Branch out of range" compiling fold-const.c in stage 1
--- Comment #3 from tbm at cyrius dot com 2007-11-06 17:14 --- But yeah, I guess you're right that I shouldn't have marked this a "4.3 regression" when 4.2 is producing bad code. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34007
[Bug bootstrap/34007] [4.3 Regression] "Error: Branch out of range" compiling fold-const.c in stage 1
--- Comment #4 from daney at gcc dot gnu dot org 2007-11-06 17:17 --- This is my last known good mips-linux-gnu build: http://gcc.gnu.org/ml/gcc-testresults/2007-10/msg01186.html On mipsel-linux-gnu I am bootstrapping almost daily without problems. Also last night (with an current but unremembered SVN version) I was able to build mips64-linux-gnu with the default debian-etch gcc (4.1) on my O2. None of these are exactly what you are doing, but somewhat similar. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34007
[Bug bootstrap/34007] [4.3 Regression] "Error: Branch out of range" compiling fold-const.c in stage 1
--- Comment #5 from tbm at cyrius dot com 2007-11-06 17:18 --- Compiling the file with 4.3.0 20071030 works. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34007
[Bug bootstrap/34007] [4.2 Regression] "Error: Branch out of range" compiling fold-const.c in stage 1
--- Comment #6 from tbm at cyrius dot com 2007-11-06 17:23 --- and 4.1.3 20071019 works too. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34007
[Bug fortran/33997] Generic interface: Rejects non-ambiguous interface as ambiguous
--- Comment #6 from jv244 at cam dot ac dot uk 2007-11-06 17:26 --- > I had come to the same conclusion overnight - it is odd that procedures are > not > distinguished from non-procedures but there we are there is nothing odd about that PROGRAM TEST INTEGER I CALL F(I) END PROGRAM TEST INTEGER FUNCTION I() END FUNCTION how can the compiler know at compile time that 'I' is a variable or a function ? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33997
[Bug target/30961] [4.1/4.2/4.3 regression] redundant reg/mem stores/moves
--- Comment #34 from hjl at lucon dot org 2007-11-06 17:30 --- An updated patch is posted at http://gcc.gnu.org/ml/gcc-patches/2007-11/msg00273.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30961
[Bug fortran/34006] vectorization with 64-bit integers
--- Comment #1 from kargl at gcc dot gnu dot org 2007-11-06 17:45 --- Works for me on trunk. Doesn't work in 4.2. troutmask:sgk[217] gfc4x -o z -O2 -ftree-vectorize -fdefault-integer-8 z.f troutmask:sgk[218] ./z 1 2 4 7 11 16 22 29 37 46 troutmask:sgk[219] gfc4x -o z -O2 -ftree-vectorize z.f troutmask:sgk[220] ./z 1 2 4 7 11 16 22 29 37 46 troutmask:sgk[221] gfc -o z -O2 -ftree-vectorize z.f troutmask:sgk[222] ./z 1 2 4 7 11 16 22 29 37 46 troutmask:sgk[223] gfc -o z -O2 -ftree-vectorize -fdefault-integer-8 z.f troutmask:sgk[224] ./z 1 2 4 140737488348667 140737488348671 5 11 8601384231 8601384239 9 IMHO, one should avoid -fdefault-integer-8 because it typically doesn't do what one thinks! -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34006
[Bug c++/32256] [4.0/4.1/4.2 regression] pragma system_header doesn't suppress warnings in tree-cfg
--- Comment #8 from pcarlini at suse dot de 2007-11-06 17:24 --- Thanks a lot, Tom! -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32256
[Bug target/34007] [4.2 Regression] "Error: Branch out of range" compiling fold-const.c in stage 1
--- Comment #7 from tbm at cyrius dot com 2007-11-06 17:58 --- 4.1 and 4.3 work, 4.2 on mipsel also works. Only 4.2 on mips fails. I'll try the latest 4.2 from SVN now. -- tbm at cyrius dot com changed: What|Removed |Added Component|bootstrap |target http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34007
[Bug tree-optimization/34005] [4.3 Regression] ICE: verify_ssa failed (expected an SSA_NAME object)
--- Comment #3 from dorit at gcc dot gnu dot org 2007-11-06 18:11 --- I don't think these are related to PR33680. Sounds like we may be generating a stmt with a cond_expr at the rhs. The data-reference analysis results in: base_address: &blocks offset from base address: k_4(D) == 0 ? 8 : 0 constant offset from base address: 0 step: 1 aligned to: 8 base_object: blocks[0][0] symbol tag: blocks (Note the cond_expr used to represent the offset). We probably need to call the gimplifier (if we don't already) and also apply Zdenek's patch that allows gimplifying rhs cond_exprs - http://gcc.gnu.org/ml/gcc-patches/2007-07/msg02052.html. -- dorit at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2007-11-06 18:11:35 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34005
[Bug target/34007] [4.2 Regression] "Error: Branch out of range" compiling fold-const.c in stage 1
--- Comment #8 from tbm at cyrius dot com 2007-11-06 18:41 --- 4.2.3 20071106 from SVN works, so I guess this bug can be closed. -- tbm at cyrius dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34007
[Bug tree-optimization/33826] [4.1/4.2/4.3 Regression] GCC generates wrong code for infinitely recursive functions
--- Comment #5 from sam at rfc1149 dot net 2007-11-06 18:50 --- Eric: do you mean that tail recursive calls are not allowed with -fstack-check? With the current trunk, the code is ok with -O3 (tail-recursive call) and still buggy with -O ("rep ret" on x86). This is even stranger :) -- sam at rfc1149 dot net changed: What|Removed |Added CC||sam at rfc1149 dot net http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33826
[Bug rtl-optimization/33822] [4.1/4.2/4.3 Regression] -g -O -mstrict-align causes an ICE in set_variable_part,
--- Comment #2 from ebotcazou at gcc dot gnu dot org 2007-11-06 18:51 --- Yep. Let's call it rtl-optimization since it's the var tracking pass. -- ebotcazou at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Component|debug |rtl-optimization Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2007-11-06 18:51:30 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33822
[Bug bootstrap/34003] [4.2/4.3 Regression] gcc 4.3.0 unable to bootstrap itself; Unsatisfied symbols: ggc_free
--- Comment #8 from pinskia at gcc dot gnu dot org 2007-11-06 18:52 --- Confirmed. Caused by: 2006-02-18 Richard Sandiford <[EMAIL PROTECTED]> -- pinskia at gcc dot gnu dot org changed: What|Removed |Added CC||rsandifo at sources dot ||redhat dot com Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 GCC build triplet|hppa2.0w-hp-hpux11.00 | GCC host triplet|hppa2.0w-hp-hpux11.00 | GCC target triplet|hppa2.0w-hp-hpux11.00 | Last reconfirmed|-00-00 00:00:00 |2007-11-06 18:52:20 date|| Summary|[4.3 Regression] gcc 4.3.0 |[4.2/4.3 Regression] gcc |unable to bootstrap itself; |4.3.0 unable to bootstrap |Unsatisfied symbols:|itself; Unsatisfied symbols: |ggc_free|ggc_free Target Milestone|4.3.0 |4.2.3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34003
[Bug c++/33604] [4.3 Regression] Revision 119502 causes significantly slower results with 4.3 compared to 4.2
--- Comment #8 from michael dot olbrich at gmx dot net 2007-11-06 18:55 --- A rerun with Debian's latest versions: g++-4.2 (GCC) 4.2.3 20071014 (prerelease) (Debian 4.2.2-3) g++-4.3 (Debian 4.3-20071020-1) 4.3.0 20071020 (experimental) [trunk revision 129510] 4.2 4.3 | --- 21.2s 19.4s |-O2 4.4s 15.9s |-O3 4.4s 8.5s |-O3 -fforce-addr This is more or less the same as my original results, but very different from Richard Guenther's results. Very strange. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33604
[Bug tree-optimization/34005] [4.3 Regression] ICE: verify_ssa failed (expected an SSA_NAME object)
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added CC||pinskia at gcc dot gnu dot ||org Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34005
[Bug tree-optimization/34005] [4.3 Regression] ICE: verify_ssa failed (expected an SSA_NAME object)
--- Comment #4 from dorit at gcc dot gnu dot org 2007-11-06 18:29 --- > We probably need to call the gimplifier (if we don't already) and also apply > Zdenek's patch that allows gimplifying rhs cond_exprs - > http://gcc.gnu.org/ml/gcc-patches/2007-07/msg02052.html. Yep - I just tried applying Zdenek's patch to the gimplifier, and it indeed solves the ICE in both tests. I'll go back and propose this patch for mainline again. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34005
[Bug rtl-optimization/33822] [4.1/4.2/4.3 Regression] -g -O -mstrict-align causes an ICE in set_variable_part,
--- Comment #3 from ebotcazou at gcc dot gnu dot org 2007-11-06 19:07 --- Investigating. -- ebotcazou at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |ebotcazou at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2007-11-06 18:51:30 |2007-11-06 19:07:05 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33822
[Bug target/30961] [4.1/4.2/4.3 regression] redundant reg/mem stores/moves
--- Comment #35 from hjl at gcc dot gnu dot org 2007-11-06 19:19 --- Subject: Bug 30961 Author: hjl Date: Tue Nov 6 19:19:23 2007 New Revision: 129943 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129943 Log: gcc/ 2007-11-06 Ulrich Weigand <[EMAIL PROTECTED]> PR target/30961 * reload1.c (find_reloads): Also check in_reg when handling a simple move with an input reload and a destination of a hard register. gcc/testsuite/ 2007-11-06 H.J. Lu <[EMAIL PROTECTED]> PR target/30961 * gcc.target/i386/pr30961-1.c: New. Added: trunk/gcc/testsuite/gcc.target/i386/pr30961-1.c Modified: trunk/gcc/ChangeLog trunk/gcc/reload.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30961
[Bug tree-optimization/33826] [4.1/4.2/4.3 Regression] GCC generates wrong code for infinitely recursive functions
--- Comment #6 from ebotcazou at gcc dot gnu dot org 2007-11-06 19:04 --- > Eric: do you mean that tail recursive calls are not allowed with > -fstack-check? No, they are allowed. Optimizing the Ada testcase into an infinite loop is OK if you don't consume the stack. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33826
[Bug middle-end/33970] Missed optimization using unsigned char loop variable
--- Comment #10 from wvangulik at xs4all dot nl 2007-11-06 19:34 --- (In reply to comment #9) > > I think you will also find that if x is changed from ststic to auto the same > problem appears. > Ok, I tried to find the minimum test case. And it has nothing todo with static/volatile/inline etc. == int sub2(unsigned char); // external function void foo(void) { unsigned char x; for(x=0;x<128; x++) { //sub2(x); //x is becomes a int (16bit) sub2(x+1); //x is char (8bit) } } All is compiled using 4.1.2 and "avr-gcc -Wall -Os -mmcu=avr5 -S test.c" The output when compiling with "sub2(x)" = /* prologue: frame size=0 */ push r28 push r29 /* prologue end (size=2) */ ldi r28,lo8(0) ldi r29,hi8(0) .L2: mov r24,r28 ; << loads as a byte! call sub2 adiw r28,1 ; << increment as a int cpi r28,128 ; << compare as a int cpc r29,__zero_reg__ brne .L2 /* epilogue: frame size=0 */ pop r29 pop r28 ret The output when compiling with "sub2(x+1)" /* prologue: frame size=0 */ push r17 /* prologue end (size=1) */ ldi r17,lo8(0) .L2: subi r17,lo8(-(1)) mov r24,r17 call sub2 cpi r17,lo8(-128) brne .L2 /* epilogue: frame size=0 */ pop r17 ret === >From compiling with x as a int I got a sort of hint. When using x+1, x is actually loaded with 1 (and not zero). So i tried: == void foo(void) { unsigned char x; for(x=1;x<129; x++) sub2(x); } And it gives the assembler loop check as for the "sub(x+1)" variant of course the loop is now effectivley the same as "sub2(x+1)". But the the incrementing of x is now done after the call, so it proofs that this is not the problem. I also tried different loop lengths, thinking 128 is the nasty one, but it did not help. == /* prologue: frame size=0 */ push r17 /* prologue end (size=1) */ ldi r17,lo8(1) .L2: mov r24,r17 call sub2 subi r17,lo8(-(1)) cpi r17,lo8(-127) brne .L2 /* epilogue: frame size=0 */ pop r17 ret I am out of knowledge now, I do not know how to further debug GCC on this. Just hoping this will help someone to pinpoint the problem. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33970
[Bug c++/33501] [4.1/4.2/4.3 regression] Copy constructor assumed to exist for undefined class
--- Comment #3 from jakub at gcc dot gnu dot org 2007-11-06 19:41 --- Actually caused by PR23372 fix. Testing a fix. -- jakub at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jakub at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED Last reconfirmed|2007-09-20 03:35:21 |2007-11-06 19:41:02 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33501
[Bug c++/33604] [4.3 Regression] Revision 119502 causes significantly slower results with 4.3 compared to 4.2
--- Comment #9 from bonzini at gnu dot org 2007-11-06 20:08 --- Can you try -O3 -fno-predictive-commoning and -O3 -fno-tree-vectorize? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33604
[Bug target/32787] [4.2/4.3 Regression] Sun Studio 12 Undefined symbol addl
--- Comment #10 from rask at gcc dot gnu dot org 2007-11-06 20:14 --- Subject: Bug 32787 Author: rask Date: Tue Nov 6 20:14:22 2007 New Revision: 129944 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129944 Log: 2007-11-06 Rask Ingemann Lambertsen <[EMAIL PROTECTED]> PR target/32787 * config/i386/driver-i386.c: Test for __GNUC__ instead of GCC_VERSION which is always defined. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/driver-i386.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32787
[Bug testsuite/33782] FAIL: gcc.c-torture/compile/limits-stringlit.c (test for excess errors)
--- Comment #1 from wvangulik at xs4all dot nl 2007-11-06 20:41 --- Well, that would be ok for the AVR. The test is allocating more than the 64K of adressable space the AVR has. This should be a "expected to fail" for the AVR -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33782
[Bug fortran/34008] New: ICE in gfc_trans_call, at fortran/trans-stmt.c:389 on elemental assignment
Hi, there's a bug that shows up when overloading elemental assignments. The attached code sample crashes with: gfcbug74.f90: In function 'assign_atm_to_atm': gfcbug74.f90:33: internal compiler error: in gfc_trans_call, at fortran/trans-stmt.c:389 When replacing the offending line y% m = x% m ! ICE by an explicit loop do i=1,42; y% m(i) = x% m(i); end do! Works the code compiles. Cheers, -ha -- Summary: ICE in gfc_trans_call, at fortran/trans-stmt.c:389 on elemental assignment Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: anlauf at gmx dot de GCC host triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34008
[Bug fortran/34008] ICE in gfc_trans_call, at fortran/trans-stmt.c:389 on elemental assignment
--- Comment #1 from anlauf at gmx dot de 2007-11-06 22:20 --- Created an attachment (id=14491) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14491&action=view) Demo code -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34008
[Bug bootstrap/34003] [4.2/4.3 Regression] gcc 4.3.0 unable to bootstrap itself; Unsatisfied symbols: ggc_free
--- Comment #9 from rsandifo at gcc dot gnu dot org 2007-11-06 22:15 --- Created an attachment (id=14490) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14490&action=view) possible patch I can't produce the bug on x86_64-linux-gnu, but could you give the attached patch a go? Thanks. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34003
[Bug debug/33440] gcc-compiled program possibly reporting wrong variable address to gdb
--- Comment #2 from drow at gcc dot gnu dot org 2007-11-06 22:02 --- Works for me on Debian/unstable using GCC 4.2, GDB 6.7, so I expect this was a bug in Ubuntu's compiler version. -- drow at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||WORKSFORME http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33440
[Bug tree-optimization/33604] [4.3 Regression] Revision 119502 causes significantly slower results with 4.3 compared to 4.2
--- Comment #12 from rguenth at gcc dot gnu dot org 2007-11-06 21:51 --- I don't think we want to start playing with the heuristics ;) That patch certainly will cause compile-time and memory usage regressions. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33604
[Bug libffi/31937] libffi doesn't support ppc without FPU
--- Comment #3 from andreast at gcc dot gnu dot org 2007-11-06 22:55 --- Patch is posted here: http://gcc.gnu.org/ml/gcc-patches/2007-11/msg00286.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31937
[Bug tree-optimization/31976] [4.3 Regression] ICE in ssa_operand_alloc, at tree-ssa-operands.c:487 with -O3
--- Comment #11 from rguenther at suse dot de 2007-11-06 21:36 --- Subject: Re: [4.3 Regression] ICE in ssa_operand_alloc, at tree-ssa-operands.c:487 with -O3 On Tue, 6 Nov 2007, amacleod at redhat dot com wrote: > Partitioning doesn't really seem to be the root problem. But partitioning should exactly help avoiding this: > looking at testcase-min.i: > There are about 820 SFTs associated with the giant structure, and we decide > that they *all* can be affected by the memory access and try to issue VOPS for > them. 820 virtual operands should not happen because we have partitioning. > An int is loaded via MEM[base: Hoopster_ptr_17, offset: 3552]. > In get_tmr_operands(), we always call add_virtual_operands() with an offset of > 0 and a size of -1. This seems wrong. we should be able to use the size of the > load and offset information to figure out the right SFT(s) to add. Instead, > because the size is -1, we simply include all of them. > > Is this offset of 0 and size of -1 to paper over something else? I understand > there might be issues trying to get the right offset and base calculations > under some conditions... I think TMR had not precise enough alias information that we did want to play safe here. In some cases (only constant offsets and strides) we might be able to optimize this. Richard. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31976
[Bug tree-optimization/33826] [4.1/4.2/4.3 Regression] GCC generates wrong code for infinitely recursive functions
--- Comment #8 from ebotcazou at gcc dot gnu dot org 2007-11-06 21:33 --- > I just talked to mark mitchell who was wearing his official language > lawyer hat at the time. He said i had to fix it. i will submit a patch > in the next day or so. Thanks in advance. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33826
[Bug target/34007] [4.2 Regression] "Error: Branch out of range" compiling fold-const.c in stage 1
-- daney at gcc dot gnu dot org changed: What|Removed |Added Known to fail|4.2.3 |4.2.1 Target Milestone|--- |4.2.3 Version|4.2.3 |4.2.1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34007