[Bug middle-end/28160] New: Bogus size of array 'foo' is too large error with -mms-bitfields

2006-06-25 Thread kkojima at gcc dot gnu dot org
Several g++ tests in tmpdir-g++.dg-struct-layout-1 fail during
the compilation with the error message like

  error: size of array 'foo' is too large

with -mms-bitfields.  A reduced testcase is

typedef long int along __attribute__((aligned (32)));
struct S
{
  unsigned char a;
  along d:130;
  int e:66;
} A[1];

It looks the ms-bitfield code in stor-layout.c doesn't take
the bit field with excessive size into account and it makes
the negative remaining_in_alignment which causes the above
error.


-- 
   Summary: Bogus size of array 'foo' is too large error with -
mms-bitfields
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Keywords: rejects-valid
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: kkojima at gcc dot gnu dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28160



[Bug middle-end/28161] New: Wrong bit field layout with -mms-bitfields

2006-06-25 Thread kkojima at gcc dot gnu dot org
Several g++ tests in tmpdir-g++.dg-struct-layout-1 fail with
the execution error.  A reduced testcase is

extern C void abort (void);

struct S
{
  long long d:23;
  int e:32;
  int f:32;
} a;

int main (void)
{
  a.e = -3;
  a.f = 1;
  if (a.e != -3)
abort ();
  return 0;
}

which shows that the current compiler allocates a.e and a.f in
an overlapped manner with -mms-bitfields.  With that option,
the 4.1 compiler allocates a field in the first 8-byte for a.d,
the next 4-byte for a.e and the another 4-byte for a.f, but 4.2
allocates 23-bit for a.d, the next 32-bit for a.e and the last
32-bit for a.f in the same 8-byte.


-- 
   Summary: Wrong bit field layout with -mms-bitfields
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: kkojima at gcc dot gnu dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28161



[Bug target/28150] ICE in reload_cse_simplify_operands, at postreload.c:394

2006-06-25 Thread pluto at agmk dot net


--- Comment #3 from pluto at agmk dot net  2006-06-25 08:47 ---
(In reply to comment #2)
 How did you configure GCC becase having TFmode there sounds like you 
 configured
 to have 128bit long double to be default.
 

$ gcc -v
Reading specs from /usr/lib/gcc/ppc-pld-linux/4.1.2/specs
Target: ppc-pld-linux
Configured with: ../configure --prefix=/usr --with-local-prefix=/usr/local
--libdir=/usr/lib --libexecdir=/usr/lib --infodir=/usr/share/info
--mandir=/usr/share/man --x-libraries=/usr/lib --enable-shared
--enable-threads=posix --enable-languages=c,c++,fortran,objc,obj-c++,ada,java
--enable-c99 --enable-long-long --disable-multilib --enable-nls
--disable-werror --with-gnu-as --with-gnu-ld --with-demangler-in-ld
--with-system-zlib --with-slibdir=/lib --without-system-libunwind
--enable-cmath --with-long-double-128 --enable-secureplt
--with-gxx-include-dir=/usr/include/c++/4.1.2 --disable-libstdcxx-pch
--enable-__cxa_atexit --enable-libstdcxx-allocator=new
--with-qt4dir=/usr/lib/qt4 --disable-libjava-multilib --enable-libgcj
--enable-libgcj-multifile --enable-libgcj-database --enable-gtk-cairo
--enable-java-awt=qt,gtk,xlib --enable-jni --enable-xmlj --enable-alsa
--enable-dssi ppc-pld-linux
Thread model: posix
gcc version 4.1.2 20060623 (prerelease) (PLD-Linux)

glibc-2.4, kernel-2.6


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28150



[Bug c/28162] New: ice on valid code

2006-06-25 Thread dcb314 at hotmail dot com
I just tried to compile the attached source code with compiler flag -O3.
GNU C compiler version 4.2 snapshot 20060624 said

[EMAIL PROTECTED]:~/gnu/42-20060617/bugs ~/gnu/42-20060624/results/bin/gcc -O3 
bug18.c
bug18.c: In function 'Speech_Encode_Frame_init':
bug18.c:24528: warning: passing argument 1 of 'Speech_Encode_Frame_exit' from
incompatible pointer type
bug18.c: In function 'ol_ltp':
bug18.c:19118: internal compiler error: in set_value_range, at tree-vrp.c:157
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.
[EMAIL PROTECTED]:~/gnu/42-20060624/bugs

Preprocessed source code attached.  Flag -O3 required.


-- 
   Summary: ice on valid code
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dcb314 at hotmail dot com
  GCC host triplet: x86_64-suse


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28162



[Bug c/28162] ice on valid code

2006-06-25 Thread dcb314 at hotmail dot com


--- Comment #1 from dcb314 at hotmail dot com  2006-06-25 09:28 ---
Created an attachment (id=11744)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11744action=view)
C source code


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28162



[Bug c/28162] ice on valid code

2006-06-25 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2006-06-25 10:01 ---
min is not less than max:

(gdb) call debug_tree (min)
 integer_cst 0xa78f57b0 type integer_type 0xa7bf42e0 unsigned int constant
invariant 4294966724
(gdb) call debug_tree (max)
 integer_cst 0xa7be2498 type integer_type 0xa7bf433c long int constant
invariant 2147483647

but worse, their types don't match.  (I guess the former wants to be casted
to int)

#1  0x086124ff in set_value_range (vr=0xaff5a110, t=VR_RANGE, min=0xa78f57b0,
max=0xa7be2498, equiv=0x8a30dd8)
at /home/richard/src/trunk/gcc/tree-vrp.c:157
#2  0x08617d92 in adjust_range_with_scev (vr=0xaff5a110, loop=0x89f3980,
stmt=0xa7966774, var=0xa700a1e0)
at /home/richard/src/trunk/gcc/tree-vrp.c:2090
#3  0x0861e035 in vrp_visit_assignment (stmt=0xa7966774, output_p=0xaff5a278)
at /home/richard/src/trunk/gcc/tree-vrp.c:3457
#4  0x0861f9a0 in vrp_visit_stmt (stmt=0xa7966774, taken_edge_p=0xaff5a27c,
output_p=0xaff5a278) at /home/richard/src/trunk/gcc/tree-vrp.c:3850

(gdb) call debug_generic_expr (stmt)
D.23941_257 = p_max1D.23874_118 * 0fffc
 mult_expr 0xa7966798
type integer_type 0xa7bf42e0 unsigned int public unsigned SI
size integer_cst 0xa7be23f0 constant invariant 32
unit size integer_cst 0xa7be2180 constant invariant 4
align 32 symtab 0 alias set -1 precision 32 min integer_cst 0xa7be2468
0 max integer_cst 0xa7be2450 4294967295
pointer_to_this pointer_type 0xa7c94e60

arg 0 ssa_name 0xa7566e40
type integer_type 0xa7a5bcf0 Word32 sizes-gimplified public SI size
integer_cst 0xa7be23f0 32 unit size integer_cst 0xa7be2180 4
align 32 symtab 0 alias set -1 precision 32 min integer_cst
0xa7be2480 -2147483648 max integer_cst 0xa7be2498 2147483647
pointer_to_this pointer_type 0xa7a60678
var var_decl 0xa7897898 p_max1 def_stmt modify_expr 0xa794fbf4
version 118
arg 1 integer_cst 0xa79a1be8 type integer_type 0xa7bf42e0 unsigned int
constant invariant 4294967292

type mismatch in the MULT_EXPR (signed vs. unsigned).

ol_ltpD.6288::

;; basic block 10, loop depth 1, count 0
;; prev block 17, next block 11
;; pred:   67 (true,exec)
;; succ:   11 (true) 12 (false)
L24:;
p_max1_118 = ASSERT_EXPR p_max1_13, p_max1_13  19;
D.23941_257 = p_max1_118 * 0fffc;
D.23942_258 = (Float32 *) D.23941_257;
D.23943_259 = D.23942_258 + corr[143];
...


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28162



[Bug tree-optimization/28162] ICE in set_value_range, at tree-vrp.c:157

2006-06-25 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2006-06-25 10:30 ---
Reduced testcase, still needs -O3 (and checking enabled):

void Lag_max_wght(float corr[], long wght_flg)
{
 float t0, max;
 const float *ww;
 long i;
 if ( wght_flg  0 ) {
for ( i = 143; i = 20; i-- ) {
   t0 = corr[ - i] * *ww--;
   if ( t0 = max )
 max = t0;
}
 }
}


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-06-25 10:30:15
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28162



[Bug tree-optimization/27937] [4.2 Regression] Ada bootstrap failure on Solaris 10/x86

