[Bug fortran/37787] right-left hand side overlap not recognized with EQUIVALENCEd array assignment

2008-10-19 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2008-10-19 07:51 ---
Fixed on trunk and 4.3


-- 

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



[Bug fortran/37787] right-left hand side overlap not recognized with EQUIVALENCEd array assignment

2008-10-19 Thread pault at gcc dot gnu dot org


--- Comment #4 from pault at gcc dot gnu dot org  2008-10-19 07:52 ---
Subject: Bug 37787

Author: pault
Date: Sun Oct 19 07:50:35 2008
New Revision: 141219

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141219
Log:
2008-10-19  Paul Thomas  [EMAIL PROTECTED]

PR fortran/37787
* dependency.c (gfc_are_equivalenced_arrays): Look in symbol
namespace rather than current namespace, if it is available.

2008-10-19  Paul Thomas  [EMAIL PROTECTED]

PR fortran/37787
* gfortran.dg/module_equivalence_5.f90: New test.

Added:
branches/gcc-4_3-branch/gcc/testsuite/gfortran.dg/module_equivalence_5.f90
Modified:
branches/gcc-4_3-branch/gcc/fortran/ChangeLog
branches/gcc-4_3-branch/gcc/fortran/dependency.c
branches/gcc-4_3-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug libfortran/37707] Namelist read of array of derived type incorrect

2008-10-19 Thread burnus at gcc dot gnu dot org


--- Comment #22 from burnus at gcc dot gnu dot org  2008-10-19 09:44 ---
(In reply to comment #19)
  Warning: CHARACTER expression at (1) is being truncated (222/200)
 Tobias, you are right - the string is too short - 250 characters should do,
 however, and I get the same error.
 How did you provoke the warning (I certainly do not get it by default) ...

Well, actually I saw it when I compiled the program with NAG f95
(Initialisation expression for L truncated) which shows this message by
default. gfortran shows it with -Wcharacter-truncation or with -Wall (which I
used). [Contrary to NAG f95, gfortran shows the warning not only for
initialization expressions.]

(In reply to comment #21)
 Toon and Tobias:  Please try this attached patch.

Looks OK.

 The only thing I need to determine now is if there is a legacy behaviour we
 may want to deal with

Sunf95 and ifort seem to read -- without quotes -- all alphanumerical
characters plus e.g. § until the next space/comma (and they treat %'$
special- ignore, end of string/namelist or as error). With NAG f95, g95,
openf95, pathf95 and pgf95 one gets always an error message without quotes.

With gfortran-4.3 str=test / does not work but str=test,/ does.

I think the patch by itself is OK but doing the same as ifort and sunf95 would
be also OK.

Interesting that this did not come up as issue before. Seemingly no one uses
write(...,namelist) with characters (as almost all compiler get this wrong) and
seemingly reading a list of characters is also not widely done.


@@ -1453,7 +1453,7 @@ namelist_write (st_parameter_dt *dtp)
   break;

 default:
-  dtp-u.p.nml_delim = '\0';
+  dtp-u.p.nml_delim = '';

wouldn't it be easier/faster to simply remove the whole switch and use simply
  dtp-u.p.nml_delim = '';
without special cases for the current delim status?


-- 


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



[Bug c/37870] New: ICE in extract_bit_field_1

2008-10-19 Thread bernard at brenda-arkle dot me dot uk
Reproducing this is easy.

cat  ICE.sample.c 'EOF'
typedef unsigned int size_t;

extern void *memcpy (void *__restrict __dest,
   __const void *__restrict __src, size_t __n)
 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));

unsigned xxx(long double arg)
{
struct
{
char dummy[8];
unsigned yyy:7;
} copy;
memcpy(copy, arg, sizeof(copy));
return copy.yyy;
}
EOF

invoking 'gcc -c -O1 sample.c' then emits
/home/bernard/ICE.sample.c: In function ‘xxx’:
/home/bernard/ICE.sample.c:8: internal compiler error: in extract_bit_field_1,
at expmed.c:1271
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

This is quite sensitive!  Small changes make the ICE
go away.  These include
 using -O0
 re-sizing the array member dummy[] in the struct
 Replacing the memcpy() with an assignment via a
cast pointer:
   give the struct a tag (e.g., struct fimbulwinter)
   copy = *((struct fimbulwinter *)arg)
 renaming memcpy() at both occurrences to by-pass the built-in

The last is suggestive, no?

This is NOT a duplicate of bug 37269, though the ICE is reported from
the same function.  I get the same behaviour after applying Andrew
Pinski's patch for that bug.  In fact, I found this bug in an echt
4.3.1 bootstrap build, applied AP's patch, still had it, then used
that compiler to bootstrap a 4.3.2 build, also with AP's patch.
Even using xgcc/cc1 from the stage 1 boostrap build of 4.3.2
showed the bug (there was nothing extra interesting in the
diagnostics produced).

