gcc-4.6-20110205 is now available

2011-02-05 Thread gccadmin
Snapshot gcc-4.6-20110205 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.6-20110205/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.6 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/trunk revision 169855

You'll find:

 gcc-4.6-20110205.tar.bz2 Complete GCC (includes all of below)

  MD5=640f0f3248522735f7b361df52c95a14
  SHA1=f318596cea001e189990eeb5ac0fa5d606c0ed2b

 gcc-core-4.6-20110205.tar.bz2C front end and core compiler

  MD5=98109df1e4ac9a800484cee801dc3078
  SHA1=b66e799bc00338e4ab7dd4d1a59abc44a5f12b15

 gcc-ada-4.6-20110205.tar.bz2 Ada front end and runtime

  MD5=98580ae23b42b48e0f321e1754dbae3c
  SHA1=3b94e640e5534f1ce85d8f8e8c8144405332de4f

 gcc-fortran-4.6-20110205.tar.bz2 Fortran front end and runtime

  MD5=8a86ad6d9ea9670a1613c8c69f54cbd7
  SHA1=92a39c6f3fd3c0d8bff7847a41d0499da248e931

 gcc-g++-4.6-20110205.tar.bz2 C++ front end and runtime

  MD5=58f2c791707d005ab991e5aae36d87cc
  SHA1=3af28e211d12b25c845f1d721e5c7004eed50bc7

 gcc-go-4.6-20110205.tar.bz2  Go front end and runtime

  MD5=b3f18427c5a885a7b0f171b516092f92
  SHA1=09becf579072e27a160972790efce6547d223aa8

 gcc-java-4.6-20110205.tar.bz2Java front end and runtime

  MD5=966b1088f2ad7f2c03ee2bc0ba53f08f
  SHA1=a587bb71b88da675107c200f0514d030540f715e

 gcc-objc-4.6-20110205.tar.bz2Objective-C front end and runtime

  MD5=f2b156a7951b786ecbca649c504c7c02
  SHA1=7037424d5fd5fa98d9438431c906f7a98f42e182

 gcc-testsuite-4.6-20110205.tar.bz2   The GCC testsuite

  MD5=48996e1dd9f69d73a55da96f9e7041d3
  SHA1=94abe42f961bd71705c74c173e3f54480e4fd107

Diffs from 4.6-20110129 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.6
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.


New libquadmath maintainers: Jakub and Tobias

2011-02-05 Thread Mark Mitchell
Jakub, Tobias --

The GCC SC has appointed you as maintainers of libquadmath within GCC.

Please update the MAINTAINERS file to reflect your new positions.

Congratulations!

-- 
Mark Mitchell
CodeSourcery
m...@codesourcery.com
(650) 331-3385 x713


Re: Wrong-code bug in execute_update_addresses_taken?

2011-02-05 Thread H.J. Lu
On Sat, Feb 5, 2011 at 7:55 AM, Ulrich Weigand  wrote:
> Hello,
>
> the following program seems to be miscompiled at -O or higher:
>
> int
> main (void)
> {
>  int data = 1;
>
>  struct ptr
>    {
>      int val;
>    } *ptr = (struct ptr *) &data;
>
>  ptr->val = 0;
>
>  return data;
> }
>
> This program should return 0, but actually returns 1.
>
> [ As far as I can tell, this program does not violate the aliasing
>  rules; all memory accesses refer to an object of effective (because
>  declared) type "int", and use lvalue references of type "int".
>  The pointer cast might depend on implementation-defined behaviour,
>  but is not undefined.  In any case, there are no warnings, and use
>  of -fno-strict-aliasing does not fix the problem.  ]
>
> In 024t.forwprop1, we still have (correctly):
>
>  # .MEMD.3455_4 = VDEF <.MEMD.3455_3(D)>
>  dataD.1975 = 1;
>
>  # .MEMD.3455_5 = VDEF <.MEMD.3455_4>
>  MEM[(struct ptr *)&dataD.1975].valD.1977 = 0;
>
>  # VUSE <.MEMD.3455_5>
>  D.3453_2 = dataD.1975;
>  return D.3453_2;
>
> but then in 025t.ealias, we get:
>
>  dataD.1975_4 = 1;
>
>  # .MEMD.3455_5 = VDEF <.MEMD.3455_3(D)>
>  MEM[(struct ptr *)&dataD.1975].valD.1977 = 0;
>
>  D.3453_2 = dataD.1975_4;
>  return D.3453_2;
>
> This is apparently caused by the "addresses taken" pass,
> which results in those messages:
>
>  No longer having address taken: data
>
>  Registering new PHI nodes in block #0
>  Registering new PHI nodes in block #2
>
>  Updating SSA information for statement data = 1;
>  Updating SSA information for statement D.3453_2 = data;
>
> It seems that for some reason, the pass claims to be able to
> eliminate all statements that take the address of "data",
> but then leaves the MEM reference unchanged ...
>
> Any suggestions on what might cause this problem?
>

This behavior change of -fno-strict-aliasing is caused by

http://gcc.gnu.org/ml/gcc-patches/2010-10/msg00788.html


-- 
H.J.


Wrong-code bug in execute_update_addresses_taken?

2011-02-05 Thread Ulrich Weigand
Hello,

the following program seems to be miscompiled at -O or higher:

int
main (void)
{
  int data = 1;

  struct ptr
{
  int val;
} *ptr = (struct ptr *) &data;

  ptr->val = 0;

  return data;
}

This program should return 0, but actually returns 1.

[ As far as I can tell, this program does not violate the aliasing
  rules; all memory accesses refer to an object of effective (because
  declared) type "int", and use lvalue references of type "int".
  The pointer cast might depend on implementation-defined behaviour,
  but is not undefined.  In any case, there are no warnings, and use
  of -fno-strict-aliasing does not fix the problem.  ]

In 024t.forwprop1, we still have (correctly):

  # .MEMD.3455_4 = VDEF <.MEMD.3455_3(D)>
  dataD.1975 = 1;

  # .MEMD.3455_5 = VDEF <.MEMD.3455_4>
  MEM[(struct ptr *)&dataD.1975].valD.1977 = 0;

  # VUSE <.MEMD.3455_5>
  D.3453_2 = dataD.1975;
  return D.3453_2;

but then in 025t.ealias, we get:

  dataD.1975_4 = 1;

  # .MEMD.3455_5 = VDEF <.MEMD.3455_3(D)>
  MEM[(struct ptr *)&dataD.1975].valD.1977 = 0;

  D.3453_2 = dataD.1975_4;
  return D.3453_2;

This is apparently caused by the "addresses taken" pass,
which results in those messages:

  No longer having address taken: data

  Registering new PHI nodes in block #0
  Registering new PHI nodes in block #2

  Updating SSA information for statement data = 1;
  Updating SSA information for statement D.3453_2 = data;

It seems that for some reason, the pass claims to be able to
eliminate all statements that take the address of "data",
but then leaves the MEM reference unchanged ... 

Any suggestions on what might cause this problem?

Thanks,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  ulrich.weig...@de.ibm.com