2006-06-25 Thread rguenth at gcc dot gnu dot org


--- Comment #9 from rguenth at gcc dot gnu dot org  2006-06-25 10:58 ---
Is there a testcase for this bug that can be examined on more common
host/target systems?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27937



[Bug c++/28051] [4.0/4.1/4.2 regression] ICE on invalid conversion operator

2006-06-25 Thread lmillward at gcc dot gnu dot org


--- Comment #3 from lmillward at gcc dot gnu dot org  2006-06-25 11:07 
---
Subject: Bug 28051

Author: lmillward
Date: Sun Jun 25 11:07:05 2006
New Revision: 114985

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114985
Log:
PR c++/28051
* mangle.c (mangle_conv_op_name_for_type): Check for
invalid types.
*name-lookup.c (push_class_level_binding): Robustify.
(do_class_using_decl): Return early if name is error_mark_node.


Added:
trunk/gcc/testsuite/g++.dg/template/using13.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/mangle.c
trunk/gcc/cp/name-lookup.c
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28051



[Bug c++/28051] [4.0/4.1 regression] ICE on invalid conversion operator

2006-06-25 Thread lmillward at gcc dot gnu dot org


--- Comment #4 from lmillward at gcc dot gnu dot org  2006-06-25 11:07 
---
Fixed on mainline.


-- 

lmillward at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|[4.0/4.1/4.2 regression] ICE|[4.0/4.1 regression] ICE on
   |on invalid conversion   |invalid conversion operator
   |operator|


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28051



[Bug c++/28054] [4.2 regression] ICE with friend declaration of invalid bitfield

2006-06-25 Thread lmillward at gcc dot gnu dot org


--- Comment #1 from lmillward at gcc dot gnu dot org  2006-06-25 11:28 
---
Subject: Bug 28054

Author: lmillward
Date: Sun Jun 25 11:28:01 2006
New Revision: 114986

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114986
Log:
PR c++/28054
* decl2.c (grokbitfield): Remove check for grokdeclarator
returning NULL_TREE, instead check for error_mark_node
to indicate failure.
* decl.c (grokdeclarator): Adjust block comment.

* g++.dg/other/incomplete3.C: New test.


Added:
trunk/gcc/testsuite/g++.dg/other/incomplete3.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/cp/decl2.c
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28054



[Bug c++/28054] [4.2 regression] ICE with friend declaration of invalid bitfield

2006-06-25 Thread lmillward at gcc dot gnu dot org


--- Comment #2 from lmillward at gcc dot gnu dot org  2006-06-25 11:28 
---
Fixed.


-- 

lmillward at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28054



[Bug tree-optimization/28162] ICE in set_value_range, at tree-vrp.c:157

2006-06-25 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2006-06-25 12:02 ---
.003.original is already wrong:

t0 = *((float *) (i * 0fffc) + corr) * (float) *ww-- ;

we ask fold to fold (unsigned)-i * 4U

which continues to ask fold to fold i * -4U (buggy already), which is from

case MULT_EXPR:
  /* (-A) * (-B) - A * B  */
  if (TREE_CODE (arg0) == NEGATE_EXPR  negate_expr_p (arg1))
return fold_build2 (MULT_EXPR, type,
TREE_OPERAND (arg0, 0),
negate_expr (arg1));

it should use fold_convert () on the args.  The following fixes it:

Index: fold-const.c
===
--- fold-const.c(revision 114974)
+++ fold-const.c(working copy)
@@ -8866,12 +8866,12 @@ fold_binary (enum tree_code code, tree t
   /* (-A) * (-B) - A * B  */
   if (TREE_CODE (arg0) == NEGATE_EXPR  negate_expr_p (arg1))
return fold_build2 (MULT_EXPR, type,
-   TREE_OPERAND (arg0, 0),
-   negate_expr (arg1));
+   fold_convert (type, TREE_OPERAND (arg0, 0)),
+   fold_convert (type, negate_expr (arg1)));
   if (TREE_CODE (arg1) == NEGATE_EXPR  negate_expr_p (arg0))
return fold_build2 (MULT_EXPR, type,
-   negate_expr (arg0),
-   TREE_OPERAND (arg1, 0));
+   fold_convert (type, negate_expr (arg0)),
+   fold_convert (type, TREE_OPERAND (arg1, 0)));

   if (! FLOAT_TYPE_P (type))
{

(obvious, but has to wait until after the summit.)


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-06-25 10:30:15 |2006-06-25 12:02:00
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28162



[Bug fortran/28163] New: Calling libgfortran's copy_string is inefficient

2006-06-25 Thread fxcoudert at gcc dot gnu dot org
Currently, string assignments are done via calls to _gfortran_copy_string,
which is a simple wrapper around memmove/memset:

void
copy_string (GFC_INTEGER_4 destlen, char * dest,
 GFC_INTEGER_4 srclen, const char * src)
{
  if (srclen = destlen)
{
  /* This will truncate if too long.  */
  memmove (dest, src, destlen);
}
  else
{
  memmove (dest, src, srclen);
  /* Pad with spaces.  */
  memset (dest[srclen], ' ', destlen - srclen);
}
}


With this implementation, AERMOD (from polyhedron benchmark) spends most of its
time in calls to memmove/memset. If the above code is directly emitted by the
front-end, I measure on i686-linux a 27% improvement in execution time with the
following options:
  gfortran -march=pentium4 -ffast-math -funroll-loops -O3 aermod.f90


-- 
   Summary: Calling libgfortran's copy_string is inefficient
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: enhancement
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: fxcoudert at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28163



[Bug fortran/28163] Calling libgfortran's copy_string is inefficient

2006-06-25 Thread fxcoudert at gcc dot gnu dot org


--- Comment #1 from fxcoudert at gcc dot gnu dot org  2006-06-25 12:31 
---
Created an attachment (id=11746)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11746action=view)
Patch described in the bug report


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |fxcoudert at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28163



[Bug target/27827] gcc 4 produces worse x87 code on all platforms than gcc 3

2006-06-25 Thread whaley at cs dot utsa dot edu


--- Comment #17 from whaley at cs dot utsa dot edu  2006-06-25 13:17 ---
OK, thanks for the reply.  I will assume gcc 4 won't be fixed in the near
future.  My guess is this will make icc an easier compiler for users, which I
kind of hate, which is why I worked as much as I did on this report . . .

I hope you will consider adding the mmbench4s.tar.gz attachment above (the one
that runs both single and double precision) to the gcc regression tests. 
Notice that it caught this problem between 3 and 4, as well as a similar fp
performance drop between gcc 2 and 3 (bugzilla 4991).  The kernel here is
typical of those used in ATLAS, which is used by hundreds of thousands of
people worldwide.  I believe these kernels are also typical of pretty much any
register blocked fp code, so having them in the regression tests may help other
open source fp packages (eg, fftw, etc) as well.  Notice that closed-source
alternatives that ship binaries do not face this challenge, so that having the
compiler drop between releases gives them an advantage, and can drive HPC users
(where performance dictates everything) to proprietary solutions.

Thanks,
Clint


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27827



[Bug c++/28164] New: g++ core when init a struct

2006-06-25 Thread tiramisu dot xc at gmail dot com
using ACE 5.4.1
command line:g++ -I/usr/local/ACE_wrappers test.cpp
gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)
source:
#include ace/INET_Addr.h

struct ERR
{
ACE_INET_Addr err[10][2]; /// right: int err[10][2]; or ACE_INET_Addr [10];
};

ERR temp = {0};
int main()
{
return 0;
}


-- 
   Summary: g++ core when init a struct
   Product: gcc
   Version: 3.4.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tiramisu dot xc at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28164



[Bug c++/28164] g++ core when init a struct

2006-06-25 Thread tiramisu dot xc at gmail dot com


--- Comment #1 from tiramisu dot xc at gmail dot com  2006-06-25 13:38 
---
Created an attachment (id=11747)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11747action=view)
/tmp/cciuGwmP.out


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28164



[Bug fortran/27554] Strange assembler produced

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #4 from pault at gcc dot gnu dot org  2006-06-25 15:11 ---
Subject: Bug 27554

Author: pault
Date: Sun Jun 25 15:11:02 2006
New Revision: 114987

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114987
Log:
2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/25056
* interface.c (compare_actual_formal): Signal an error if the formal
argument is a pure procedure and the actual is not pure.

PR fortran/27554
* resolve.c (resolve_actual_arglist): If the type of procedure
passed as an actual argument is not already declared, see if it is
an intrinsic.