'configure' was invoked with

'../gcc-4.3.2/configure' '--prefix=/usr' '--libexecdir=/usr/lib'
'--infodir=/usr/share/info' '--mandir=/usr/share/man' '--enable-libada'
'--enable-libssp' '--disable-werror' '--with-mpfr=/usr' '--with-gmp=/usr'
'--with-datarootdir=/usr/share' '--with-docdir=/usr/share/gcc-4.3.2/doc'
'--with-pdfdir=/usr/share/gcc-4.3.2/doc'
'--with-htmldir=/usr/share/gcc-4.3.2/doc/html' '--disable-coverage'
'--enable-nls' '--enable-__cxa_atexit' '--enable-decimal-float'
'--disable-fixed-point' '--enable-threads=posix' '--enable-clocale=gnu'
'--enable-shared' '--disable-intermodule'
'--enable-languages=ada,c++,fortran,java,objc,obj-c++,treelang,c'
'--with-local-prefix=/usr' '--with-gnu-ld' '--with-demangler-in-ld'
'--with-gnu-as' '--with-system-libunwind' '--with-system-zlib'
'--enable-bootstrap'

All those single quotes derive from my build scripts, which quote-and-
escape everything in sight.  The actual CPU is an Athlon64 X2 5600+
(the 2.9GHz flavour, not the 2.8GHz flavour).
My binutils are from release 2.18, built with an unpatched gcc-4.3.1 .


-- 
   Summary: ICE in extract_bit_field_1
   Product: gcc
   Version: 4.3.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bernard at brenda-arkle dot me dot uk
 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=37870



[Bug libfortran/37839] st_parameter_dt has unwanted padding, is out of sync with compiler

2008-10-19 Thread burnus at gcc dot gnu dot org


--- Comment #7 from burnus at gcc dot gnu dot org  2008-10-19 12:01 ---
*** Bug 37827 has been marked as a duplicate of this bug. ***


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu dot
   ||org


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



[Bug fortran/37827] Fortran IO structure - compiler vs. library (libgfortran) [requires ABI breaking?]

2008-10-19 Thread burnus at gcc dot gnu dot org


--- Comment #3 from burnus at gcc dot gnu dot org  2008-10-19 12:01 ---


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


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug libgcj/37871] New: testsuite/libjava.mauve is out of date / doesn't work with current mauve

