[Bug fortran/33997] Generic interface: Rejects non-ambiguous interface as ambiguous

2007-11-06 Thread pault at gcc dot gnu dot org


--- 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

2007-11-06 Thread jakub at gcc dot gnu dot org


--- 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=gccview=revrev=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

2007-11-06 Thread terry at chem dot gu dot se
[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 URL: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)

2007-11-06 Thread jakub at gcc dot gnu dot org


--- 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)

2007-11-06 Thread jakub at gcc dot gnu dot org


--- 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=gccview=revrev=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

2007-11-06 Thread jakub at gcc dot gnu dot org


--- 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=gccview=revrev=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++

2007-11-06 Thread jakub at gcc dot gnu dot org


--- 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=gccview=revrev=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

2007-11-06 Thread jakub at gcc dot gnu dot org


--- 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

2007-11-06 Thread jakub at gcc dot gnu dot org


--- 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++

2007-11-06 Thread jakub at gcc dot gnu dot org


--- 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

2007-11-06 Thread r dot emrich at de dot tecosim dot com
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

2007-11-06 Thread r dot emrich at de dot tecosim dot com


--- 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=14488action=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

2007-11-06 Thread jakub at gcc dot gnu dot org


--- 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

2007-11-06 Thread pinskia at gcc dot gnu dot org


--- 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

2007-11-06 Thread pinskia at gcc dot gnu dot org


--- 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

2007-11-06 Thread r dot emrich at de dot tecosim dot com


--- 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

2007-11-06 Thread jakub at gcc dot gnu dot org


-- 

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

2007-11-06 Thread jv244 at cam dot ac dot uk


--- 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

2007-11-06 Thread pault at gcc dot gnu dot org


--- 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

2007-11-06 Thread pinskia at gcc dot gnu dot org


--- 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

2007-11-06 Thread r dot emrich at de dot tecosim dot com


--- 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

2007-11-06 Thread henning dot m at insightbb dot com


--- 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

2007-11-06 Thread irar at il dot ibm dot com


--- 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

2007-11-06 Thread r dot emrich at de dot tecosim dot com


--- 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=14489action=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.

2007-11-06 Thread burnus at gcc dot gnu dot org
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

2007-11-06 Thread pault at gcc dot gnu dot org


--- 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

2007-11-06 Thread jwakely dot gcc at gmail dot com


--- 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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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=gccview=revrev=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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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=gccview=revrev=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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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=gccview=revrev=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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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=gccview=revrev=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]

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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=gccview=revrev=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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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]

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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=gccview=revrev=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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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=gccview=revrev=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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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=gccview=revrev=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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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=gccview=revrev=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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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=gccview=revrev=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

2007-11-06 Thread dgregor at gcc dot gnu dot org


--- 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=gccview=revrev=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

2007-11-06 Thread ebotcazou at gcc dot gnu dot org


--- 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

2007-11-06 Thread jakub at gcc dot gnu dot org


--- 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

2007-11-06 Thread amacleod at redhat dot com


--- 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)

2007-11-06 Thread tbm at cyrius dot com
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)

2007-11-06 Thread tbm at cyrius dot com


--- 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)

2007-11-06 Thread tbm at cyrius dot com


--- 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

2007-11-06 Thread tromey at gcc dot gnu dot org


--- 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=gccview=revrev=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.

2007-11-06 Thread tromey at gcc dot gnu dot org


--- 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=gccview=revrev=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

2007-11-06 Thread tromey at gcc dot gnu dot org


--- 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.

2007-11-06 Thread tromey at gcc dot gnu dot org


--- 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

2007-11-06 Thread valera dot veryazov at teokem dot lu dot se
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

2007-11-06 Thread dominiq at lps dot ens dot fr


--- 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

2007-11-06 Thread fang at csl dot cornell dot edu


--- 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

2007-11-06 Thread tbm at cyrius dot com
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'

2007-11-06 Thread bonzini at gnu dot org


--- 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

2007-11-06 Thread daney at gcc dot gnu dot org


--- 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

2007-11-06 Thread bonzini at gnu dot org


--- 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

2007-11-06 Thread tbm at cyrius dot com


--- 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

2007-11-06 Thread tbm at cyrius dot com


--- 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

2007-11-06 Thread daney at gcc dot gnu dot org


--- 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

2007-11-06 Thread tbm at cyrius dot com


--- 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

2007-11-06 Thread tbm at cyrius dot com


--- 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

2007-11-06 Thread jv244 at cam dot ac dot uk


--- 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

2007-11-06 Thread hjl at lucon dot org


--- 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

2007-11-06 Thread kargl at gcc dot gnu dot org


--- 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

2007-11-06 Thread pcarlini at suse dot de


--- 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

2007-11-06 Thread tbm at cyrius dot com


--- 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)

2007-11-06 Thread dorit at gcc dot gnu dot org


--- 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

2007-11-06 Thread tbm at cyrius dot com


--- 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

2007-11-06 Thread sam at rfc1149 dot net


--- 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,

2007-11-06 Thread ebotcazou at gcc dot gnu dot org


--- 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

2007-11-06 Thread pinskia at gcc dot gnu dot org


--- 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

2007-11-06 Thread michael dot olbrich at gmx dot net


--- 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)

2007-11-06 Thread pinskia at gcc dot gnu dot org


-- 

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)

2007-11-06 Thread dorit at gcc dot gnu dot org


--- 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,

2007-11-06 Thread ebotcazou at gcc dot gnu dot org


--- 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

2007-11-06 Thread hjl at gcc dot gnu dot org


--- 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=gccview=revrev=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

2007-11-06 Thread ebotcazou at gcc dot gnu dot org


--- 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

2007-11-06 Thread wvangulik at xs4all dot nl


--- 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;x128; 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;x129; 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

2007-11-06 Thread jakub at gcc dot gnu dot org


--- 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

2007-11-06 Thread bonzini at gnu dot org


--- 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

2007-11-06 Thread rask at gcc dot gnu dot org


--- 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=gccview=revrev=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)

2007-11-06 Thread wvangulik at xs4all dot nl


--- 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

2007-11-06 Thread anlauf at gmx dot de
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

2007-11-06 Thread anlauf at gmx dot de


--- 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=14491action=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

2007-11-06 Thread rsandifo at gcc dot gnu dot org


--- 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=14490action=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

2007-11-06 Thread drow at gcc dot gnu dot org


--- 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

2007-11-06 Thread rguenth at gcc dot gnu dot org


--- 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

2007-11-06 Thread andreast at gcc dot gnu dot org


--- 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

2007-11-06 Thread rguenther at suse dot de


--- 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

2007-11-06 Thread ebotcazou at gcc dot gnu dot org


--- 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

2007-11-06 Thread daney at gcc dot gnu dot org


-- 

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



  1   2   >