PR fortran/25073
* resolve.c (resolve_select): Use bits 1 and 2 of a new int to
keep track of  the appearance of constant logical case expressions.
Signal an error is either value appears more than once.

PR fortran/20874
* resolve.c (resolve_fl_procedure): Signal an error if an elemental
function is not scalar valued.

PR fortran/20867
* match.c (recursive_stmt_fcn): Perform implicit typing of variables.

PR fortran/22038
* match.c (match_forall_iterator): Mark new variables as
FL_UNKNOWN if the match fails.

PR fortran/28119
* match.c (gfc_match_forall): Remove extraneous call to
gfc_match_eos.

PR fortran/25072
* resolve.c (resolve_code, resolve_function): Rework
forall_flag scheme so that it is set and has a value of
2, when the code-expr (ie. the forall mask) is resolved.
This is used to change block to mask in the non-PURE
error message.


2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20867
* gfortran.dg/stfunc_3.f90: New test.

PR fortran/25056
* gfortran.dg/impure_actual_1.f90: New test.

PR fortran/20874
* gfortran.dg/elemental_result_1.f90: New test.

PR fortran/25073
* gfortran.dg/select_7.f90: New test.

PR fortran/27554
* intrinsic_actual_1.f: New test.

PR fortran/22038
PR fortran/28119
* gfortran.dg/forall_4.f90: New test.

PR fortran/25072
* gfortran.dg/forall_5.f90: New test.



Added:
trunk/gcc/testsuite/gfortran.dg/elemental_result_1.f90
trunk/gcc/testsuite/gfortran.dg/forall_4.f90
trunk/gcc/testsuite/gfortran.dg/forall_5.f90
trunk/gcc/testsuite/gfortran.dg/impure_actual_1.f90
trunk/gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
trunk/gcc/testsuite/gfortran.dg/select_7.f90
trunk/gcc/testsuite/gfortran.dg/stfunc_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/interface.c
trunk/gcc/fortran/match.c
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27554



[Bug fortran/25056] non-PURE function should not be a valid argument

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2006-06-25 15:11 ---
Subject: Bug 25056

Author: pault
Date: Sun Jun 25 15:11:02 2006
New Revision: 114987

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114987
Log:
2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/25056
* interface.c (compare_actual_formal): Signal an error if the formal
argument is a pure procedure and the actual is not pure.

PR fortran/27554
* resolve.c (resolve_actual_arglist): If the type of procedure
passed as an actual argument is not already declared, see if it is
an intrinsic.

PR fortran/25073
* resolve.c (resolve_select): Use bits 1 and 2 of a new int to
keep track of  the appearance of constant logical case expressions.
Signal an error is either value appears more than once.

PR fortran/20874
* resolve.c (resolve_fl_procedure): Signal an error if an elemental
function is not scalar valued.

PR fortran/20867
* match.c (recursive_stmt_fcn): Perform implicit typing of variables.

PR fortran/22038
* match.c (match_forall_iterator): Mark new variables as
FL_UNKNOWN if the match fails.

PR fortran/28119
* match.c (gfc_match_forall): Remove extraneous call to
gfc_match_eos.

PR fortran/25072
* resolve.c (resolve_code, resolve_function): Rework
forall_flag scheme so that it is set and has a value of
2, when the code-expr (ie. the forall mask) is resolved.
This is used to change block to mask in the non-PURE
error message.


2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20867
* gfortran.dg/stfunc_3.f90: New test.

PR fortran/25056
* gfortran.dg/impure_actual_1.f90: New test.

PR fortran/20874
* gfortran.dg/elemental_result_1.f90: New test.

PR fortran/25073
* gfortran.dg/select_7.f90: New test.

PR fortran/27554
* intrinsic_actual_1.f: New test.

PR fortran/22038
PR fortran/28119
* gfortran.dg/forall_4.f90: New test.

PR fortran/25072
* gfortran.dg/forall_5.f90: New test.



Added:
trunk/gcc/testsuite/gfortran.dg/elemental_result_1.f90
trunk/gcc/testsuite/gfortran.dg/forall_4.f90
trunk/gcc/testsuite/gfortran.dg/forall_5.f90
trunk/gcc/testsuite/gfortran.dg/impure_actual_1.f90
trunk/gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
trunk/gcc/testsuite/gfortran.dg/select_7.f90
trunk/gcc/testsuite/gfortran.dg/stfunc_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/interface.c
trunk/gcc/fortran/match.c
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25056



[Bug fortran/20874] elemental function ought to be scalar

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #5 from pault at gcc dot gnu dot org  2006-06-25 15:11 ---
Subject: Bug 20874

Author: pault
Date: Sun Jun 25 15:11:02 2006
New Revision: 114987

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114987
Log:
2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/25056
* interface.c (compare_actual_formal): Signal an error if the formal
argument is a pure procedure and the actual is not pure.

PR fortran/27554
* resolve.c (resolve_actual_arglist): If the type of procedure
passed as an actual argument is not already declared, see if it is
an intrinsic.

PR fortran/25073
* resolve.c (resolve_select): Use bits 1 and 2 of a new int to
keep track of  the appearance of constant logical case expressions.
Signal an error is either value appears more than once.

PR fortran/20874
* resolve.c (resolve_fl_procedure): Signal an error if an elemental
function is not scalar valued.

PR fortran/20867
* match.c (recursive_stmt_fcn): Perform implicit typing of variables.

PR fortran/22038
* match.c (match_forall_iterator): Mark new variables as
FL_UNKNOWN if the match fails.

PR fortran/28119
* match.c (gfc_match_forall): Remove extraneous call to
gfc_match_eos.

PR fortran/25072
* resolve.c (resolve_code, resolve_function): Rework
forall_flag scheme so that it is set and has a value of
2, when the code-expr (ie. the forall mask) is resolved.
This is used to change block to mask in the non-PURE
error message.


2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20867
* gfortran.dg/stfunc_3.f90: New test.

PR fortran/25056
* gfortran.dg/impure_actual_1.f90: New test.

PR fortran/20874
* gfortran.dg/elemental_result_1.f90: New test.

PR fortran/25073
* gfortran.dg/select_7.f90: New test.

PR fortran/27554
* intrinsic_actual_1.f: New test.

PR fortran/22038
PR fortran/28119
* gfortran.dg/forall_4.f90: New test.

PR fortran/25072
* gfortran.dg/forall_5.f90: New test.



Added:
trunk/gcc/testsuite/gfortran.dg/elemental_result_1.f90
trunk/gcc/testsuite/gfortran.dg/forall_4.f90
trunk/gcc/testsuite/gfortran.dg/forall_5.f90
trunk/gcc/testsuite/gfortran.dg/impure_actual_1.f90
trunk/gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
trunk/gcc/testsuite/gfortran.dg/select_7.f90
trunk/gcc/testsuite/gfortran.dg/stfunc_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/interface.c
trunk/gcc/fortran/match.c
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20874



[Bug fortran/25073] CASEs overlap

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #10 from pault at gcc dot gnu dot org  2006-06-25 15:11 ---
Subject: Bug 25073

Author: pault
Date: Sun Jun 25 15:11:02 2006
New Revision: 114987

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114987
Log:
2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/25056
* interface.c (compare_actual_formal): Signal an error if the formal
argument is a pure procedure and the actual is not pure.

PR fortran/27554
* resolve.c (resolve_actual_arglist): If the type of procedure
passed as an actual argument is not already declared, see if it is
an intrinsic.

PR fortran/25073
* resolve.c (resolve_select): Use bits 1 and 2 of a new int to
keep track of  the appearance of constant logical case expressions.
Signal an error is either value appears more than once.

PR fortran/20874
* resolve.c (resolve_fl_procedure): Signal an error if an elemental
function is not scalar valued.

PR fortran/20867
* match.c (recursive_stmt_fcn): Perform implicit typing of variables.

PR fortran/22038
* match.c (match_forall_iterator): Mark new variables as
FL_UNKNOWN if the match fails.

PR fortran/28119
* match.c (gfc_match_forall): Remove extraneous call to
gfc_match_eos.

PR fortran/25072
* resolve.c (resolve_code, resolve_function): Rework
forall_flag scheme so that it is set and has a value of
2, when the code-expr (ie. the forall mask) is resolved.
This is used to change block to mask in the non-PURE
error message.


2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20867
* gfortran.dg/stfunc_3.f90: New test.

PR fortran/25056
* gfortran.dg/impure_actual_1.f90: New test.

PR fortran/20874
* gfortran.dg/elemental_result_1.f90: New test.

PR fortran/25073
* gfortran.dg/select_7.f90: New test.

PR fortran/27554
* intrinsic_actual_1.f: New test.