2008-10-19 Thread doko at ubuntu dot com
Running
/scratch/packages/gcc/svn/classpath-098-merge-branch/libjava/testsuite/libjava.mauve/mauve.exp
...
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking how to create a pax tar archive... gnutar
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for Windows and DOS and OS/2 style pathnames... no
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... none
configure: creating ./config.status
config.status: creating Makefile
config.status: creating gnu/testlet/config.java
config.status: executing depfiles commands
make[2]: Entering directory
`/scratch/packages/gcc/svn/build-cpbranch/i686-linux-gnu/libjava/testsuite/mauve-build'
make[2]: *** No rule to make target `classes.stamp'.
make[2]: Leaving directory
`/scratch/packages/gcc/svn/build-cpbranch/i686-linux-gnu/libjava/testsuite/mauve-build'
FAIL: Mauve build


-- 
   Summary: testsuite/libjava.mauve is out of date / doesn't work
with current mauve
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgcj
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: doko at ubuntu dot com


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



[Bug middle-end/37870] [4.3/4.4 Regression] ICE in extract_bit_field_1

2008-10-19 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2008-10-19 12:40 ---
Confirmed.

We try to expand

  return (unsigned int) VIEW_CONVERT_EXPRstruct
  {
char dummy[8];
unnamed-unsigned:7 yyy;
  }(arg).yyy;

which is SRAed from the gimplified memcpy

  copy = VIEW_CONVERT_EXPRstruct
  {
char dummy[8];
unnamed-unsigned:7 yyy;
  }(arg);

to

bb 2:
  copy$yyy_5 = 0;
  copy$dummy$7_6 = VIEW_CONVERT_EXPRstruct
  {
char dummy[8];
unnamed-unsigned:7 yyy;
  }(arg_4(D)).dummy[7];
...
  SR.9_14 = VIEW_CONVERT_EXPRstruct
  {
char dummy[8];
unnamed-unsigned:7 yyy;
  }(arg_4(D)).yyy;
  copy$yyy_15 = SR.9_14;
  SR.10_16 = copy$yyy_15;
  D.1204_1 = SR.10_16;
  D.1203_2 = (unsigned int) D.1204_1;
  return D.1203_2;


It seems extract_bitfield_1 doesn't have a fallback path going through memory:

1261  /* Make sure we are playing with integral modes.  Pun with subregs
1262 if we aren't.  */
1263  {
1264enum machine_mode imode = int_mode_for_mode (GET_MODE (op0));
1265if (imode != GET_MODE (op0))
(gdb) l
1266  {
1267if (MEM_P (op0))
1268  op0 = adjust_address (op0, imode, 0);
1269else
1270  {
1271gcc_assert (imode != BLKmode);

obviously fails on i?86 with

(gdb) call debug_rtx (op0)
(reg/v:XF 59 [ arg ])

simply not going down this path and relying on the fallback seems to work.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
  Component|c   |middle-end
 Ever Confirmed|0   |1
   Keywords||ice-on-valid-code
  Known to fail||4.3.2 4.4.0
  Known to work||4.2.4
   Last reconfirmed|-00-00 00:00:00 |2008-10-19 12:40:45
   date||
Summary|ICE in extract_bit_field_1  |[4.3/4.4 Regression] ICE in
   ||extract_bit_field_1
   Target Milestone|--- |4.3.3


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



[Bug middle-end/37870] [4.3/4.4 Regression] ICE in extract_bit_field_1

2008-10-19 Thread rguenth at gcc dot gnu dot org


-- 

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|2008-10-19 12:40:45 |2008-10-19 12:50:28
   date||


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



[Bug fortran/37723] wrong result for left-right hand side array overlap and (possibly) negative strides

2008-10-19 Thread pault at gcc dot gnu dot org


--- Comment #8 from pault at gcc dot gnu dot org  2008-10-19 12:52 ---
Subject: Bug 37723

Author: pault
Date: Sun Oct 19 12:51:06 2008
New Revision: 141221

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141221
Log:
2008-10-19  Paul Thomas  [EMAIL PROTECTED]

PR fortran/37723
* dependency.c (gfc_dep_resolver ): If we find equal array
element references, go on to the next reference.

2008-10-19  Paul Thomas  [EMAIL PROTECTED]

PR fortran/37723
* gfortran.dg/dependency_22.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/dependency_22.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/dependency.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/37723] wrong result for left-right hand side array overlap and (possibly) negative strides

2008-10-19 Thread pault at gcc dot gnu dot org


--- Comment #9 from pault at gcc dot gnu dot org  2008-10-19 12:58 ---
Subject: Bug 37723

Author: pault
Date: Sun Oct 19 12:56:41 2008
New Revision: 141222

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141222
Log:
2008-10-19  Paul Thomas  [EMAIL PROTECTED]

PR fortran/37723
* dependency.c (gfc_dep_resolver ): If we find equal array
element references, go on to the next reference.

2008-10-19  Paul Thomas  [EMAIL PROTECTED]

PR fortran/37723
* gfortran.dg/dependency_22.f90: New test.

Added:
branches/gcc-4_3-branch/gcc/testsuite/gfortran.dg/dependency_22.f90
Modified:
branches/gcc-4_3-branch/gcc/fortran/ChangeLog
branches/gcc-4_3-branch/gcc/fortran/dependency.c
branches/gcc-4_3-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c/30260] Enumeration types and enumeration constants erroneously given unsigned types

2008-10-19 Thread manu at gcc dot gnu dot org


--- Comment #8 from manu at gcc dot gnu dot org  2008-10-19 13:53 ---
Subject: Bug 30260

Author: manu
Date: Sun Oct 19 13:52:10 2008
New Revision: 141224

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141224
Log:
2008-10-19  Manuel López-Ibáñez  [EMAIL PROTECTED]

PR c/30260
* c-decl.c (finish_enum): Convert non-integer enumerators to enum
type.
(build_enumerator): Convert enumerators that fit in integer to
integer type.
testsuite/
* gcc.dg/pr30260.c: New.

Added:
trunk/gcc/testsuite/gcc.dg/pr30260.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-decl.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c/37872] New: ICE in extract_bit_field_1

2008-10-19 Thread bernard at brenda-arkle dot me dot uk
Reproducing this is easy.

cat  ICE.sample.c 'EOF'
typedef unsigned int size_t;

extern void *memcpy (void *__restrict __dest,
   __const void *__restrict __src, size_t __n)
 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));

unsigned xxx(long double arg)
{
struct
{
char dummy[8];
unsigned yyy:7;
} copy;
memcpy(copy, arg, sizeof(copy));
return copy.yyy;
}
EOF

invoking 'gcc -c -O1 sample.c' then emits
/home/bernard/ICE.sample.c: In function ‘xxx’:
/home/bernard/ICE.sample.c:8: internal compiler error: in extract_bit_field_1,
at expmed.c:1271
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

This is quite sensitive!  Small changes make the ICE
go away.  These include
 using -O0
 re-sizing the array member dummy[] in the struct
 Replacing the memcpy() with an assignment via a
cast pointer:
   give the struct a tag (e.g., struct fimbulwinter)
   copy = *((struct fimbulwinter *)arg)
 renaming memcpy() at both occurrences to by-pass the built-in

The last is suggestive, no?

This is NOT a duplicate of bug 37269, though the ICE is reported from
the same function.  I get the same behaviour after applying Andrew
Pinski's patch for that bug.  In fact, I found this bug in an echt
4.3.1 bootstrap build, applied AP's patch, still had it, then used
that compiler to bootstrap a 4.3.2 build, also with AP's patch.
Even using xgcc/cc1 from the stage 1 boostrap build of 4.3.2
showed the bug (there was nothing extra interesting in the
diagnostics produced).

'configure' was invoked with

'../gcc-4.3.2/configure' '--prefix=/usr' '--libexecdir=/usr/lib'
'--infodir=/usr/share/info' '--mandir=/usr/share/man' '--enable-libada'
'--enable-libssp' '--disable-werror' '--with-mpfr=/usr' '--with-gmp=/usr'
'--with-datarootdir=/usr/share' '--with-docdir=/usr/share/gcc-4.3.2/doc'
'--with-pdfdir=/usr/share/gcc-4.3.2/doc'
'--with-htmldir=/usr/share/gcc-4.3.2/doc/html' '--disable-coverage'
'--enable-nls' '--enable-__cxa_atexit' '--enable-decimal-float'
'--disable-fixed-point' '--enable-threads=posix' '--enable-clocale=gnu'
'--enable-shared' '--disable-intermodule'
'--enable-languages=ada,c++,fortran,java,objc,obj-c++,treelang,c'
'--with-local-prefix=/usr' '--with-gnu-ld' '--with-demangler-in-ld'
'--with-gnu-as' '--with-system-libunwind' '--with-system-zlib'
'--enable-bootstrap'

All those single quotes derive from my build scripts, which quote-and-
escape everything in sight.  The actual CPU is an Athlon64 X2 5600+
(the 2.9GHz flavour, not the 2.8GHz flavour).
My binutils are from release 2.18, built with an unpatched gcc-4.3.1 .


-- 
   Summary: ICE in extract_bit_field_1
   Product: gcc
   Version: 4.3.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bernard at brenda-arkle dot me dot uk
 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=37872



[Bug c/30260] Enumeration types and enumeration constants erroneously given unsigned types

2008-10-19 Thread manu at gcc dot gnu dot org


--- Comment #9 from manu at gcc dot gnu dot org  2008-10-19 13:55 ---
Fixed for GCC 4.4


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug c/37872] ICE in extract_bit_field_1

2008-10-19 Thread bernard at brenda-arkle dot me dot uk


--- Comment #1 from bernard at brenda-arkle dot me dot uk  2008-10-19 13:57 
---


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


-- 

bernard at brenda-arkle dot me dot uk changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug middle-end/37870] [4.3/4.4 Regression] ICE in extract_bit_field_1

2008-10-19 Thread bernard at brenda-arkle dot me dot uk


--- Comment #2 from bernard at brenda-arkle dot me dot uk  2008-10-19 13:57 
---
*** Bug 37872 has been marked as a duplicate of this bug. ***


-- 


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



[Bug fortran/35681] wrong result for vector subscripted array expression in MVBITS

2008-10-19 Thread pault at gcc dot gnu dot org


--- Comment #12 from pault at gcc dot gnu dot org  2008-10-19 14:34 ---
To put the arguments succinctly, this is a double problem (apart from the
conformity issue):

(i) The original test case is losing the EXPR_PARENTHESES for some reason.  ie.
there is no question that in this case a temporary should be made for the
'FROM' actual argument.

(ii) 12.7.3Elemental subroutine actual arguments
An elemental subroutine is one that has only scalar dummy arguments, but may
have array actual arguments. In a reference to an elemental subroutine, either
all actual arguments shall be scalar, or all actual arguments associated with
INTENT (OUT) and INTENT (INOUT) dummy arguments shall be arrays of the same
shape and the remaining actual arguments shall be conformable with them. In the
case that the actual arguments associated with INTENT (OUT) and INTENT (INOUT)
dummy arguments are arrays, the values of the elements, if any, of the results
are the same as would be obtained if the subroutine had been applied
separately, in any order, to corresponding elements of each array actual
argument. In a reference to the intrinsic subroutine MVBITS, the actual
arguments corresponding to the TO and FROM dummy arguments may be the same
variable. Apart from this, the actual arguments in a reference to an elemental
subroutine must satisfy the restrictions of 12.4.1.6.

Since the 'TO' and 'FROM' arguments can alias in MVBITS and the results must be
order independent, the test case should also create a temporary, even without
enclosing parentheses.  For the reason described before
trans-stmt.c(gfc_conv_elemental_dependencies) this should be the 'TO' variable
and should be done on the basis of a dependency between 'TO' and 'FROM' to be
safe.

The implementation is complicated by the resolved_sym for MVBITS not carrying
formal arguments so that gfc_conv_elemental_dependencies does nothing, even if
it is spoon-fed the call.

Paul puts thinking hat on!


-- 


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



[Bug fortran/37723] wrong result for left-right hand side array overlap and (possibly) negative strides

2008-10-19 Thread pault at gcc dot gnu dot org


--- Comment #10 from pault at gcc dot gnu dot org  2008-10-19 14:34 ---
Fixed as obvious on trunk and 4.3

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



[Bug c/37873] New: ICE in extract_bit_field_1

2008-10-19 Thread bernard at brenda-arkle dot me dot uk
Reproducing this is easy.

cat  ICE.sample.c 'EOF'
typedef unsigned int size_t;

extern void *memcpy (void *__restrict __dest,
   __const void *__restrict __src, size_t __n)
 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));

unsigned xxx(long double arg)
{
struct
{
char dummy[8];
unsigned yyy:7;
} copy;
memcpy(copy, arg, sizeof(copy));
return copy.yyy;
}
EOF

invoking 'gcc -c -O1 sample.c' then emits
/home/bernard/ICE.sample.c: In function ‘xxx’:
/home/bernard/ICE.sample.c:8: internal compiler error: in extract_bit_field_1,
at expmed.c:1271
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

This is quite sensitive!  Small changes make the ICE
go away.  These include
 using -O0
 re-sizing the array member dummy[] in the struct
 Replacing the memcpy() with an assignment via a
cast pointer:
   give the struct a tag (e.g., struct fimbulwinter)
   copy = *((struct fimbulwinter *)arg)
 renaming memcpy() at both occurrences to by-pass the built-in

The last is suggestive, no?

This is NOT a duplicate of bug 37269, though the ICE is reported from
the same function.  I get the same behaviour after applying Andrew
Pinski's patch for that bug.  In fact, I found this bug in an echt
4.3.1 bootstrap build, applied AP's patch, still had it, then used
that compiler to bootstrap a 4.3.2 build, also with AP's patch.
Even using xgcc/cc1 from the stage 1 boostrap build of 4.3.2
showed the bug (there was nothing extra interesting in the
diagnostics produced).

'configure' was invoked with

'../gcc-4.3.2/configure' '--prefix=/usr' '--libexecdir=/usr/lib'
'--infodir=/usr/share/info' '--mandir=/usr/share/man' '--enable-libada'
'--enable-libssp' '--disable-werror' '--with-mpfr=/usr' '--with-gmp=/usr'
'--with-datarootdir=/usr/share' '--with-docdir=/usr/share/gcc-4.3.2/doc'
'--with-pdfdir=/usr/share/gcc-4.3.2/doc'
'--with-htmldir=/usr/share/gcc-4.3.2/doc/html' '--disable-coverage'
'--enable-nls' '--enable-__cxa_atexit' '--enable-decimal-float'
'--disable-fixed-point' '--enable-threads=posix' '--enable-clocale=gnu'
'--enable-shared' '--disable-intermodule'
'--enable-languages=ada,c++,fortran,java,objc,obj-c++,treelang,c'
'--with-local-prefix=/usr' '--with-gnu-ld' '--with-demangler-in-ld'
'--with-gnu-as' '--with-system-libunwind' '--with-system-zlib'
'--enable-bootstrap'

All those single quotes derive from my build scripts, which quote-and-
escape everything in sight.  The actual CPU is an Athlon64 X2 5600+
(the 2.9GHz flavour, not the 2.8GHz flavour).
My binutils are from release 2.18, built with an unpatched gcc-4.3.1 .


-- 
   Summary: ICE in extract_bit_field_1
   Product: gcc
   Version: 4.3.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bernard at brenda-arkle dot me dot uk
 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=37873



[Bug c/37873] ICE in extract_bit_field_1

2008-10-19 Thread bernard at brenda-arkle dot me dot uk


--- Comment #1 from bernard at brenda-arkle dot me dot uk  2008-10-19 14:39 
---
I'm really sorry - requesting the form after network problems apparently
submits it again!  Is this itself a bug in the UI?


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


-- 

bernard at brenda-arkle dot me dot uk changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug middle-end/37870] [4.3/4.4 Regression] ICE in extract_bit_field_1

2008-10-19 Thread bernard at brenda-arkle dot me dot uk


--- Comment #3 from bernard at brenda-arkle dot me dot uk  2008-10-19 14:39 
---
*** Bug 37873 has been marked as a duplicate of this bug. ***


-- 


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



[Bug fortran/35681] wrong result for vector subscripted array expression in MVBITS

2008-10-19 Thread domob at gcc dot gnu dot org


--- Comment #13 from domob at gcc dot gnu dot org  2008-10-19 14:46 ---
Paul, thanks for stepping into the party :)

My plan for working on this is to look at the first part of the problem for now
(the lost parentheses, this is a general ELEMENTAL problem, as my (invalid)
test from comment #7 also fails for adding parentheses around the first
argument).  I hope this can be fixed quite straight forward if I find the
problem.

After this, we can look at the MVBITS specific part.  I think this is a
reasonable way to work on this problem; what do you think?


-- 


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



[Bug fortran/37863] [4.3/4.4 Regression] Display of a value close but less to 1 shows 2 with '(F3.0)'

2008-10-19 Thread jvdelisle at gcc dot gnu dot org


--- Comment #7 from jvdelisle at gcc dot gnu dot org  2008-10-19 15:29 
---
Subject: Bug 37863

Author: jvdelisle
Date: Sun Oct 19 15:28:25 2008
New Revision: 141227

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141227
Log:
2008-10-19  Jerry DeLisle  [EMAIL PROTECTED]

PR libfortran/37863
Backport from trunk.
* io/write_float.def (WRITE_FLOAT): Round to 1.0 correctly.

2008-10-19  Jerry DeLisle  [EMAIL PROTECTED]

PR libfortran/37707
Backport from trunk.
* io/list_read.c (nml_get_obj_data): If the first namelist object rank
is greater than zero, call nml_object_read with the first object rather
than the sub-object.

Modified:
branches/gcc-4_3-branch/libgfortran/ChangeLog
branches/gcc-4_3-branch/libgfortran/io/list_read.c
branches/gcc-4_3-branch/libgfortran/io/write_float.def


-- 


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



[Bug libfortran/37707] Namelist read of array of derived type incorrect

2008-10-19 Thread jvdelisle at gcc dot gnu dot org


--- Comment #23 from jvdelisle at gcc dot gnu dot org  2008-10-19 15:29 
---
Subject: Bug 37707

Author: jvdelisle
Date: Sun Oct 19 15:28:25 2008
New Revision: 141227

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141227
Log:
2008-10-19  Jerry DeLisle  [EMAIL PROTECTED]

PR libfortran/37863
Backport from trunk.
* io/write_float.def (WRITE_FLOAT): Round to 1.0 correctly.

2008-10-19  Jerry DeLisle  [EMAIL PROTECTED]

PR libfortran/37707
Backport from trunk.
* io/list_read.c (nml_get_obj_data): If the first namelist object rank
is greater than zero, call nml_object_read with the first object rather
than the sub-object.

Modified:
branches/gcc-4_3-branch/libgfortran/ChangeLog
branches/gcc-4_3-branch/libgfortran/io/list_read.c
branches/gcc-4_3-branch/libgfortran/io/write_float.def


-- 


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



[Bug libfortran/37707] Namelist read of array of derived type incorrect

2008-10-19 Thread jvdelisle at gcc dot gnu dot org


--- Comment #24 from jvdelisle at gcc dot gnu dot org  2008-10-19 15:31 
---
Subject: Bug 37707

Author: jvdelisle
Date: Sun Oct 19 15:30:32 2008
New Revision: 141228

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141228
Log:
2008-10-19  Jerry DeLisle  [EMAIL PROTECTED]

PR libfortran/37707
* gfortran.dg/namelist_54.f90: New test.

Added:
branches/gcc-4_3-branch/gcc/testsuite/gfortran.dg/namelist_54.f90
Modified:
branches/gcc-4_3-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug libfortran/37707] Namelist read of array of derived type incorrect

2008-10-19 Thread jvdelisle at gcc dot gnu dot org


--- Comment #25 from jvdelisle at gcc dot gnu dot org  2008-10-19 15:39 
---
(In reply to comment #22)
 default:
-  dtp-u.p.nml_delim = '\0';
+  dtp-u.p.nml_delim = '';

wouldn't it be easier/faster to simply remove the whole switch and use simply
  dtp-u.p.nml_delim = '';
without special cases for the current delim status?

Yes that would work, but I would like to allow users to use apostrophe if they
wish. How about this?

  dtp-u.p.nml_delim = tmp_delim == DELIM_APOSTROPHE ? '\'' : '';


-- 


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



[Bug fortran/37863] [4.3/4.4 Regression] Display of a value close but less to 1 shows 2 with '(F3.0)'

2008-10-19 Thread jvdelisle at gcc dot gnu dot org


--- Comment #8 from jvdelisle at gcc dot gnu dot org  2008-10-19 15:43 
---
Fixed on 4.3 and 4.4


-- 

jvdelisle at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug libfortran/37707] Namelist read of array of derived type incorrect

2008-10-19 Thread toon at moene dot indiv dot nluug dot nl


--- Comment #26 from toon at moene dot indiv dot nluug dot nl  2008-10-19 
16:11 ---
The patch works for my case,

Please be careful with the namelist_18,f90 test case - I can't off-hand say
whether it's right or (an extension).

Cheers,


-- 


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



[Bug fortran/35681] wrong result for vector subscripted array expression in MVBITS

2008-10-19 Thread domob at gcc dot gnu dot org


--- Comment #14 from domob at gcc dot gnu dot org  2008-10-19 16:16 ---
Actually, the parentheses aren't lost and *do* get honoured, but the temporary
is only inside the scalarization loop and thus not the full array temporary we
want; the problem is that the actual argument expressions (and thus the
EXPR_OP) gets translated inside gfc_conv_function_call which is only inside the
scalarization loop for ELEMENTAL calls and thus only a scalar temporary.

A possible approach for solving this problem in a way that looks more or less
clean to me would be to translate call expression arguments in gfc_trans_call
before gfc_conv_function_call, i.e. before even generating the ELEMENTAL
scalarization loop.  This would however of course be a somewhat intrusive patch
and I want to make sure you agree with this plan.  Or is there some other way
I'm not aware of?  I'm just thinking that moving this expression translation
that would take care of parentheses and friends would not involve any new
code but rather reorganize the existing one and thus utilize what's already
there to its best.


-- 


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



[Bug target/35574] [4.4 regression] unrecognizable insn generated for vector move

2008-10-19 Thread kazu at gcc dot gnu dot org


--- Comment #5 from kazu at gcc dot gnu dot org  2008-10-19 16:48 ---
Posted a revised patch.  See the patch URL above.


-- 

kazu at gcc dot gnu dot org changed:

   What|Removed |Added

URL|http://gcc.gnu.org/ml/gcc-  |http://gcc.gnu.org/ml/gcc-
   |patches/2008-   |patches/2008-
   |10/msg00114.html|10/msg00787.html


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



Re: [Bug c/37873] ICE in extract_bit_field_1

2008-10-19 Thread Andrew Thomas Pinski



Sent from my iPhone

On Oct 19, 2008, at 7:39 AM, bernard at brenda-arkle dot me dot uk [EMAIL PROTECTED] 
 wrote:





--- Comment #1 from bernard at brenda-arkle dot me dot uk   
2008-10-19 14:39 ---
I'm really sorry - requesting the form after network problems  
apparently

submits it again!  Is this itself a bug in the UI?


To some extend it is a bug in the browser which you are using.





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


--

bernard at brenda-arkle dot me dot uk changed:

  What|Removed |Added
--- 
--- 
--

Status|UNCONFIRMED |RESOLVED
Resolution||DUPLICATE


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



[Bug c/37873] ICE in extract_bit_field_1

2008-10-19 Thread pinskia at gmail dot com


--- Comment #2 from pinskia at gmail dot com  2008-10-19 17:24 ---
Subject: Re:  ICE in extract_bit_field_1



Sent from my iPhone

On Oct 19, 2008, at 7:39 AM, bernard at brenda-arkle dot me dot uk
[EMAIL PROTECTED] 
  wrote:



 --- Comment #1 from bernard at brenda-arkle dot me dot uk   
 2008-10-19 14:39 ---
 I'm really sorry - requesting the form after network problems  
 apparently
 submits it again!  Is this itself a bug in the UI?

To some extend it is a bug in the browser which you are using.




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


 -- 

 bernard at brenda-arkle dot me dot uk changed:

   What|Removed |Added
 --- 
 --- 
 --
 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



-- 


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



[Bug libfortran/37707] Namelist read of array of derived type incorrect

2008-10-19 Thread jvdelisle at gcc dot gnu dot org


--- Comment #27 from jvdelisle at gcc dot gnu dot org  2008-10-19 18:16 
---
The namelist_18.f90 test change is because we are now defaulting to a quote
delimiter.  We do not write a namelist without character string delimiters.


-- 


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



[Bug fortran/37834] write(*,'(f0.0)') 0.0 prints . instead of 0.

2008-10-19 Thread jvdelisle at gcc dot gnu dot org


--- Comment #2 from jvdelisle at gcc dot gnu dot org  2008-10-19 18:36 
---
Fixed on trunk.


-- 

jvdelisle at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/37834] write(*,'(f0.0)') 0.0 prints . instead of 0.

2008-10-19 Thread jvdelisle at gcc dot gnu dot org


--- Comment #3 from jvdelisle at gcc dot gnu dot org  2008-10-19 18:37 
---
Subject: Bug 37834

Author: jvdelisle
Date: Sun Oct 19 18:36:21 2008
New Revision: 141231

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141231
Log:
2008-10-19  Jerry DeLisle  [EMAIL PROTECTED]

PR libfortran/37834
* io/write_float.def (output_float): Emit '0.' for special case of
format specifier 'f0.0' and value of zero. Likewise emit '0' for
'f1.0'.

Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/write_float.def


-- 


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



[Bug c++/37004] [C++ only] Wconversion warns for short y = 0x7fff; short z = (short) x y;

2008-10-19 Thread manu at gcc dot gnu dot org


--- Comment #4 from manu at gcc dot gnu dot org  2008-10-19 22:54 ---
Subject: Bug 37004

Author: manu
Date: Sun Oct 19 22:53:01 2008
New Revision: 141233

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=141233
Log:
2008-10-20  Manuel López-Ibáñez  [EMAIL PROTECTED]

PR c++/37004
cp/
* typeck.c (cp_common_type): New. The same as
type_after_usual_arithmetic_conversions but without promotions.
(type_after_usual_arithmetic_conversions): Do the promotions and
call cp_common_type.
(common_type): Make it behave like the C version of this
function. Do not handle pointer types.
(common_pointer_type): Move handling of pointer types from
common_type to here.
(cp_build_binary_op): Use common_pointer_type instead of
common_type in call to pointer_diff.
Use cp_common_type instead of common_type.
* cp-tree.h (common_pointer_type): Declare.
testsuite/
* g++.dg/warn/Wconversion-pr34389.C: Remove XFAIL.

Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/warn/Wconversion-pr34389.C


-- 


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



[Bug c++/37004] [C++ only] Wconversion warns for short y = 0x7fff; short z = (short) x y;

2008-10-19 Thread manu at gcc dot gnu dot org


--- Comment #5 from manu at gcc dot gnu dot org  2008-10-19 22:55 ---
Fixed in GCC 4.4


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED


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



[Bug c/37874] New: gcc sometimes accepts attribute in identifier list

2008-10-19 Thread sabre at nondot dot org
GCC rejects the former, but not the later.

void f2(y, __attribute__(()) x);
void f3(__attribute__(()) x, y);


-- 
   Summary: gcc sometimes accepts attribute in identifier list
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sabre at nondot dot org


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



[Bug c/37874] gcc sometimes accepts attribute in identifier list

2008-10-19 Thread sabre at nondot dot org


--- Comment #1 from sabre at nondot dot org  2008-10-20 01:08 ---
It also accepts this:
void f4(__attribute__(()));


-- 


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



[Bug c/37874] gcc sometimes accepts attribute in identifier list

2008-10-19 Thread joseph at codesourcery dot com


--- Comment #2 from joseph at codesourcery dot com  2008-10-20 01:51 ---
Subject: Re:  gcc sometimes accepts attribute in identifier list

On Mon, 20 Oct 2008, sabre at nondot dot org wrote:

 It also accepts this:
 void f4(__attribute__(()));

This is documented in Attribute Syntax.  (The acceptance of empty 
attributes, and only empty attributes, at the start of an identifier list, 
is an implementation accident accurately carried over from the old parser 
without noticing it was there, but also a bug.)


-- 


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



[Bug c/37874] gcc sometimes accepts attribute in identifier list

2008-10-19 Thread sabre at nondot dot org


--- Comment #3 from sabre at nondot dot org  2008-10-20 02:10 ---
as it turns out, f3 could also be considered valid in c89... because it makes x
and y be implicit int's, not an identifier list.


-- 


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



[Bug middle-end/37669] [4.4 Regression] ice for legal code with -O2

2008-10-19 Thread nemet at gcc dot gnu dot org


--- Comment #16 from nemet at gcc dot gnu dot org  2008-10-20 03:54 ---
I'm seeing this with mips64octeon-linux-gnu as well.

I think the problem is that in

ccp_fold_builtin():
  2502memset (val, 0, sizeof (val)); 
  2503for (i = 0; i  nargs; i++) 
  2504  { 
  2505if ((arg_mask  i)  1) 

arg_mask is an int and in the testcase nargs is 35.  Therefore the result of
the shift can be undefined.  I will start testing a fix soon.


-- 


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



[Bug middle-end/37669] [4.4 Regression] ice for legal code with -O2

2008-10-19 Thread nemet at gcc dot gnu dot org


--- Comment #17 from nemet at gcc dot gnu dot org  2008-10-20 04:21 ---
I'm testing a patch.


-- 

nemet at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |nemet at gcc dot gnu dot org
   |dot org |
 Status|REOPENED|ASSIGNED
   GCC host triplet|[EMAIL PROTECTED]   |


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