PR fortran/22038
PR fortran/28119
* gfortran.dg/forall_4.f90: New test.

PR fortran/25072
* gfortran.dg/forall_5.f90: New test.



Added:
trunk/gcc/testsuite/gfortran.dg/elemental_result_1.f90
trunk/gcc/testsuite/gfortran.dg/forall_4.f90
trunk/gcc/testsuite/gfortran.dg/forall_5.f90
trunk/gcc/testsuite/gfortran.dg/impure_actual_1.f90
trunk/gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
trunk/gcc/testsuite/gfortran.dg/select_7.f90
trunk/gcc/testsuite/gfortran.dg/stfunc_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/interface.c
trunk/gcc/fortran/match.c
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25073



[Bug fortran/20867] statement function args not given implicit type early enough

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2006-06-25 15:11 ---
Subject: Bug 20867

Author: pault
Date: Sun Jun 25 15:11:02 2006
New Revision: 114987

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114987
Log:
2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/25056
* interface.c (compare_actual_formal): Signal an error if the formal
argument is a pure procedure and the actual is not pure.

PR fortran/27554
* resolve.c (resolve_actual_arglist): If the type of procedure
passed as an actual argument is not already declared, see if it is
an intrinsic.

PR fortran/25073
* resolve.c (resolve_select): Use bits 1 and 2 of a new int to
keep track of  the appearance of constant logical case expressions.
Signal an error is either value appears more than once.

PR fortran/20874
* resolve.c (resolve_fl_procedure): Signal an error if an elemental
function is not scalar valued.

PR fortran/20867
* match.c (recursive_stmt_fcn): Perform implicit typing of variables.

PR fortran/22038
* match.c (match_forall_iterator): Mark new variables as
FL_UNKNOWN if the match fails.

PR fortran/28119
* match.c (gfc_match_forall): Remove extraneous call to
gfc_match_eos.

PR fortran/25072
* resolve.c (resolve_code, resolve_function): Rework
forall_flag scheme so that it is set and has a value of
2, when the code-expr (ie. the forall mask) is resolved.
This is used to change block to mask in the non-PURE
error message.


2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20867
* gfortran.dg/stfunc_3.f90: New test.

PR fortran/25056
* gfortran.dg/impure_actual_1.f90: New test.

PR fortran/20874
* gfortran.dg/elemental_result_1.f90: New test.

PR fortran/25073
* gfortran.dg/select_7.f90: New test.

PR fortran/27554
* intrinsic_actual_1.f: New test.

PR fortran/22038
PR fortran/28119
* gfortran.dg/forall_4.f90: New test.

PR fortran/25072
* gfortran.dg/forall_5.f90: New test.



Added:
trunk/gcc/testsuite/gfortran.dg/elemental_result_1.f90
trunk/gcc/testsuite/gfortran.dg/forall_4.f90
trunk/gcc/testsuite/gfortran.dg/forall_5.f90
trunk/gcc/testsuite/gfortran.dg/impure_actual_1.f90
trunk/gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
trunk/gcc/testsuite/gfortran.dg/select_7.f90
trunk/gcc/testsuite/gfortran.dg/stfunc_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/interface.c
trunk/gcc/fortran/match.c
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20867



[Bug fortran/28119] forall_stmt ; stmt gives an internal error

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #2 from pault at gcc dot gnu dot org  2006-06-25 15:11 ---
Subject: Bug 28119

Author: pault
Date: Sun Jun 25 15:11:02 2006
New Revision: 114987

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114987
Log:
2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/25056
* interface.c (compare_actual_formal): Signal an error if the formal
argument is a pure procedure and the actual is not pure.

PR fortran/27554
* resolve.c (resolve_actual_arglist): If the type of procedure
passed as an actual argument is not already declared, see if it is
an intrinsic.

PR fortran/25073
* resolve.c (resolve_select): Use bits 1 and 2 of a new int to
keep track of  the appearance of constant logical case expressions.
Signal an error is either value appears more than once.

PR fortran/20874
* resolve.c (resolve_fl_procedure): Signal an error if an elemental
function is not scalar valued.

PR fortran/20867
* match.c (recursive_stmt_fcn): Perform implicit typing of variables.

PR fortran/22038
* match.c (match_forall_iterator): Mark new variables as
FL_UNKNOWN if the match fails.

PR fortran/28119
* match.c (gfc_match_forall): Remove extraneous call to
gfc_match_eos.

PR fortran/25072
* resolve.c (resolve_code, resolve_function): Rework
forall_flag scheme so that it is set and has a value of
2, when the code-expr (ie. the forall mask) is resolved.
This is used to change block to mask in the non-PURE
error message.


2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20867
* gfortran.dg/stfunc_3.f90: New test.

PR fortran/25056
* gfortran.dg/impure_actual_1.f90: New test.

PR fortran/20874
* gfortran.dg/elemental_result_1.f90: New test.

PR fortran/25073
* gfortran.dg/select_7.f90: New test.

PR fortran/27554
* intrinsic_actual_1.f: New test.

PR fortran/22038
PR fortran/28119
* gfortran.dg/forall_4.f90: New test.

PR fortran/25072
* gfortran.dg/forall_5.f90: New test.



Added:
trunk/gcc/testsuite/gfortran.dg/elemental_result_1.f90
trunk/gcc/testsuite/gfortran.dg/forall_4.f90
trunk/gcc/testsuite/gfortran.dg/forall_5.f90
trunk/gcc/testsuite/gfortran.dg/impure_actual_1.f90
trunk/gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
trunk/gcc/testsuite/gfortran.dg/select_7.f90
trunk/gcc/testsuite/gfortran.dg/stfunc_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/interface.c
trunk/gcc/fortran/match.c
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28119



[Bug fortran/22038] Forall with mask broken

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #9 from pault at gcc dot gnu dot org  2006-06-25 15:11 ---
Subject: Bug 22038

Author: pault
Date: Sun Jun 25 15:11:02 2006
New Revision: 114987

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114987
Log:
2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/25056
* interface.c (compare_actual_formal): Signal an error if the formal
argument is a pure procedure and the actual is not pure.

PR fortran/27554
* resolve.c (resolve_actual_arglist): If the type of procedure
passed as an actual argument is not already declared, see if it is
an intrinsic.

PR fortran/25073
* resolve.c (resolve_select): Use bits 1 and 2 of a new int to
keep track of  the appearance of constant logical case expressions.
Signal an error is either value appears more than once.

PR fortran/20874
* resolve.c (resolve_fl_procedure): Signal an error if an elemental
function is not scalar valued.

PR fortran/20867
* match.c (recursive_stmt_fcn): Perform implicit typing of variables.

PR fortran/22038
* match.c (match_forall_iterator): Mark new variables as
FL_UNKNOWN if the match fails.

PR fortran/28119
* match.c (gfc_match_forall): Remove extraneous call to
gfc_match_eos.

PR fortran/25072
* resolve.c (resolve_code, resolve_function): Rework
forall_flag scheme so that it is set and has a value of
2, when the code-expr (ie. the forall mask) is resolved.
This is used to change block to mask in the non-PURE
error message.


2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20867
* gfortran.dg/stfunc_3.f90: New test.

PR fortran/25056
* gfortran.dg/impure_actual_1.f90: New test.

PR fortran/20874
* gfortran.dg/elemental_result_1.f90: New test.

PR fortran/25073
* gfortran.dg/select_7.f90: New test.

PR fortran/27554
* intrinsic_actual_1.f: New test.

PR fortran/22038
PR fortran/28119
* gfortran.dg/forall_4.f90: New test.

PR fortran/25072
* gfortran.dg/forall_5.f90: New test.



Added:
trunk/gcc/testsuite/gfortran.dg/elemental_result_1.f90
trunk/gcc/testsuite/gfortran.dg/forall_4.f90
trunk/gcc/testsuite/gfortran.dg/forall_5.f90
trunk/gcc/testsuite/gfortran.dg/impure_actual_1.f90
trunk/gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
trunk/gcc/testsuite/gfortran.dg/select_7.f90
trunk/gcc/testsuite/gfortran.dg/stfunc_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/interface.c
trunk/gcc/fortran/match.c
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22038



[Bug fortran/25072] non PURE function used in For-All

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #8 from pault at gcc dot gnu dot org  2006-06-25 15:11 ---
Subject: Bug 25072

Author: pault
Date: Sun Jun 25 15:11:02 2006
New Revision: 114987

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114987
Log:
2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/25056
* interface.c (compare_actual_formal): Signal an error if the formal
argument is a pure procedure and the actual is not pure.

PR fortran/27554
* resolve.c (resolve_actual_arglist): If the type of procedure
passed as an actual argument is not already declared, see if it is
an intrinsic.

PR fortran/25073
* resolve.c (resolve_select): Use bits 1 and 2 of a new int to
keep track of  the appearance of constant logical case expressions.
Signal an error is either value appears more than once.

PR fortran/20874
* resolve.c (resolve_fl_procedure): Signal an error if an elemental
function is not scalar valued.

PR fortran/20867
* match.c (recursive_stmt_fcn): Perform implicit typing of variables.

PR fortran/22038
* match.c (match_forall_iterator): Mark new variables as
FL_UNKNOWN if the match fails.

PR fortran/28119
* match.c (gfc_match_forall): Remove extraneous call to
gfc_match_eos.

PR fortran/25072
* resolve.c (resolve_code, resolve_function): Rework
forall_flag scheme so that it is set and has a value of
2, when the code-expr (ie. the forall mask) is resolved.
This is used to change block to mask in the non-PURE
error message.


2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20867
* gfortran.dg/stfunc_3.f90: New test.

PR fortran/25056
* gfortran.dg/impure_actual_1.f90: New test.

PR fortran/20874
* gfortran.dg/elemental_result_1.f90: New test.

PR fortran/25073
* gfortran.dg/select_7.f90: New test.

PR fortran/27554
* intrinsic_actual_1.f: New test.

PR fortran/22038
PR fortran/28119
* gfortran.dg/forall_4.f90: New test.

PR fortran/25072
* gfortran.dg/forall_5.f90: New test.



Added:
trunk/gcc/testsuite/gfortran.dg/elemental_result_1.f90
trunk/gcc/testsuite/gfortran.dg/forall_4.f90
trunk/gcc/testsuite/gfortran.dg/forall_5.f90
trunk/gcc/testsuite/gfortran.dg/impure_actual_1.f90
trunk/gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
trunk/gcc/testsuite/gfortran.dg/select_7.f90
trunk/gcc/testsuite/gfortran.dg/stfunc_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/interface.c
trunk/gcc/fortran/match.c
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25072



[Bug rtl-optimization/26244] [4.2 Regression] FAIL: gcc.c-torture/execute/builtin-bitops-1.c execution, -O3 -fomit-frame-pointer -funroll-loops

2006-06-25 Thread dave at hiauly1 dot hia dot nrc dot ca


--- Comment #21 from dave at hiauly1 dot hia dot nrc dot ca  2006-06-25 
15:32 ---
Subject: Re:  [4.2 Regression] FAIL: gcc.c-torture/execute/builtin-bitops-1.c
execution,  -O3 -fomit-frame-pointer -funroll-loops

 I looked at the documentation for lshiftrt, but it doesn't say
 whether the shift amount range handled by the PA insn for variable
 shifts is ok or not.  On the otherhand, there's no obvious reason
 why we should need to support logical right shifts larger than 31
 bits and I have to wonder why the generated code does this.

I looked at this a bit more and I believe that this behavior is normal
when SHIFT_COUNT_TRUNCATED is defined.

The test doesn't fail with -fno-unroll-loops-all-loops.  It appears
to me that this is a loop unrolling rather than a loop invariant bug,
although I must admit it's not clear where things actually go wrong
because of the complexity of this operation.

I modified the testcase a bit to make debugging easier.  I've attached
the modified testcase and the dumps from loop2_unroll, loop2_done, web
and cse2.  The initialization of count in the block after code_label 21
definitely appears wrong after cse2.

I've also attached the final assembly code for reference.

Dave


--- Comment #22 from dave at hiauly1 dot hia dot nrc dot ca  2006-06-25 
15:32 ---
Created an attachment (id=11748)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11748action=view)


--- Comment #23 from dave at hiauly1 dot hia dot nrc dot ca  2006-06-25 
15:32 ---
Created an attachment (id=11749)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11749action=view)


--- Comment #24 from dave at hiauly1 dot hia dot nrc dot ca  2006-06-25 
15:32 ---
Created an attachment (id=11750)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11750action=view)


--- Comment #25 from dave at hiauly1 dot hia dot nrc dot ca  2006-06-25 
15:32 ---
Created an attachment (id=11751)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11751action=view)


--- Comment #26 from dave at hiauly1 dot hia dot nrc dot ca  2006-06-25 
15:32 ---
Created an attachment (id=11752)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11752action=view)


--- Comment #27 from dave at hiauly1 dot hia dot nrc dot ca  2006-06-25 
15:32 ---
Created an attachment (id=11753)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11753action=view)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26244



[Bug tree-optimization/28162] [4.2 Regression] ICE in set_value_range, at tree-vrp.c:157

2006-06-25 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
Summary|ICE in set_value_range, at  |[4.2 Regression] ICE in
   |tree-vrp.c:157  |set_value_range, at tree-
   ||vrp.c:157
   Target Milestone|--- |4.2.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28162



[Bug c++/27821] [4.0/4.1 regression] ICE with invalid ptr-to-member

2006-06-25 Thread lmillward at gcc dot gnu dot org


--- Comment #4 from lmillward at gcc dot gnu dot org  2006-06-25 17:00 
---
Subject: Bug 27821

Author: lmillward
Date: Sun Jun 25 17:00:43 2006
New Revision: 114988

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114988
Log:
PR c++/27821
* decl.c (grokdeclarator): Return error_mark_node 
on invalid uses of the scope resolution operator.


Added:
branches/gcc-4_1-branch/gcc/testsuite/g++.dg/template/error22.C
Modified:
branches/gcc-4_1-branch/gcc/cp/ChangeLog
branches/gcc-4_1-branch/gcc/cp/decl.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27821



[Bug c++/27821] [4.0/4.1 regression] ICE with invalid ptr-to-member

2006-06-25 Thread lmillward at gcc dot gnu dot org


--- Comment #5 from lmillward at gcc dot gnu dot org  2006-06-25 17:05 
---
Subject: Bug 27821

Author: lmillward
Date: Sun Jun 25 17:05:22 2006
New Revision: 114989

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114989
Log:
PR c++/27821
* decl.c (grokdeclarator): Return error_mark_node 
on invalid uses of the scope resolution operator.


Added:
branches/gcc-4_0-branch/gcc/testsuite/g++.dg/template/error22.C
Modified:
branches/gcc-4_0-branch/gcc/cp/ChangeLog
branches/gcc-4_0-branch/gcc/cp/decl.c
branches/gcc-4_0-branch/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27821



[Bug c++/27821] [4.0/4.1 regression] ICE with invalid ptr-to-member

2006-06-25 Thread lmillward at gcc dot gnu dot org


--- Comment #6 from lmillward at gcc dot gnu dot org  2006-06-25 17:06 
---
Fixed in 4.1.2 and 4.0.4.


-- 

lmillward at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27821



[Bug middle-end/28151] [4.1/4.2 Regression] ICE with complex math

2006-06-25 Thread ebotcazou at gcc dot gnu dot org


--- Comment #10 from ebotcazou at gcc dot gnu dot org  2006-06-25 17:16 
---
Subject: Bug 28151

Author: ebotcazou
Date: Sun Jun 25 17:16:25 2006
New Revision: 114992

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114992
Log:
PR middle-end/28151
* fold-const.c (const_binop): Be prepared for self returning zero.
Simplify code handling complex values.


Added:
trunk/gcc/testsuite/gcc.c-torture/compile/20060625-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/fold-const.c
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28151



[Bug middle-end/28151] [4.1/4.2 Regression] ICE with complex math

2006-06-25 Thread ebotcazou at gcc dot gnu dot org


--- Comment #11 from ebotcazou at gcc dot gnu dot org  2006-06-25 17:18 
---
Subject: Bug 28151

Author: ebotcazou
Date: Sun Jun 25 17:18:00 2006
New Revision: 114993

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114993
Log:
PR middle-end/28151
* fold-const.c (const_binop): Be prepared for self returning zero.
Simplify code handling complex values.


Added:
branches/gcc-4_1-branch/gcc/testsuite/gcc.c-torture/compile/20060625-1.c
Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/fold-const.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28151



[Bug middle-end/28151] [4.1/4.2 Regression] ICE with complex math

2006-06-25 Thread ebotcazou at gcc dot gnu dot org


--- Comment #12 from ebotcazou at gcc dot gnu dot org  2006-06-25 17:19 
---
Fixed everywhere.


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28151



[Bug fortran/25056] non-PURE function should not be a valid argument

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #4 from pault at gcc dot gnu dot org  2006-06-25 18:08 ---
Subject: Bug 25056

Author: pault
Date: Sun Jun 25 18:08:13 2006
New Revision: 114994

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114994
Log:
2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/25056
* interface.c (compare_actual_formal): Signal an error if the formal
argument is a pure procedure and the actual is not pure.

PR fortran/27554
* resolve.c (resolve_actual_arglist): If the type of procedure
passed as an actual argument is not already declared, see if it is
an intrinsic.

PR fortran/25073
* resolve.c (resolve_select): Use bits 1 and 2 of a new int to
keep track of  the appearance of constant logical case expressions.
Signal an error is either value appears more than once.

PR fortran/20874
* resolve.c (resolve_fl_procedure): Signal an error if an elemental
function is not scalar valued.

PR fortran/20867
* match.c (recursive_stmt_fcn): Perform implicit typing of variables.

PR fortran/22038
* match.c (match_forall_iterator): Mark new variables as
FL_UNKNOWN if the match fails.

PR fortran/28119
* match.c (gfc_match_forall): Remove extraneous call to
gfc_match_eos.

PR fortran/25072
* resolve.c (resolve_code, resolve_function): Rework
forall_flag scheme so that it is set and has a value of
2, when the code-expr (ie. the forall mask) is resolved.
This is used to change block to mask in the non-PURE
error message.


2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20867
* gfortran.dg/stfunc_3.f90: New test.

PR fortran/25056
* gfortran.dg/impure_actual_1.f90: New test.

PR fortran/20874
* gfortran.dg/elemental_result_1.f90: New test.

PR fortran/25073
* gfortran.dg/select_7.f90: New test.

PR fortran/27554
* intrinsic_actual_1.f: New test.

PR fortran/22038
PR fortran/28119
* gfortran.dg/forall_4.f90: New test.

PR fortran/25072
* gfortran.dg/forall_5.f90: New test.



Added:
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/elemental_result_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/forall_4.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/forall_5.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/impure_actual_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/select_7.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/stfunc_3.f90
Modified:
branches/gcc-4_1-branch/gcc/fortran/ChangeLog
branches/gcc-4_1-branch/gcc/fortran/interface.c
branches/gcc-4_1-branch/gcc/fortran/match.c
branches/gcc-4_1-branch/gcc/fortran/resolve.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25056



[Bug fortran/20874] elemental function ought to be scalar

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #6 from pault at gcc dot gnu dot org  2006-06-25 18:08 ---
Subject: Bug 20874

Author: pault
Date: Sun Jun 25 18:08:13 2006
New Revision: 114994

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114994
Log:
2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/25056
* interface.c (compare_actual_formal): Signal an error if the formal
argument is a pure procedure and the actual is not pure.

PR fortran/27554
* resolve.c (resolve_actual_arglist): If the type of procedure
passed as an actual argument is not already declared, see if it is
an intrinsic.

PR fortran/25073
* resolve.c (resolve_select): Use bits 1 and 2 of a new int to
keep track of  the appearance of constant logical case expressions.
Signal an error is either value appears more than once.

PR fortran/20874
* resolve.c (resolve_fl_procedure): Signal an error if an elemental
function is not scalar valued.

PR fortran/20867
* match.c (recursive_stmt_fcn): Perform implicit typing of variables.

PR fortran/22038
* match.c (match_forall_iterator): Mark new variables as
FL_UNKNOWN if the match fails.

PR fortran/28119
* match.c (gfc_match_forall): Remove extraneous call to
gfc_match_eos.

PR fortran/25072
* resolve.c (resolve_code, resolve_function): Rework
forall_flag scheme so that it is set and has a value of
2, when the code-expr (ie. the forall mask) is resolved.
This is used to change block to mask in the non-PURE
error message.


2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20867
* gfortran.dg/stfunc_3.f90: New test.

PR fortran/25056
* gfortran.dg/impure_actual_1.f90: New test.

PR fortran/20874
* gfortran.dg/elemental_result_1.f90: New test.

PR fortran/25073
* gfortran.dg/select_7.f90: New test.

PR fortran/27554
* intrinsic_actual_1.f: New test.

PR fortran/22038
PR fortran/28119
* gfortran.dg/forall_4.f90: New test.

PR fortran/25072
* gfortran.dg/forall_5.f90: New test.



Added:
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/elemental_result_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/forall_4.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/forall_5.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/impure_actual_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/select_7.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/stfunc_3.f90
Modified:
branches/gcc-4_1-branch/gcc/fortran/ChangeLog
branches/gcc-4_1-branch/gcc/fortran/interface.c
branches/gcc-4_1-branch/gcc/fortran/match.c
branches/gcc-4_1-branch/gcc/fortran/resolve.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20874



[Bug fortran/27554] Strange assembler produced

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #5 from pault at gcc dot gnu dot org  2006-06-25 18:08 ---
Subject: Bug 27554

Author: pault
Date: Sun Jun 25 18:08:13 2006
New Revision: 114994

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114994
Log:
2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/25056
* interface.c (compare_actual_formal): Signal an error if the formal
argument is a pure procedure and the actual is not pure.

PR fortran/27554
* resolve.c (resolve_actual_arglist): If the type of procedure
passed as an actual argument is not already declared, see if it is
an intrinsic.

PR fortran/25073
* resolve.c (resolve_select): Use bits 1 and 2 of a new int to
keep track of  the appearance of constant logical case expressions.
Signal an error is either value appears more than once.

PR fortran/20874
* resolve.c (resolve_fl_procedure): Signal an error if an elemental
function is not scalar valued.

PR fortran/20867
* match.c (recursive_stmt_fcn): Perform implicit typing of variables.

PR fortran/22038
* match.c (match_forall_iterator): Mark new variables as
FL_UNKNOWN if the match fails.

PR fortran/28119
* match.c (gfc_match_forall): Remove extraneous call to
gfc_match_eos.

PR fortran/25072
* resolve.c (resolve_code, resolve_function): Rework
forall_flag scheme so that it is set and has a value of
2, when the code-expr (ie. the forall mask) is resolved.
This is used to change block to mask in the non-PURE
error message.


2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20867
* gfortran.dg/stfunc_3.f90: New test.

PR fortran/25056
* gfortran.dg/impure_actual_1.f90: New test.

PR fortran/20874
* gfortran.dg/elemental_result_1.f90: New test.

PR fortran/25073
* gfortran.dg/select_7.f90: New test.

PR fortran/27554
* intrinsic_actual_1.f: New test.

PR fortran/22038
PR fortran/28119
* gfortran.dg/forall_4.f90: New test.

PR fortran/25072
* gfortran.dg/forall_5.f90: New test.



Added:
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/elemental_result_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/forall_4.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/forall_5.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/impure_actual_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/select_7.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/stfunc_3.f90
Modified:
branches/gcc-4_1-branch/gcc/fortran/ChangeLog
branches/gcc-4_1-branch/gcc/fortran/interface.c
branches/gcc-4_1-branch/gcc/fortran/match.c
branches/gcc-4_1-branch/gcc/fortran/resolve.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27554



[Bug fortran/20867] statement function args not given implicit type early enough

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #4 from pault at gcc dot gnu dot org  2006-06-25 18:08 ---
Subject: Bug 20867

Author: pault
Date: Sun Jun 25 18:08:13 2006
New Revision: 114994

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114994
Log:
2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/25056
* interface.c (compare_actual_formal): Signal an error if the formal
argument is a pure procedure and the actual is not pure.

PR fortran/27554
* resolve.c (resolve_actual_arglist): If the type of procedure
passed as an actual argument is not already declared, see if it is
an intrinsic.

PR fortran/25073
* resolve.c (resolve_select): Use bits 1 and 2 of a new int to
keep track of  the appearance of constant logical case expressions.
Signal an error is either value appears more than once.

PR fortran/20874
* resolve.c (resolve_fl_procedure): Signal an error if an elemental
function is not scalar valued.

PR fortran/20867
* match.c (recursive_stmt_fcn): Perform implicit typing of variables.

PR fortran/22038
* match.c (match_forall_iterator): Mark new variables as
FL_UNKNOWN if the match fails.

PR fortran/28119
* match.c (gfc_match_forall): Remove extraneous call to
gfc_match_eos.

PR fortran/25072
* resolve.c (resolve_code, resolve_function): Rework
forall_flag scheme so that it is set and has a value of
2, when the code-expr (ie. the forall mask) is resolved.
This is used to change block to mask in the non-PURE
error message.


2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20867
* gfortran.dg/stfunc_3.f90: New test.

PR fortran/25056
* gfortran.dg/impure_actual_1.f90: New test.

PR fortran/20874
* gfortran.dg/elemental_result_1.f90: New test.

PR fortran/25073
* gfortran.dg/select_7.f90: New test.

PR fortran/27554
* intrinsic_actual_1.f: New test.

PR fortran/22038
PR fortran/28119
* gfortran.dg/forall_4.f90: New test.

PR fortran/25072
* gfortran.dg/forall_5.f90: New test.



Added:
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/elemental_result_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/forall_4.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/forall_5.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/impure_actual_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/select_7.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/stfunc_3.f90
Modified:
branches/gcc-4_1-branch/gcc/fortran/ChangeLog
branches/gcc-4_1-branch/gcc/fortran/interface.c
branches/gcc-4_1-branch/gcc/fortran/match.c
branches/gcc-4_1-branch/gcc/fortran/resolve.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20867



[Bug fortran/25073] CASEs overlap

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #11 from pault at gcc dot gnu dot org  2006-06-25 18:08 ---
Subject: Bug 25073

Author: pault
Date: Sun Jun 25 18:08:13 2006
New Revision: 114994

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114994
Log:
2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/25056
* interface.c (compare_actual_formal): Signal an error if the formal
argument is a pure procedure and the actual is not pure.

PR fortran/27554
* resolve.c (resolve_actual_arglist): If the type of procedure
passed as an actual argument is not already declared, see if it is
an intrinsic.

PR fortran/25073
* resolve.c (resolve_select): Use bits 1 and 2 of a new int to
keep track of  the appearance of constant logical case expressions.
Signal an error is either value appears more than once.

PR fortran/20874
* resolve.c (resolve_fl_procedure): Signal an error if an elemental
function is not scalar valued.

PR fortran/20867
* match.c (recursive_stmt_fcn): Perform implicit typing of variables.

PR fortran/22038
* match.c (match_forall_iterator): Mark new variables as
FL_UNKNOWN if the match fails.

PR fortran/28119
* match.c (gfc_match_forall): Remove extraneous call to
gfc_match_eos.

PR fortran/25072
* resolve.c (resolve_code, resolve_function): Rework
forall_flag scheme so that it is set and has a value of
2, when the code-expr (ie. the forall mask) is resolved.
This is used to change block to mask in the non-PURE
error message.


2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20867
* gfortran.dg/stfunc_3.f90: New test.

PR fortran/25056
* gfortran.dg/impure_actual_1.f90: New test.

PR fortran/20874
* gfortran.dg/elemental_result_1.f90: New test.

PR fortran/25073
* gfortran.dg/select_7.f90: New test.

PR fortran/27554
* intrinsic_actual_1.f: New test.

PR fortran/22038
PR fortran/28119
* gfortran.dg/forall_4.f90: New test.

PR fortran/25072
* gfortran.dg/forall_5.f90: New test.



Added:
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/elemental_result_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/forall_4.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/forall_5.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/impure_actual_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/select_7.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/stfunc_3.f90
Modified:
branches/gcc-4_1-branch/gcc/fortran/ChangeLog
branches/gcc-4_1-branch/gcc/fortran/interface.c
branches/gcc-4_1-branch/gcc/fortran/match.c
branches/gcc-4_1-branch/gcc/fortran/resolve.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25073



[Bug fortran/28119] forall_stmt ; stmt gives an internal error

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2006-06-25 18:08 ---
Subject: Bug 28119

Author: pault
Date: Sun Jun 25 18:08:13 2006
New Revision: 114994

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114994
Log:
2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/25056
* interface.c (compare_actual_formal): Signal an error if the formal
argument is a pure procedure and the actual is not pure.

PR fortran/27554
* resolve.c (resolve_actual_arglist): If the type of procedure
passed as an actual argument is not already declared, see if it is
an intrinsic.

PR fortran/25073
* resolve.c (resolve_select): Use bits 1 and 2 of a new int to
keep track of  the appearance of constant logical case expressions.
Signal an error is either value appears more than once.

PR fortran/20874
* resolve.c (resolve_fl_procedure): Signal an error if an elemental
function is not scalar valued.

PR fortran/20867
* match.c (recursive_stmt_fcn): Perform implicit typing of variables.

PR fortran/22038
* match.c (match_forall_iterator): Mark new variables as
FL_UNKNOWN if the match fails.

PR fortran/28119
* match.c (gfc_match_forall): Remove extraneous call to
gfc_match_eos.

PR fortran/25072
* resolve.c (resolve_code, resolve_function): Rework
forall_flag scheme so that it is set and has a value of
2, when the code-expr (ie. the forall mask) is resolved.
This is used to change block to mask in the non-PURE
error message.


2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20867
* gfortran.dg/stfunc_3.f90: New test.

PR fortran/25056
* gfortran.dg/impure_actual_1.f90: New test.

PR fortran/20874
* gfortran.dg/elemental_result_1.f90: New test.

PR fortran/25073
* gfortran.dg/select_7.f90: New test.

PR fortran/27554
* intrinsic_actual_1.f: New test.

PR fortran/22038
PR fortran/28119
* gfortran.dg/forall_4.f90: New test.

PR fortran/25072
* gfortran.dg/forall_5.f90: New test.



Added:
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/elemental_result_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/forall_4.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/forall_5.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/impure_actual_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/select_7.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/stfunc_3.f90
Modified:
branches/gcc-4_1-branch/gcc/fortran/ChangeLog
branches/gcc-4_1-branch/gcc/fortran/interface.c
branches/gcc-4_1-branch/gcc/fortran/match.c
branches/gcc-4_1-branch/gcc/fortran/resolve.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28119



[Bug fortran/22038] Forall with mask broken

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #10 from pault at gcc dot gnu dot org  2006-06-25 18:08 ---
Subject: Bug 22038

Author: pault
Date: Sun Jun 25 18:08:13 2006
New Revision: 114994

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114994
Log:
2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/25056
* interface.c (compare_actual_formal): Signal an error if the formal
argument is a pure procedure and the actual is not pure.

PR fortran/27554
* resolve.c (resolve_actual_arglist): If the type of procedure
passed as an actual argument is not already declared, see if it is
an intrinsic.

PR fortran/25073
* resolve.c (resolve_select): Use bits 1 and 2 of a new int to
keep track of  the appearance of constant logical case expressions.
Signal an error is either value appears more than once.

PR fortran/20874
* resolve.c (resolve_fl_procedure): Signal an error if an elemental
function is not scalar valued.

PR fortran/20867
* match.c (recursive_stmt_fcn): Perform implicit typing of variables.

PR fortran/22038
* match.c (match_forall_iterator): Mark new variables as
FL_UNKNOWN if the match fails.

PR fortran/28119
* match.c (gfc_match_forall): Remove extraneous call to
gfc_match_eos.

PR fortran/25072
* resolve.c (resolve_code, resolve_function): Rework
forall_flag scheme so that it is set and has a value of
2, when the code-expr (ie. the forall mask) is resolved.
This is used to change block to mask in the non-PURE
error message.


2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20867
* gfortran.dg/stfunc_3.f90: New test.

PR fortran/25056
* gfortran.dg/impure_actual_1.f90: New test.

PR fortran/20874
* gfortran.dg/elemental_result_1.f90: New test.

PR fortran/25073
* gfortran.dg/select_7.f90: New test.

PR fortran/27554
* intrinsic_actual_1.f: New test.

PR fortran/22038
PR fortran/28119
* gfortran.dg/forall_4.f90: New test.

PR fortran/25072
* gfortran.dg/forall_5.f90: New test.



Added:
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/elemental_result_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/forall_4.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/forall_5.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/impure_actual_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/select_7.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/stfunc_3.f90
Modified:
branches/gcc-4_1-branch/gcc/fortran/ChangeLog
branches/gcc-4_1-branch/gcc/fortran/interface.c
branches/gcc-4_1-branch/gcc/fortran/match.c
branches/gcc-4_1-branch/gcc/fortran/resolve.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22038



[Bug fortran/25072] non PURE function used in For-All

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #9 from pault at gcc dot gnu dot org  2006-06-25 18:08 ---
Subject: Bug 25072

Author: pault
Date: Sun Jun 25 18:08:13 2006
New Revision: 114994

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=114994
Log:
2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/25056
* interface.c (compare_actual_formal): Signal an error if the formal
argument is a pure procedure and the actual is not pure.

PR fortran/27554
* resolve.c (resolve_actual_arglist): If the type of procedure
passed as an actual argument is not already declared, see if it is
an intrinsic.

PR fortran/25073
* resolve.c (resolve_select): Use bits 1 and 2 of a new int to
keep track of  the appearance of constant logical case expressions.
Signal an error is either value appears more than once.

PR fortran/20874
* resolve.c (resolve_fl_procedure): Signal an error if an elemental
function is not scalar valued.

PR fortran/20867
* match.c (recursive_stmt_fcn): Perform implicit typing of variables.

PR fortran/22038
* match.c (match_forall_iterator): Mark new variables as
FL_UNKNOWN if the match fails.

PR fortran/28119
* match.c (gfc_match_forall): Remove extraneous call to
gfc_match_eos.

PR fortran/25072
* resolve.c (resolve_code, resolve_function): Rework
forall_flag scheme so that it is set and has a value of
2, when the code-expr (ie. the forall mask) is resolved.
This is used to change block to mask in the non-PURE
error message.


2006-06-25  Paul Thomas  [EMAIL PROTECTED]

PR fortran/20867
* gfortran.dg/stfunc_3.f90: New test.

PR fortran/25056
* gfortran.dg/impure_actual_1.f90: New test.

PR fortran/20874
* gfortran.dg/elemental_result_1.f90: New test.

PR fortran/25073
* gfortran.dg/select_7.f90: New test.

PR fortran/27554
* intrinsic_actual_1.f: New test.

PR fortran/22038
PR fortran/28119
* gfortran.dg/forall_4.f90: New test.

PR fortran/25072
* gfortran.dg/forall_5.f90: New test.



Added:
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/elemental_result_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/forall_4.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/forall_5.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/impure_actual_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/intrinsic_actual_1.f
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/select_7.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/stfunc_3.f90
Modified:
branches/gcc-4_1-branch/gcc/fortran/ChangeLog
branches/gcc-4_1-branch/gcc/fortran/interface.c
branches/gcc-4_1-branch/gcc/fortran/match.c
branches/gcc-4_1-branch/gcc/fortran/resolve.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25072



[Bug fortran/25056] non-PURE function should not be a valid argument

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #5 from pault at gcc dot gnu dot org  2006-06-25 18:09 ---
Fixed on trunk and 4.1

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25056



[Bug fortran/20867] statement function args not given implicit type early enough

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #5 from pault at gcc dot gnu dot org  2006-06-25 18:10 ---
Fixed on trunk and 4.1

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20867



[Bug fortran/20874] elemental function ought to be scalar

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #7 from pault at gcc dot gnu dot org  2006-06-25 18:11 ---
Fixed on trunk and 4.1

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20874



[Bug fortran/25073] CASEs overlap

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #12 from pault at gcc dot gnu dot org  2006-06-25 18:11 ---
Fixed on trunk and 4.1

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25073



[Bug fortran/27554] Strange assembler produced

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #6 from pault at gcc dot gnu dot org  2006-06-25 18:12 ---
Fixed on trunk and 4.1

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27554



[Bug fortran/22038] Forall with mask broken

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #11 from pault at gcc dot gnu dot org  2006-06-25 18:12 ---
Fixed on trunk and 4.1

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22038



[Bug fortran/28119] forall_stmt ; stmt gives an internal error

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #4 from pault at gcc dot gnu dot org  2006-06-25 18:13 ---
Fixed on trunk and 4.1

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28119



[Bug fortran/25072] non PURE function used in For-All

2006-06-25 Thread pault at gcc dot gnu dot org


--- Comment #10 from pault at gcc dot gnu dot org  2006-06-25 18:13 ---
Fixed on trunk and 4.1

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25072



[Bug c++/28164] g++ core when init a struct

2006-06-25 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2006-06-25 19:55 ---
Fixed in 4.0.0


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
   Keywords||ice-on-valid-code
 Resolution||FIXED
   Target Milestone|--- |4.0.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28164



[Bug target/27827] gcc 4 produces worse x87 code on all platforms than gcc 3

2006-06-25 Thread rguenth at gcc dot gnu dot org


--- Comment #18 from rguenth at gcc dot gnu dot org  2006-06-25 20:05 
---
Unfortunately we don't have infrastructure for performance regression tests. 
Btw. did you check what happens if you do not unroll the innermost loop
manually but let -funroll-loops do it?  For me the performance is the same (but
I may have screwed up removing the unrolling).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27827



[Bug middle-end/27950] [4.2 regression] undefined reference when compiling valgrind 3.2.0

2006-06-25 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-06-25 23:05:26
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27950



[Bug middle-end/27889] [4.1/4.2 Regression] ICE on complex assignment in nested function

2006-06-25 Thread roger at eyesopen dot com


--- Comment #14 from roger at eyesopen dot com  2006-06-26 00:24 ---
The problem appears to be that DECL_COMPLEX_GIMPLE_REG_P is not getting set on
the declarations correctly.  The VAR_DECLs that are operands to the additions
don't have DECL_COMPLEX_GIMPLE_REG_P set, so fail the is_gimple_val check in
verify_stmts.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27889



[Bug target/27827] gcc 4 produces worse x87 code on all platforms than gcc 3

2006-06-25 Thread whaley at cs dot utsa dot edu


--- Comment #19 from whaley at cs dot utsa dot edu  2006-06-26 00:55 ---
Thanks for the info.  I'm sorry to hear that no performance regression tests
are done, but I guess it kind of explains why these problems reoccur :)

As to not unrolling, the fully unrolled case is almost always commandingly
better whenever I've looked at it.  After your note, I just tried on my P4,
using ATLAS's  P4 kernel, and I get (ku is inner loop unrolling, and nb=40, so
40 is fully unrolled):
  GCC 4 ku=1  : 1.65Gflop
  GCC 4 ku=40 : 1.84Gflop
  Gcc 3 ku=1  : 1.90Gflop
  Gcc 3 ku=40:  2.19Gflop

This is throwing the -funroll-loops flag.

BTW, gcc 4 w/o the -funroll-loops (ku=1) is indeed slower, at roughly 1.54 . .
.

Anyway, I've never found the performance of gcc ku=1 competitive with ku=fully
unrolled on any machine.  Even in assembly, I have to fully unroll the inner
loop to get near peak on all intel machines.  On the Opteron, you can get
within 5% or so with a rolled loop in assembly, but I've not gotten a C code to
do that.I think the gcc unrolling probably defaults to something like 4 or 8
(guess from performance, not verified): unrolling all the way (the loop is over
a compile-time constant) is the way to go . . .

When you said competitive, did you mean that gcc 4 ku=1 was competitive with
gcc 4 ku=40 or gcc 3 ku=1?  If the latter, I find it hard to believe unless you
use SSE for gcc 4 and something unexpected happens.  Even so, if you are using
SSE try it with the single precision kernel, where SSE cannot compete with the
x87 unit (even the broken one in gcc 4). 

Thanks,
Clint


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27827



[Bug preprocessor/28165] New: _Pragma GCC system_header broken

2006-06-25 Thread sabre at nondot dot org
In a main translation unit, this:

#pragma GCC system_header

results in this warning:
warning: #pragma system_header ignored outside include file

However, this doesn't:
_Pragma (GCC system_header)

In fact, this causes GCC to emit a line marker switching the main translation
unit to look like a system header.

-Chris


-- 
   Summary: _Pragma GCC system_header broken
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: preprocessor
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sabre at nondot dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28165



[Bug c/28166] New: internal compiler error when -finstrument-functions on an inline function.

2006-06-25 Thread murdo at catapult dot com
Internal compiler error when compiling an inline static function with
-finstrument-functions and -finline-functions, even if the function has the
no_instrument_function attribute.

No error occurs if inlining is turned off or an addressable version of the
function is provided with -fkeep-inline-functions


-- 
   Summary: internal compiler error when -finstrument-functions on
an inline function.
   Product: gcc
   Version: 3.4.3
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: murdo at catapult dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28166



[Bug c/28166] internal compiler error when -finstrument-functions on an inline function.

2006-06-25 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2006-06-26 02:42 ---
This was fixed in 4.0.0 and this is also a dup of bug 16780.

*** This bug has been marked as a duplicate of 16780 ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28166



[Bug c/16780] [3.4 regression] ICE with -finstrument-functions -funit-at-a-time -finline -finline-functions

2006-06-25 Thread pinskia at gcc dot gnu dot org


--- Comment #9 from pinskia at gcc dot gnu dot org  2006-06-26 02:42 ---
*** Bug 28166 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||murdo at catapult dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16780



[Bug c/28166] internal compiler error when -finstrument-functions on an inline function.

2006-06-25 Thread murdo at catapult dot com


--- Comment #2 from murdo at catapult dot com  2006-06-26 02:43 ---
Created an attachment (id=11754)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11754action=view)
Minimum failing case plus gcc version, command, output and .i file


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28166