[Bug libstdc++/49048] setprecision rounding fails in some cases

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49048

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
06:08:50 UTC ---
printf in glibc rounds, I think you should read something about rounding.
The default rounding mode (and the only one actually implemented for printf) is
round to even.  http://www.lmgtfy.com/?q=round+to+even
So
#include stdio.h
int
main (void)
{
  printf (%.2f\n, 5798.12500);
  printf (%.2f\n, 5798.87500);
  return 0;
}
printing
5798.12
5798.88
is correct.


[Bug rtl-optimization/49057] New: benchmark of gcc. a piece of loop code compiled by gcc-4.5.1 is slower compiled by gcc-4.4.2 when run on cortex-a9.

2011-05-19 Thread kun.he at mediatek dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49057

   Summary: benchmark of gcc. a piece of loop code compiled by
gcc-4.5.1 is slower compiled by gcc-4.4.2 when run on
cortex-a9.
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: kun...@mediatek.com


The following C code is used to do a “integer add” test. The type of n, i, i1,
i2, loop_cnt are all ‘int’. the initial value: loop_cnt=500, i=0, i1=3,
i2=-3.
for (n = loop_cnt; n  0; n--) {/*0x -x  - initial value */
i += i1;/*xx -x   */
i1 += i2;   /*x0 -x   */
i1 += i2;   /*x-x-x   */
i2 += i;/*x-x0*/
i2 += i;/*x-xx*/
i += i1;/*0-xx*/
i += i1;/*-x   -xx*/
i1 += i2;   /*-x   0 x*/
i1 += i2;   /*-x   x x*/
i2 += i;/*-x   x 0*/
i2 += i;/*-x   x -x   */
i += i1;/*0x -x   */
/*
 * Note that at loop end, i1 = -i2
 */
/*
 * which is as we started.  Thus,
 */
/*
 * the values in the loop are stable
 */
}
I use gcc-4.4.2 and gcc-4.5.1 compile this C code, that will generate different
binary code.
Gcc-4.42:
284:e083 addr0, r0, r3
 288:e2511001 subsr1, r1, #1; 0x1
 28c:e0833082 addr3, r3, r2, lsl #1
 290:e0822080 addr2, r2, r0, lsl #1
 294:e0800083 addr0, r0, r3, lsl #1
 298:e0833082 addr3, r3, r2, lsl #1
 29c:e0822080 addr2, r2, r0, lsl #1
 2a0:e083 addr0, r3, r0
 2a4:1af6 bne284 add_int+0x4c

Gcc-4.5.1:
138:e083 addr0, r0, r3
 13c:e0833082 addr3, r3, r2, lsl #1
 140:e0822080 addr2, r2, r0, lsl #1
 144:e2511001 subsr1, r1, #1
 148:e0800083 addr0, r0, r3, lsl #1
 14c:e0833082 addr3, r3, r2, lsl #1
 150:e0822080 addr2, r2, r0, lsl #1
 154:e083 addr0, r3, r0
 158:1af6 bne138 add_int+0x4c

As you see, the only one difference is the position of “subsr1, r1, #1”,
and this difference has led to huge differences in performance. The performance
of the latter just has 80% of the former.


[Bug target/49026] [4.7 Regression] FAIL: gcc.target/i386/sse4_1-(ceil|floor)-vec.c execution test at r173809 on x86_64-apple-darwin10

2011-05-19 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49026

Dominique d'Humieres dominiq at lps dot ens.fr changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #5 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-05-19 
07:08:18 UTC ---
 Should be fixed by r173845.

It is fixed (seehttp://gcc.gnu.org/ml/gcc-testresults/2011-05/msg01935.html ):
closing. Thanks for the quick fix.


[Bug c++/49058] New: [C++0x] Bind no-arguments functor failed using std::bind with -pedantic option.

2011-05-19 Thread flast at flast dot jp
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49058

   Summary: [C++0x] Bind no-arguments functor failed using
std::bind with -pedantic option.
   Product: gcc
   Version: 4.5.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: fl...@flast.jp


GCC rejects following code with -pedantic option.

 testcase.cc 
#include functional

struct F
{
void
operator()();
};

void f()
{
std::bind( F() );
}


 output 
$ g++-4.5 -std=c++0x -pedantic testcase.cc
In file included from testcase.cc:1:0:
/usr/local/lib/gcc/i686-pc-linux-gnu/4.5.4/../../../../include/c++/4.5.4/functional:
In instantiation of 'std::_BindF()':
testcase.cc:11:20:   instantiated from here
/usr/local/lib/gcc/i686-pc-linux-gnu/4.5.4/../../../../include/c++/4.5.4/functional:1174:39:
error: no match for call to '(const F) ()'
testcase.cc:5:5: note: candidate is: void F::operator()() near match


After GCC 4.6, also faild with no-arguments lambda-expression.

 testcase.cc 
#include functional

void f()
{
std::bind( []{} );
}


 output 
$ g++-4.6 -std=c++0x -pedantic testcase.cc
In file included from testcase.cc:1:0:
/usr/local/lib/gcc/i686-pc-linux-gnu/4.6.1/../../../../include/c++/4.6.1/functional:
In instantiation of 'std::_Bindf()::lambda()()':
testcase.cc:5:21:   instantiated from here
/usr/local/lib/gcc/i686-pc-linux-gnu/4.6.1/../../../../include/c++/4.6.1/functional:1227:32:
error: no match for call to '(volatile f()::lambda()) ()'
testcase.cc:5:17: note: candidates are:
/usr/local/lib/gcc/i686-pc-linux-gnu/4.6.1/../../../../include/c++/4.6.1/functional:1227:32:
note: void (*)() conversion
/usr/local/lib/gcc/i686-pc-linux-gnu/4.6.1/../../../../include/c++/4.6.1/functional:1227:32:
note:   candidate expects 0 arguments, 1 provided
testcase.cc:5:17: note: f()::lambda() near match
testcase.cc:5:17: note:   no known conversion for implicit 'this' parameter
from 'volatile f()::lambda()*' to 'const f()::lambda()*'
/usr/local/lib/gcc/i686-pc-linux-gnu/4.6.1/../../../../include/c++/4.6.1/functional:
In instantiation of 'std::_Bindf()::lambda()()':
testcase.cc:5:21:   instantiated from here
/usr/local/lib/gcc/i686-pc-linux-gnu/4.6.1/../../../../include/c++/4.6.1/functional:1240:38:
error: no match for call to '(const volatile f()::lambda()) ()'
testcase.cc:5:17: note: candidates are:
/usr/local/lib/gcc/i686-pc-linux-gnu/4.6.1/../../../../include/c++/4.6.1/functional:1240:38:
note: void (*)() conversion
/usr/local/lib/gcc/i686-pc-linux-gnu/4.6.1/../../../../include/c++/4.6.1/functional:1240:38:
note:   candidate expects 0 arguments, 1 provided
testcase.cc:5:17: note: f()::lambda() near match
testcase.cc:5:17: note:   no known conversion for implicit 'this' parameter
from 'const volatile f()::lambda()*' to 'const f()::lambda()*'


gcc-4.5 (GCC) 4.5.4 20110512 (prerelease) - Failed
gcc-4.6 (GCC) 4.6.1 20110513 (prerelease) - Failed
gcc-4.7 (GCC) 4.7.0 20110517 (experimental) - Failed


[Bug libstdc++/49048] setprecision rounding fails in some cases

2011-05-19 Thread s.cecilio at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49048

--- Comment #6 from Cecilio s.cecilio at gmail dot com 2011-05-19 07:12:25 
UTC ---
Thanks for the link. Funny website but a great article at wikipedia. Thanks
indeed. Now I understand the issue, so there is no bug anywere! I always
understood 'rounding' as 'rounding up'.

Thanks for your help and time.
Regards, 
Cecilio


[Bug c++/48869] [4.5/4.6/4.7 Regression] OpenMP task construct fails to instantiate copy constructor(same as Bug 36523)

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48869

--- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
07:44:35 UTC ---
Author: jakub
Date: Thu May 19 07:44:31 2011
New Revision: 173888

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=173888
Log:
PR c++/48869
* method.c (get_dtor, get_copy_ctor): Add COMPLAIN argument,
pass it down to locate_fn_flags.
* cp-tree.h (get_dtor, get_copy_ctor): Adjust prototypes.
* semantics.c (cxx_omp_create_clause_info): Adjust callers.
* cp-gimplify.c: Include splay-tree.h.
(splay_tree_compare_decl_uid, omp_var_to_track,
omp_cxx_notice_variable): New functions.
(struct cp_genericize_omp_taskreg): New type.
(struct cp_genericize_data): Add omp_ctx field.
(cp_genericize_r): Attempt to determine implicitly determined
firstprivate class type variables.
(cp_genericize): Clear omp_ctx.
* Make-lang.in (cp/cp-gimplify.o): Depend on $(SPLAY_TREE_H).

* testsuite/libgomp.c++/pr48869.C: New test.

Added:
trunk/libgomp/testsuite/libgomp.c++/pr48869.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/Make-lang.in
trunk/gcc/cp/cp-gimplify.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/method.c
trunk/gcc/cp/semantics.c
trunk/libgomp/ChangeLog


[Bug c++/48869] [4.5 Regression] OpenMP task construct fails to instantiate copy constructor(same as Bug 36523)

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48869

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.6.1, 4.7.0
Summary|[4.5/4.6/4.7 Regression]|[4.5 Regression] OpenMP
   |OpenMP task construct fails |task construct fails to
   |to instantiate copy |instantiate copy
   |constructor(same as Bug |constructor(same as Bug
   |36523)  |36523)
  Known to fail|4.7.0   |

--- Comment #10 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
08:03:37 UTC ---
Fixed for 4.6+ so far.


[Bug c++/49043] [OpenMP C++0x]: Compiler error when lambda-function within OpenMP loop

2011-05-19 Thread bisqwit at iki dot fi
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49043

--- Comment #2 from Joel Yliluoma bisqwit at iki dot fi 2011-05-19 08:10:06 
UTC ---
Even if the lambda function is not called, it happens. Merely defining the
function causes it.
Interestingly though, it does not happen if a method body is defined within the
loop. The code below does not cause the error. So it is restricted to lambda
function bodies.
It also does not happen when calling lambda functions that are defined outside
the loop.

int main()
{
#pragma omp parallel for
for(int a=0; a10; ++a)
{
struct tmp
{
static int test() { return 0; }
};
}
}


[Bug libfortran/48906] Wrong rounding results with -m32

2011-05-19 Thread thenlich at users dot sourceforge.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48906

--- Comment #6 from Thomas Henlich thenlich at users dot sourceforge.net 
2011-05-19 08:05:32 UTC ---
(In reply to comment #5)

As a general rule, d specifies the number of significant digits in the result,
i.e. the number of digits counting from the first non-zero digit.

So in the example all numbers should be formatted with 2 significant digits,
i.e. 2 decimal digits if the value rounded to 2 significant digits is smaller
than 1, and 1 decimal digit if the value rounded to 2 significant digits is
larger than or equal to 1.

 implicit none
 integer, parameter :: RT = 8
 write(*, (rc,f11.2,4x,'RC')) .995_RT
 write(*, (rc,g15.2,'RC')) .995_RT
 write(*, (rd,f11.2,4x,'RD')) .995_RT
 write(*, (rd,g15.2,'RD')) .995_RT
 write(*, (ru,f11.2,4x,'RU')) .995_RT
 write(*, (ru,g15.2,'RU')) .995_RT
 write(*,'(a)') 12345678901234567890
 end

   0.99RC
   0.99RC
   0.99RD
   0.99RD
   1.00RU
1.0RU
12345678901234567890

and
  write(*, (ru,f11.1,4x,'RU')) .995_RT
gets
1.0RU


[Bug tree-optimization/44897] -flto + ipa-sra misoptimize sqlite (non-plugin only)

2011-05-19 Thread vincenzo.innocente at cern dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44897

vincenzo Innocente vincenzo.innocente at cern dot ch changed:

   What|Removed |Added

 CC||vincenzo.innocente at cern
   ||dot ch

--- Comment #16 from vincenzo Innocente vincenzo.innocente at cern dot ch 
2011-05-19 08:12:20 UTC ---
I'm getting a whole bunch of
lto1: internal compiler error: Floating point exception
using
g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.6.1/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ./configure -enable-gold=yes --enable-lto --with-fpmath=avx
--with-build-config=bootstrap-lto --with-gmp-lib=/usr/local/lib64
--with-mpfr-lib=/usr/local/lib64 -with-mpc-lib=/usr/local/lib64
Thread model: posix
gcc version 4.6.1 20110513 (prerelease) (GCC) 

before submitting a new bug report I would like to know if the patch by Honza
quoted below is already in it or still pending


[Bug c++/48869] [4.5/4.6/4.7 Regression] OpenMP task construct fails to instantiate copy constructor(same as Bug 36523)

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48869

--- Comment #9 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
08:00:56 UTC ---
Author: jakub
Date: Thu May 19 08:00:50 2011
New Revision: 173889

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=173889
Log:
PR c++/48869
* method.c (get_dtor, get_copy_ctor): Add COMPLAIN argument,
pass it down to locate_fn_flags.
* cp-tree.h (get_dtor, get_copy_ctor): Adjust prototypes.
* semantics.c (cxx_omp_create_clause_info): Adjust callers.
* cp-gimplify.c: Include splay-tree.h.
(splay_tree_compare_decl_uid, omp_var_to_track,
omp_cxx_notice_variable): New functions.
(struct cp_genericize_omp_taskreg): New type.
(struct cp_genericize_data): Add omp_ctx field.
(cp_genericize_r): Attempt to determine implicitly determined
firstprivate class type variables.
(cp_genericize): Clear omp_ctx.
* Make-lang.in (cp/cp-gimplify.o): Depend on $(SPLAY_TREE_H).

* testsuite/libgomp.c++/pr48869.C: New test.

Added:
branches/gcc-4_6-branch/libgomp/testsuite/libgomp.c++/pr48869.C
Modified:
branches/gcc-4_6-branch/gcc/cp/ChangeLog
branches/gcc-4_6-branch/gcc/cp/Make-lang.in
branches/gcc-4_6-branch/gcc/cp/cp-gimplify.c
branches/gcc-4_6-branch/gcc/cp/cp-tree.h
branches/gcc-4_6-branch/gcc/cp/method.c
branches/gcc-4_6-branch/gcc/cp/semantics.c
branches/gcc-4_6-branch/libgomp/ChangeLog


[Bug target/47440] Use LCM for vzeroupper insertion

2011-05-19 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47440

Uros Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.05.19 08:29:24
 CC||ubizjak at gmail dot com
Version|4.6.0   |4.7.0
   Target Milestone|--- |4.7.0
Summary|Use LCM for vzeroupper  |Use LCM for vzeroupper
   |optimization|insertion
 Ever Confirmed|0   |1
   Severity|normal  |enhancement

--- Comment #1 from Uros Bizjak ubizjak at gmail dot com 2011-05-19 08:29:24 
UTC ---
Confirmed.


[Bug libstdc++/49048] setprecision rounding fails in some cases

2011-05-19 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49048

--- Comment #7 from Paolo Carlini paolo.carlini at oracle dot com 2011-05-19 
08:42:45 UTC ---
Glad that the issue is clear now. By the way, Cecilio, apparently in your
Comment #4 you didn't get my point about the C++ library vs printf: the ISO C++
Standard specifies the behavior of setprecision, precision, and so on, **in
terms of printf**, with no intermediate rounding, truncation, or whatelse:
really everything must go as-if the number were feed directly to a printf
like the one written down by myself and Jakub. Thus, really, if anything, this
PR could be *only* a glibc issue. As a matter of fact, isn't an issue at all.


[Bug middle-end/45098] Missed induction variable optimization

2011-05-19 Thread vries at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45098

--- Comment #4 from vries at gcc dot gnu.org 2011-05-19 08:49:32 UTC ---
Author: vries
Date: Thu May 19 08:49:28 2011
New Revision: 173893

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=173893
Log:
2011-05-19  Tom de Vries  t...@codesourcery.com

PR target/45098
* tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
cost_base.cost == 0.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-loop-ivopts.c


[Bug middle-end/48849] [4.7 Regression] SPEC CPU 2000/2006 failed to build with LTO

2011-05-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48849

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.05.19 08:49:11
 AssignedTo|unassigned at gcc dot   |rguenth at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-19 
08:49:11 UTC ---
Btw, I looked into similar ICEs I get on x86_64 SPEC2k6 and the issue is that
LTO TYPE_CANONICAL merging behaves different than the middle-end when it
constructs new pointer types (that is what I was looking at, similar issues
apply to vector and complex and array types I think).  That is, for the
middle-end the canonical type of a pointer type is a pointer to the canonical
pointed-to type while LTO TYPE_CANONICAL building does something different.

Now, a simple patch like

Index: gcc/gimple.c
===
--- gcc/gimple.c(revision 173724)
+++ gcc/gimple.c(working copy)
@@ -4830,6 +4830,25 @@ gimple_register_canonical_type (tree t)
   if (TYPE_MAIN_VARIANT (t) != t)
 gimple_register_canonical_type (TYPE_MAIN_VARIANT (t));

+  /* For pointer and reference types do as the middle-end does - the
+ canonical type is a pointer to the canonical pointed-to type.  */
+  if (TREE_CODE (t) == POINTER_TYPE)
+{
+  TYPE_CANONICAL (t)
+   = build_pointer_type_for_mode
+   (gimple_register_canonical_type (TREE_TYPE (t)),
+TYPE_MODE (t), TYPE_REF_CAN_ALIAS_ALL (t));
+  return TYPE_CANONICAL (t);
+}
+  else if (TREE_CODE (t) == REFERENCE_TYPE)
+{
+  TYPE_CANONICAL (t)
+   = build_reference_type_for_mode
+   (gimple_register_canonical_type (TREE_TYPE (t)),
+TYPE_MODE (t), TYPE_REF_CAN_ALIAS_ALL (t));
+  return TYPE_CANONICAL (t);
+}
+
   if (gimple_canonical_types == NULL)
 gimple_canonical_types = htab_create_ggc (16381,
gimple_canonical_type_hash,
  gimple_canonical_type_eq, 0);

that I tested after analyzing the issue doesn't work as the middle-end
pointer-type building depends on properly setup TYPE_POINTER_TO lists
which we are only about to construct when re-building canonical types.

Anyway, I was working on this but got distracted.


[Bug c++/49043] [OpenMP C++0x]: Compiler error when lambda-function within OpenMP loop

2011-05-19 Thread bisqwit at iki dot fi
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49043

Joel Yliluoma bisqwit at iki dot fi changed:

   What|Removed |Added

Summary|[C++0x] Returns from lambda |[OpenMP  C++0x]: Compiler
   |functions incorrectly   |error when lambda-function
   |detected as exits from|within OpenMP loop
   |OpenMP loops in surrounding |
   |code|

--- Comment #1 from Joel Yliluoma bisqwit at iki dot fi 2011-05-19 08:05:26 
UTC ---
It also happens if the lambda-function does not explicitly contain the return
statement.

For example, this code triggers the same error.

int main()
{
#pragma omp parallel for
for(int a=0; a10; ++a)
{
auto func = [] () - void { };
func();
}
}


[Bug debug/49047] DW_AT_linkage_name missing for constructors and destructors

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49047

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
08:17:48 UTC ---
My guess is that's because there is no single symbol for them, but two or
three.


[Bug target/44217] GCC emits cmpxchg16b which Sun as cannot handle

2011-05-19 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44217

Rainer Orth ro at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||WONTFIX

--- Comment #3 from Rainer Orth ro at gcc dot gnu.org 2011-05-19 08:27:49 UTC 
---
The latest version of Sun as (patch 119961-10 for Solaris 10, snv_164 for
Solaris 11) now includes a fix for CR

6938785 as doesn't support cmpxchg16b instruction

Since there seems to be no interest whatsoever to provide a workaround in
gcc, I'm closing this bug as WONTFIX.

  Rainer


[Bug c++/49043] [OpenMP C++0x]: Compiler error when lambda-function within OpenMP loop

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49043

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.05.19 08:55:08
 AssignedTo|unassigned at gcc dot   |jakub at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
08:55:08 UTC ---
Created attachment 24287
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24287
gcc46-pr49043.patch

Untested fix.

That said, I'd advise not to use lambdas in OpenMP regions, because the OpenMP
standard doesn't say anything about the data environment of those and how it
should behave.  Even the upcoming OpenMP 3.1 doesn't cover C++0x, I hope OpenMP
4.0 will.


[Bug middle-end/49054] useless cmp+jmp generated for switch when default: is unreachable

2011-05-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49054

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-19 
08:56:11 UTC ---
I think this is just an artifact of how we handle __builtin_unreachable ().


[Bug middle-end/45098] Missed induction variable optimization

2011-05-19 Thread vries at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45098

--- Comment #5 from vries at gcc dot gnu.org 2011-05-19 09:03:15 UTC ---
Author: vries
Date: Thu May 19 09:03:12 2011
New Revision: 173894

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=173894
Log:
2011-05-19  Tom de Vries  t...@codesourcery.com

PR target/45098
* tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
get_loop_invariant_expr_id.
(get_loop_invariant_expr_id): Use get_expr_id.
(parm_decl_cost): New function.
(determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
Improve bound cost estimation.  Use different inv_expr_id for elim and
express cases.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-loop-ivopts.c


[Bug tree-optimization/44897] -flto + ipa-sra misoptimize sqlite (non-plugin only)

2011-05-19 Thread hubicka at ucw dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44897

--- Comment #17 from Jan Hubicka hubicka at ucw dot cz 2011-05-19 08:56:37 
UTC ---
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44897
 
 vincenzo Innocente vincenzo.innocente at cern dot ch changed:
 
What|Removed |Added
 
  CC||vincenzo.innocente at cern
||dot ch
 
 --- Comment #16 from vincenzo Innocente vincenzo.innocente at cern dot ch 
 2011-05-19 08:12:20 UTC ---
 I'm getting a whole bunch of
 lto1: internal compiler error: Floating point exception
 using
 g++ -v
 Using built-in specs.
 COLLECT_GCC=g++
 COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.6.1/lto-wrapper
 Target: x86_64-unknown-linux-gnu
 Configured with: ./configure -enable-gold=yes --enable-lto --with-fpmath=avx
 --with-build-config=bootstrap-lto --with-gmp-lib=/usr/local/lib64
 --with-mpfr-lib=/usr/local/lib64 -with-mpc-lib=/usr/local/lib64
 Thread model: posix
 gcc version 4.6.1 20110513 (prerelease) (GCC) 
 
 before submitting a new bug report I would like to know if the patch by Honza
 quoted below is already in it or still pending

It is in mainline, I should backport it to 4.6.1. Will try to do it today or
tomorrow.

Honza
 
 -- 
 Configure bugmail: http://gcc.gnu.org/bugzilla/userprefs.cgi?tab=email
 --- You are receiving this mail because: ---
 You reported the bug.


[Bug fortran/49052] i386 version of gcc-4.5 fails to compile C or Fortran files on CIFS mounts

2011-05-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49052

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.6.0

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-19 
08:58:43 UTC ---
The issue is that gcc  4.6 does not have large file support enabled and so
on 32bit hosts with 64bit file systems you can get this if the inode number
does not fit in the 32bit stat structure.  That's what we have seen on
32bit userland with 64bit kernels and big fs.

Should be fixed for 4.6.


[Bug target/49046] code fragment with inline assembly seg faults gcc

2011-05-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49046

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2011.05.19 09:02:03
  Component|c   |target
 Ever Confirmed|0   |1

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-19 
09:02:03 UTC ---
And what's the crash?


[Bug fortran/49052] i386 version of gcc-4.5 fails to compile C or Fortran files on CIFS mounts

2011-05-19 Thread jb at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49052

--- Comment #3 from Janne Blomqvist jb at gcc dot gnu.org 2011-05-19 09:01:30 
UTC ---
Not a GCC bug. 

As an aside, CIFS mounts work quite well IF the server supports the CIFS Unix
extensions; Samba supports those, but IIRC the Windows CIFS server doesn't.
Without the Unix extensions, the mounts behave very POSIX-unlike in some
situations which makes many applications break, apparently including GCC. HTH,
HAND.


[Bug target/49046] code fragment with inline assembly seg faults gcc

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49046

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
09:29:13 UTC ---
If the crash is the same as in the #c0 attachment, then you should file it
against binutils, not gcc, as it is a bug in the assembler:

arm-none-eabi-gcc: Internal error: Segmentation fault (program as)


[Bug middle-end/45098] Missed induction variable optimization

2011-05-19 Thread vries at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45098

--- Comment #6 from vries at gcc dot gnu.org 2011-05-19 09:33:52 UTC ---
Author: vries
Date: Thu May 19 09:33:49 2011
New Revision: 173896

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=173896
Log:
2011-05-19  Tom de Vries  t...@codesourcery.com

PR target/45098
* gcc.target/arm/ivopts.c: New test.
* gcc.target/arm/ivopts-2.c: New test.

Added:
trunk/gcc/testsuite/gcc.target/arm/ivopts-2.c
trunk/gcc/testsuite/gcc.target/arm/ivopts.c
Modified:
trunk/gcc/testsuite/ChangeLog


[Bug c++/49056] [C++0x] ICE: OMP parallel for with template constexpr function, LTO and debug options.

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49056

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||jakub at gcc dot gnu.org
 Resolution||DUPLICATE

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
09:51:42 UTC ---
I don't believe you you can reproduce it with two days old trunk, it has been
fixed there a month ago.  And has been fixed on the 4.6 branch yesterday too.

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


[Bug debug/48207] ICE in lhd_set_decl_assembler_name, at langhooks.c:158

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48207

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||flast at flast dot jp

--- Comment #11 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
09:51:42 UTC ---
*** Bug 49056 has been marked as a duplicate of this bug. ***


[Bug testsuite/48251] guality_check hangs indefinitely on Tru64 UNIX

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48251

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
10:38:20 UTC ---
Can this be closed now?


[Bug debug/47624] FAIL: gcc.dg/guality/pr43077-1.c -O1 line 42 c == 3

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47624

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
10:40:13 UTC ---
Can you please ping this patch?


[Bug target/33049] [avr] bit extraction non optimal, inversing logic solves problem

2011-05-19 Thread wvangulik at xs4all dot nl
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33049

Wouter van Gulik wvangulik at xs4all dot nl changed:

   What|Removed |Added

  Known to fail||

--- Comment #13 from Wouter van Gulik wvangulik at xs4all dot nl 2011-05-19 
10:38:38 UTC ---
Yep it looks a lot better now.
The if statements could be optimized into the equivalent shift instructions but
that is not a AVR backend problem I guess.
I noticed that the disassembly shows wrong lengths for some outputs of extzv.
Is that a problem?


[Bug c/48985] bogus buffer overflow warning and abort on static flexible array member

2011-05-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48985

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-19 
10:45:29 UTC ---
Author: rguenth
Date: Thu May 19 10:45:26 2011
New Revision: 173901

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=173901
Log:
2011-05-19  Richard Guenther  rguent...@suse.de

PR middle-end/48985
* tree-object-size.c (addr_object_size): If the pointed-to
variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.

* gcc.dg/builtin-object-size-11.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/builtin-object-size-11.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-object-size.c


[Bug debug/48333] -fcompare-debug failure (length) - memmove x __builtin_memmove

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48333

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
10:35:16 UTC ---
Can you please ping this patch?
It makes sense given:
case tcc_declaration:
  /* Consider __builtin_sqrt equal to sqrt.  */
  return (TREE_CODE (arg0) == FUNCTION_DECL
   DECL_BUILT_IN (arg0)  DECL_BUILT_IN (arg1)
   DECL_BUILT_IN_CLASS (arg0) == DECL_BUILT_IN_CLASS (arg1)
   DECL_FUNCTION_CODE (arg0) == DECL_FUNCTION_CODE (arg1));
in operand_equal_p...


[Bug lto/49059] New: Linking with -flto fails

2011-05-19 Thread petr.malik at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49059

   Summary: Linking with -flto fails
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: blocker
  Priority: P3
 Component: lto
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: petr.ma...@hotmail.com


Hello.

I've been using CCfits library to write data into FITS files.
The code compiles until I turn LTO on, then it fails with:

lto1: internal compiler error: in lto_wpa_write_files, at lto/lto.c:1518
lto-wrapper: g++ returned 1 exit status
/usr/bin/ld: lto-wrapper failed
collect2: ld returned 1 exit status

The problem seems to appear only after invoking writeArrays() on
CCfits::Column.

OS: Ubuntu 11.04 x64 (2.6.38-8-virtual)
GCC: 4.6.0 (also present in 'gcc-4.6-20110506')
GCC compiled with: --with-arch=native --with-tune=native --enable-threads=posix
--with-fpmath=sse --enable-checking --enable-cloog-backend=isl
IDE: Eclipse CDT 7.0.2

 Build of configuration Release for project lto_ccfits_fail 

make all 
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/lto-wrapper
Building file: ../src/Main.cpp
Invoking: GCC C++ Compiler
g++ -I/home/petmal/Eclipse_Projects/lto_ccfits_fail/include -O3 -Wall -c
-fmessage-length=0 -flto -save-temps -v -MMD -MP -MFsrc/Main.d
-MTsrc/Main.d -osrc/Main.o ../src/Main.cpp
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.6.0/configure --with-arch=native --with-tune=native
--enable-threads=posix --with-fpmath=sse --enable-checking
--enable-cloog-backend=isl
Thread model: posix
gcc version 4.6.0 (GCC) 
COLLECT_GCC_OPTIONS='-I'
'/home/petmal/Eclipse_Projects/lto_ccfits_fail/include' '-O3' '-Wall' '-c'
'-fmessage-length=0' '-flto' '-save-temps' '-v' '-MMD' '-MP' '-MF' 'src/Main.d'
'-MT' 'src/Main.d' '-o' 'src/Main.o' '-shared-libgcc' '-mtune=native'
'-march=native'
 /usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/cc1plus -E -quiet -v -I
/home/petmal/Eclipse_Projects/lto_ccfits_fail/include -MMD src/Main.d -MF
src/Main.d -MP -MT src/Main.d -D_GNU_SOURCE ../src/Main.cpp -march=corei7
-mcx16 -msahf -maes -mpclmul -mpopcnt -msse4.2 --param l1-cache-size=32 --param
l1-cache-line-size=64 --param l2-cache-size=4096 -mtune=corei7 -Wall
-fmessage-length=0 -flto -O3 -fpch-preprocess -o Main.ii
ignoring nonexistent directory
/usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/../../../../x86_64-unknown-linux-gnu/include
#include ... search starts here:
#include ... search starts here:
 /home/petmal/Eclipse_Projects/lto_ccfits_fail/include

/usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/../../../../include/c++/4.6.0

/usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/../../../../include/c++/4.6.0/x86_64-unknown-linux-gnu

/usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/../../../../include/c++/4.6.0/backward
 /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/include
 /usr/local/include
 /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/include-fixed
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-I'
'/home/petmal/Eclipse_Projects/lto_ccfits_fail/include' '-O3' '-Wall' '-c'
'-fmessage-length=0' '-flto' '-save-temps' '-v' '-MMD' '-MP' '-MF' 'src/Main.d'
'-MT' 'src/Main.d' '-o' 'src/Main.o' '-shared-libgcc' '-mtune=native'
'-march=native'
 /usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/cc1plus -fpreprocessed
Main.ii -march=corei7 -mcx16 -msahf -maes -mpclmul -mpopcnt -msse4.2 --param
l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=4096
-mtune=corei7 -quiet -dumpbase Main.cpp -auxbase-strip src/Main.o -O3 -Wall
-version -fmessage-length=0 -flto -o Main.s
GNU C++ (GCC) version 4.6.0 (x86_64-unknown-linux-gnu)
compiled by GNU C version 4.6.0, GMP version 5.0.1, MPFR version 3.0.0, MPC
version 0.8.2
warning: GMP header version 5.0.1 differs from library version 4.3.2.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C++ (GCC) version 4.6.0 (x86_64-unknown-linux-gnu)
compiled by GNU C version 4.6.0, GMP version 5.0.1, MPFR version 3.0.0, MPC
version 0.8.2
warning: GMP header version 5.0.1 differs from library version 4.3.2.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: 04a475928a1f5131bc3081e746d72187
COLLECT_GCC_OPTIONS='-I'
'/home/petmal/Eclipse_Projects/lto_ccfits_fail/include' '-O3' '-Wall' '-c'
'-fmessage-length=0' '-flto' '-save-temps' '-v' '-MMD' '-MP' '-MF' 'src/Main.d'
'-MT' 'src/Main.d' '-o' 'src/Main.o' '-shared-libgcc' '-mtune=native'
'-march=native'
 as --64 -o src/Main.o Main.s
COMPILER_PATH=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/:/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/:/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/:/usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/:/usr/local/lib/gcc/x86_64-unknown-linux-gnu/
Finished building: ../src/Main.cpp

[Bug lto/49059] Linking with -flto fails

2011-05-19 Thread petr.malik at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49059

--- Comment #1 from Petr petr.malik at hotmail dot com 2011-05-19 10:51:37 
UTC ---
Created attachment 24288
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24288
Preprocessed source.


[Bug lto/48246] ICE in lto_wpa_write_files

2011-05-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48246

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||petr.malik at hotmail dot
   ||com

--- Comment #9 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-19 
11:15:19 UTC ---
*** Bug 49059 has been marked as a duplicate of this bug. ***


[Bug lto/49059] Linking with -flto fails

2011-05-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49059

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-19 
11:15:19 UTC ---
If you do not add --enable-checking the error will vanish.  The check is for
optimality of partitioning and asserts that no partition is empty.

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


[Bug testsuite/48251] guality_check hangs indefinitely on Tru64 UNIX

2011-05-19 Thread ro at CeBiTec dot Uni-Bielefeld.DE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48251

--- Comment #6 from ro at CeBiTec dot Uni-Bielefeld.DE ro at CeBiTec dot 
Uni-Bielefeld.DE 2011-05-19 11:07:14 UTC ---
 --- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
 10:38:20 UTC ---
 Can this be closed now?

No, skipping the tests is just a workaround.  I mean to look into the
root cause of this and would like the PR to be kept open until then.

Rainer


[Bug libstdc++/49060] New: use of deleted memory in __gnu_cxx::hashtable::erase

2011-05-19 Thread dtardon at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49060

   Summary: use of deleted memory in __gnu_cxx::hashtable::erase
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: libstdc++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: dtar...@redhat.com


Created attachment 24289
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24289
reproducer

How to reproduce:
1. get the attached reproducer
2. g++ -Wall -g -O0 hashtable.cc -o hashtable
3. valgrind ./hashtable

Note:
I think this cannot be triggered through normal use of std::hash_map or
std::hash_set, because it requires that the bucket contains two nodes with
equal key.


[Bug libstdc++/49060] use of deleted memory in __gnu_cxx::hashtable::erase

2011-05-19 Thread dtardon at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49060

--- Comment #1 from David Tardon dtardon at redhat dot com 2011-05-19 
11:26:42 UTC ---
Created attachment 24290
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24290
patch


[Bug c++/49058] [C++0x] Bind no-arguments functor failed using std::bind with -pedantic option.

2011-05-19 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49058

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2011-05-19 
10:47:15 UTC ---
Jason, this works without -pedantic but fails with:

templatetypename T T val();

struct F1
{
void operator()();
};

templatetypename... T struct tuple { };

templatetypename T, typename... V
T
call(T t, tupleV...)
{ return t; }

templatetypename F, typename... T
struct Bind
{
templatetypename... A, typename R
  = decltype( valF()( call(valT(), tupleA...())... ) )
R f(A...);

templatetypename... A, typename R
  = decltype( valconst F()( call(valT(), tupleA...())... ) )
R f(A...) const;
};

int main()
{
BindF1().f();
}

Is this code relying on a G++ extension?

The parameter pack T has zero elements so the expansion:
call(valT(), tupleA...())... )
expands to nothing, and in -pedantic mode that seems to prevent the parameter
pack A from participating in type deduction, so SFINAE doesn't remove the
overload.


[Bug testsuite/48251] guality_check hangs indefinitely on Tru64 UNIX

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48251

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
11:28:25 UTC ---
If you can't attach to a running process, that sounds like either a gdb bug, or
kernel bug, certainly not a gcc fault.


[Bug libstdc++/49060] use of deleted memory in __gnu_cxx::hashtable::erase

2011-05-19 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49060

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-05-19 
12:04:27 UTC ---
Personally I consider this legacy code essentially frozen, and don't mean to
spend time on it barring serious regressions. If Ian can review the patch and
approve it, I don't object, though.


[Bug c/49061] New: wrong code with ARM NEON intrinsics

2011-05-19 Thread hules at free dot fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49061

   Summary: wrong code with ARM NEON intrinsics
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hu...@free.fr


The code below generates wrong results when compiled with optimizations
enabled:

#include stdio.h
#include string.h
#include arm_neon.h

static void vvalidate(float *f) {
  float32x4_t a0 = { 0, 1, 2, 3};
  float32x4_t a1 = { 4, 5, 6, 7};
  float32x4_t a2 = { 8, 9, 10, 11};
  float32x4x2_t t0 = vzipq_f32(a1, a2);
  t0 = vzipq_f32(a0, a2);
  memcpy(f, t0.val[0], 8*sizeof(float));
}

int main() {
  float f[8];
  vvalidate(f);
  printf(interleaved([0 1 2 3], [8 9 10 11])=%g %g %g %g %g %g %g %g\n, f[0],
f[1], f[2], f[3], f[4], f[5], f[6], f[7]);
  if (f[4] != 2) printf(BGGG -- should be 0 8 1 9 2 10 3 11\n);   
  return 0;
}

# gcc-4.6.0 -mfloat-abi=softfp -mfpu=neon -O0 ./neon_bug.c  ./a.out
interleaved([0 1 2 3], [8 9 10 11])=0 8 1 9 2 10 3 11

# gcc-4.6.0 -mfloat-abi=softfp -mfpu=neon -O1 ./neon_bug.c  ./a.out
interleaved([0 1 2 3], [8 9 10 11])=0 8 1 9 6 10 7 11
BGGG -- should be 0 8 1 9 2 10 3 11

The bug also happens with the gcc-4.5 (Ubuntu/Linaro 4.5.2-8ubuntu4) and
gcc-4.4 (Ubuntu/Linaro 4.4.5-15ubuntu1) that ship with ubuntu 11.04.


[Bug middle-end/49062] New: [4.7 regression] Many C++ tests ICE on Tru64 UNIX: non-DECL_ONE_ONLY node in a same_comdat_group list

2011-05-19 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49062

   Summary: [4.7 regression] Many C++ tests ICE on Tru64 UNIX:
non-DECL_ONE_ONLY node in a same_comdat_group list
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: r...@gcc.gnu.org
CC: hubi...@gcc.gnu.org
  Host: alpha-dec-osf5.1b
Target: alpha-dec-osf5.1b
 Build: alpha-dec-osf5.1b


Between 20110502 and 20110518, many C++ tests stated to ICE on Tru64 UNIX
(Alpha/ECOFF without COMDAT support), e.g.

FAIL: g++.dg/torture/covariant-1.C  -O0  (internal compiler error)
FAIL: g++.dg/torture/covariant-1.C  -O0  (test for excess errors)
Excess errors:
/vol/gcc/src/hg/trunk/local/gcc/testsuite/g++.dg/torture/covariant-1.C:33:1:
error: non-DECL_ONE_ONLY node in a same_comdat_group list
AB* AB::_ZTchn8_h8_N2AB7getThisEv()/4 @166940 (asm: _ZTchn8_h8_N2AB7getThisEv)
(same comdat group as AB* AB::_ZTch0_h8_N2AB7getThisEv()/3)
availability:available analyzed needed address_taken externally_visible
finalized asm_written
  thunk of AB* AB::_ZTch0_h8_N2AB7getThisEv() (asm: _ZTch0_h8_N2AB7getThisEv)
fixed offset -8 virtual value 0 has virtual offset 0)
  called by: 
  calls: AB* AB::_ZTch0_h8_N2AB7getThisEv()/3 (1.00 per call) 
  References: 
  Refering this function:  var:int (* AB::_ZTV2AB [6])(...) (addr)
/vol/gcc/src/hg/trunk/local/gcc/testsuite/g++.dg/torture/covariant-1.C:33:1:
internal compiler error: verify_cgraph_node failed

This is almost certainly due to this patch:

2011-05-06  Jan Hubicka  j...@suse.cz

* cgraph.c (cgraph_add_thunk): Create real function node instead
of alias node; finalize it and mark needed/reachale; arrange visibility
to be right and add it into the corresponding same comdat group list.
(dump_cgraph_node): Dump thunks.

Please fix.

  Rainer


[Bug libstdc++/49060] use of deleted memory in __gnu_cxx::hashtable::erase

2011-05-19 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49060

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.05.19 12:03:35
 Ever Confirmed|0   |1


[Bug middle-end/49062] [4.7 regression] Many C++ tests ICE on Tru64 UNIX: non-DECL_ONE_ONLY node in a same_comdat_group list

2011-05-19 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49062

Rainer Orth ro at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0


[Bug libstdc++/49060] use of deleted memory in __gnu_cxx::hashtable::erase

2011-05-19 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49060

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||iant at google dot com

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2011-05-19 
12:15:10 UTC ---
CC-ing Ian.


[Bug target/48903] sol2.c:solaris_output_init_fini: implicit declaration of function ‘print_operand’

2011-05-19 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48903

Rainer Orth ro at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2011-05/msg00381.htm
   ||l
 CC||ro at gcc dot gnu.org
 Resolution||FIXED
   Target Milestone|--- |4.7.0

--- Comment #1 from Rainer Orth ro at gcc dot gnu.org 2011-05-19 12:20:16 UTC 
---
Should be fixed by the above patch.


[Bug tree-optimization/49006] [4.6/4.7 Regression] Missed vectorization due to revision 167531

2011-05-19 Thread irar at il dot ibm.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49006

Ira Rosen irar at il dot ibm.com changed:

   What|Removed |Added

 CC||irar at il dot ibm.com

--- Comment #4 from Ira Rosen irar at il dot ibm.com 2011-05-19 12:33:49 UTC 
---
(In reply to comment #0)

The problem is you don't see:
 induct_v4.f90:1766: note: LOOP VECTORIZED.
 induct_v4.f90:2177: note: LOOP VECTORIZED.
anymore, right?

With -Ofast there are no such loops, 1766 and 2177, they are probably being
unrolled.

I see these loops with -O2 -ftree-vectorize, and they are indeed not
vectorized, but they are not vectorized by previous version as well, AFAIU.

Ira


[Bug tree-optimization/49038] [4.5/4.6/4.7 Regression] -ftree-vectorise introduces reads past end of array

2011-05-19 Thread irar at il dot ibm.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49038

Ira Rosen irar at il dot ibm.com changed:

   What|Removed |Added

 CC||irar at il dot ibm.com

--- Comment #2 from Ira Rosen irar at il dot ibm.com 2011-05-19 12:38:32 UTC 
---
Is there a way for the vectorizer to check this? 

If not, we should probably create a scalar epilogue for last access with gap.

Thanks,
Ira


[Bug target/48949] [4.6/4.7 Regression] gcc-4.6.0 regression with complex.h on i386-pc-solaris2.10

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48949

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2011.05.19 12:37:15
 CC||jakub at gcc dot gnu.org
 Ever Confirmed|0   |1
   Severity|critical|normal

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
12:37:15 UTC ---
Can you see if fixincluded complex.h is used, or for some reason the system one
instead?  If the former, can you diff up the system one and the fixincluded
one?
You can run gcc -E foo.c | grep complex.h to see which complex.h is being used.


[Bug target/44618] [4.4/4.5/4.6/4.7 regression] wrong code with -frename-registers

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44618

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #20 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
12:42:02 UTC ---
Edmar, have you posted your alternative patch to gcc-patches?
That's where patch review is done, not in bugzilla.


[Bug testsuite/48251] guality_check hangs indefinitely on Tru64 UNIX

2011-05-19 Thread ro at CeBiTec dot Uni-Bielefeld.DE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48251

--- Comment #8 from ro at CeBiTec dot Uni-Bielefeld.DE ro at CeBiTec dot 
Uni-Bielefeld.DE 2011-05-19 12:16:25 UTC ---
 --- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
 11:28:25 UTC ---
 If you can't attach to a running process, that sounds like either a gdb bug, 
 or
 kernel bug, certainly not a gcc fault.

I'd bet it's a gdb bug, but I'd still keep the gcc testsuite bug open as
a reminder.

Rainer


[Bug tree-optimization/48822] [4.5 Regression] G++ gets stucks and never finishes compilation when enabling -O2/3 optimization options.

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48822

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||arthur.j.odwyer at gmail
   ||dot com

--- Comment #10 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
12:51:25 UTC ---
*** Bug 48921 has been marked as a duplicate of this bug. ***


[Bug c/49061] wrong code with ARM NEON intrinsics

2011-05-19 Thread irar at il dot ibm.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49061

Ira Rosen irar at il dot ibm.com changed:

   What|Removed |Added

 CC||irar at il dot ibm.com

--- Comment #1 from Ira Rosen irar at il dot ibm.com 2011-05-19 12:35:35 UTC 
---
This is probably related to pr 48252.


[Bug tree-optimization/48921] Value numbering takes infinite time on nested infinite loop

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48921

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||jakub at gcc dot gnu.org
 Resolution||DUPLICATE

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
12:51:25 UTC ---
Closing as DUP then.

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


[Bug libfortran/48906] Wrong rounding results with -m32

2011-05-19 Thread jvdelisle at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48906

--- Comment #7 from Jerry DeLisle jvdelisle at gcc dot gnu.org 2011-05-19 
12:58:34 UTC ---
It was the last case I was having trouble with. I also was getting different
results from different compilers, so I needed to confirm independently. I have
this part working now. Still have some bugs here.


[Bug tree-optimization/49038] [4.5/4.6/4.7 Regression] -ftree-vectorise introduces reads past end of array

2011-05-19 Thread rguenther at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49038

--- Comment #3 from rguenther at suse dot de rguenther at suse dot de 
2011-05-19 13:05:42 UTC ---
On Thu, 19 May 2011, irar at il dot ibm.com wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49038
 
 Ira Rosen irar at il dot ibm.com changed:
 
What|Removed |Added
 
  CC||irar at il dot ibm.com
 
 --- Comment #2 from Ira Rosen irar at il dot ibm.com 2011-05-19 12:38:32 
 UTC ---
 Is there a way for the vectorizer to check this? 

No.

 If not, we should probably create a scalar epilogue for last access with gap.

Probably yes.

Richard.


[Bug middle-end/49063] [4.7 Regression] FAIL: gcc.dg/builtin-object-size-11.c

2011-05-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49063

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-19 
13:07:53 UTC ---
Author: rguenth
Date: Thu May 19 13:07:50 2011
New Revision: 173906

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=173906
Log:
2011-05-19  Richard Guenther  rguent...@suse.de

PR testsuite/49063
* gcc.dg/builtin-object-size-11.c: Use -std=gnu89.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/builtin-object-size-11.c


[Bug c++/49043] [OpenMP C++0x]: Compiler error when lambda-function within OpenMP loop

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49043

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
13:12:02 UTC ---
Author: jakub
Date: Thu May 19 13:11:56 2011
New Revision: 173907

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=173907
Log:
PR c++/49043
* decl.c (check_omp_return): Stop searching on sk_function_parms.

* testsuite/libgomp.c++/pr49043.C: New test.

Added:
trunk/libgomp/testsuite/libgomp.c++/pr49043.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/libgomp/ChangeLog


[Bug middle-end/49063] New: [4.7 Regression] FAIL: gcc.dg/builtin-object-size-11.c

2011-05-19 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49063

   Summary: [4.7 Regression] FAIL: gcc.dg/builtin-object-size-11.c
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com
CC: rgue...@gcc.gnu.org


On Linux/x86, revision 173901 gave

FAIL: gcc.dg/builtin-object-size-11.c (test for excess errors)


[Bug middle-end/49063] [4.7 Regression] FAIL: gcc.dg/builtin-object-size-11.c

2011-05-19 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49063

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Blocks||48985
 Resolution||FIXED
   Target Milestone|--- |4.7.0

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-05-19 
13:08:18 UTC ---
Fixed.


[Bug c++/49043] [OpenMP C++0x]: Compiler error when lambda-function within OpenMP loop

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49043

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
13:39:33 UTC ---
Fixed.


[Bug c++/49043] [OpenMP C++0x]: Compiler error when lambda-function within OpenMP loop

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49043

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
13:14:00 UTC ---
Author: jakub
Date: Thu May 19 13:13:57 2011
New Revision: 173908

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=173908
Log:
PR c++/49043
* decl.c (check_omp_return): Stop searching on sk_function_parms.

* testsuite/libgomp.c++/pr49043.C: New test.

Added:
branches/gcc-4_6-branch/libgomp/testsuite/libgomp.c++/pr49043.C
Modified:
branches/gcc-4_6-branch/gcc/cp/ChangeLog
branches/gcc-4_6-branch/gcc/cp/decl.c
branches/gcc-4_6-branch/libgomp/ChangeLog


[Bug tree-optimization/49064] New: [x86/x64]: broken alias analysis leads vectorizer to emit poor code

2011-05-19 Thread piotr.wyderski at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49064

   Summary: [x86/x64]: broken alias analysis leads vectorizer to
emit poor code
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: piotr.wyder...@gmail.com


On an x86 capable of SSE2 or x64 (which has SSE2 by definition) GCC tries
to vectorize as much integer code as possible, but ends up witch code much
worse than without vectorization. The SSE2-based version unnecessarily
recomputes all the m_Data pointers, as demonstrated by the following C++
snippet. I guess the reason is unsophisticated alias analysis, but the
actual reason may in fact be different.


struct X {

__m128i*m_Data;
std::size_t m_Len;

void xor_all(const X v1, const X v2);
void xor_all2(const X v1, const X v2);
};


void X::xor_all(const X v1, const X v2) {

for(std::size_t i = 0; i != m_Len; ++i) {

m_Data[i] = v1.m_Data[i] ^ v2.m_Data[i];
}
}

void X::xor_all2(const X v1, const X v2) {

__m128i* p0 = m_Data;
__m128i* p1 = v1.m_Data;
__m128i* p2 = v2.m_Data;

for(std::size_t i = 0; i != m_Len; ++i) {

p0[i] = p1[i] ^ p2[i];
}
}

As can be seen, xor_all2 produces nice code and xor_all doesn't:

00447c70 _ZN1X7xor_allERKS_S1_:
  447c70:48 83 7f 08 00   cmpq   $0x0,0x8(%rdi)
  447c75:74 35je 447cac
_ZN1X7xor_allERKS_S1_+0x3c
  447c77:31 c0xor%eax,%eax
  447c79:0f 1f 80 00 00 00 00 nopl   0x0(%rax)
  447c80:4c 8b 12 mov(%rdx),%r10
  447c83:48 89 c1 mov%rax,%rcx
  447c86:48 83 c0 01  add$0x1,%rax
  447c8a:4c 8b 0e mov(%rsi),%r9
  447c8d:48 c1 e1 04  shl$0x4,%rcx
  447c91:4c 8b 07 mov(%rdi),%r8
  447c94:66 41 0f 6f 04 0amovdqa (%r10,%rcx,1),%xmm0
  447c9a:66 41 0f ef 04 09pxor   (%r9,%rcx,1),%xmm0
  447ca0:66 41 0f 7f 04 08movdqa %xmm0,(%r8,%rcx,1)
  447ca6:48 39 47 08  cmp%rax,0x8(%rdi)
  447caa:75 d4jne447c80
_ZN1X7xor_allERKS_S1_+0x10
  447cac:f3 c3repz retq 


00447cb0 _ZN1X8xor_all2ERKS_S1_:
  447cb0:48 83 7f 08 00   cmpq   $0x0,0x8(%rdi)
  447cb5:48 8b 0f mov(%rdi),%rcx
  447cb8:48 8b 36 mov(%rsi),%rsi
  447cbb:4c 8b 02 mov(%rdx),%r8
  447cbe:74 26je 447ce6
_ZN1X8xor_all2ERKS_S1_+0x36
  447cc0:31 c0xor%eax,%eax
  447cc2:31 d2xor%edx,%edx
  447cc4:0f 1f 40 00  nopl   0x0(%rax)
  447cc8:66 41 0f 6f 04 00movdqa (%r8,%rax,1),%xmm0
  447cce:48 83 c2 01  add$0x1,%rdx
  447cd2:66 0f ef 04 06   pxor   (%rsi,%rax,1),%xmm0
  447cd7:66 0f 7f 04 01   movdqa %xmm0,(%rcx,%rax,1)
  447cdc:48 83 c0 10  add$0x10,%rax
  447ce0:48 39 57 08  cmp%rdx,0x8(%rdi)
  447ce4:75 e2jne447cc8
_ZN1X8xor_all2ERKS_S1_+0x18
  447ce6:f3 c3repz retq


[Bug tree-optimization/49064] [x86/x64]: broken alias analysis leads vectorizer to emit poor code

2011-05-19 Thread piotr.wyderski at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49064

--- Comment #1 from Piotr Wyderski piotr.wyderski at gmail dot com 2011-05-19 
14:27:28 UTC ---
This is caused by the following definition in emmintrin.h:

/* The Intel API is flexible enough that we must allow aliasing with other
   vector types, and their scalar components.  */
typedef long long __m128i __attribute__ ((__vector_size__ (16),
__may_alias__)); 

Without __may_alias__ the generated assembly code is OK.
It's wrong to blindly assume a type aliases everything;
proper analysis should be performed.

Because the headers are indended to provide seamless integration
with MSVC and ICC vectorized code, it's a good practice to use SSE
that way. Most bona fide users will step into that trap assuming
GCC produces comparably good code, which in this case it obviously
doesn't, as can be seen above.


[Bug target/40483] gcc 4.x needs to utilize better COMDAT mechanism under Solaris

2011-05-19 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40483

--- Comment #4 from Rainer Orth ro at gcc dot gnu.org 2011-05-19 14:29:11 UTC 
---
Author: ro
Date: Thu May 19 14:29:05 2011
New Revision: 173913

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=173913
Log:
PR target/40483
* configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
COMDAT group syntax, both SPARC and x86 variants.
(HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
* configure: Regenerate.
* config/sol2.h (TARGET_SOLARIS): Define.
(PUSHSECTION_FORMAT): Remove.
(SECTION_NAME_FORMAT): Define.
* config/sol2.c: Include hashtab.h.
(solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
expansion, using SECTION_NAME_FORMAT.
(solaris_comdat_htab): New variable.
(struct comdat_entry): Define.
(comdat_hash): New function.
(comdat_eq): New function.
(solaris_elf_asm_comdat_section): New function.
(solaris_define_comdat_signature): New function.
(solaris_code_end): New function.
* config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
(solaris_code_end): Declare.
* config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
* config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
solaris_code_end.
(i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
Remove ATTRIBUTE_UNUSED.
[!USE_GAS]: Call solaris_elf_asm_comdat_section for
SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
* config/sparc/sparc.c (sparc_solaris_elf_asm_named_section):
Likewise.
* config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
* config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
* config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
(PUSHSECTION_FORMAT): Remove.
(SECTION_NAME_FORMAT): Redefine.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/config/i386/sol2-10.h
trunk/gcc/config/i386/sol2.h
trunk/gcc/config/sol2-protos.h
trunk/gcc/config/sol2.c
trunk/gcc/config/sol2.h
trunk/gcc/config/sparc/sol2.h
trunk/gcc/config/sparc/sparc.c
trunk/gcc/configure
trunk/gcc/configure.ac


[Bug c/49065] New: Write of non-aligned volatile float generates extra read instructions on PowerPC

2011-05-19 Thread Jay.Kulpinski at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49065

   Summary: Write of non-aligned volatile float generates extra
read instructions on PowerPC
   Product: gcc
   Version: 3.4.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: jay.kulpin...@gmail.com


On the PowerPC, a write to a non-aligned float within a packed data structure
results in each byte being read before being written if the object is declared
volatile.  This can cause unexpected behavior with hardware.  The bug exists in
recent 4.x gcc versions as well.



$ powerpc-eabi-gcc -v -save-temps -S -O2 gcc_bug.c
Reading specs from /opt/crossgcc/004DBN01/lib/gcc/powerpc-eabi/3.4.4/specs
Configured with: /opt/crossgcc/004DBN01/src/gcc-3.4.4/configure
--target=powerpc-eabi --prefix=/opt/crossgcc/004DBN01 --with-gnu-as
--with-gnu-ld --with-newlib --disable-multilib
Thread model: single
gcc version 3.4.4
 /opt/crossgcc/004DBN01/libexec/gcc/powerpc-eabi/3.4.4/cc1 -E -quiet -v
gcc_bug.c -O2 -o gcc_bug.i
ignoring nonexistent directory
/opt/crossgcc/004DBN01/lib/gcc/powerpc-eabi/3.4.4/../../../../powerpc-eabi/sys-include
#include ... search starts here:
#include ... search starts here:
 /opt/crossgcc/004DBN01/lib/gcc/powerpc-eabi/3.4.4/include

/opt/crossgcc/004DBN01/lib/gcc/powerpc-eabi/3.4.4/../../../../powerpc-eabi/include
End of search list.
 /opt/crossgcc/004DBN01/libexec/gcc/powerpc-eabi/3.4.4/cc1 -fpreprocessed
gcc_bug.i -quiet -dumpbase gcc_bug.c -auxbase gcc_bug -O2 -version -o gcc_bug.s
GNU C version 3.4.4 (powerpc-eabi)
compiled by GNU C version 4.1.2 20071124 (Red Hat 4.1.2-42).
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
$ 
$ cat gcc_bug.i
# 1 gcc_bug.c
# 1 built-in
# 1 command line
# 1 gcc_bug.c
struct msg {
short header;
float data;
} __attribute__((packed));

void nonvolatile_good(struct msg *p) {
p-data = 0.0;
}

void volatile_bad(volatile struct msg *p) {
p-data = 0.0;
}
$ 
$ cat gcc_bug.s
.file   gcc_bug.c
.section.text
.align 2
.globl nonvolatile_good
.type   nonvolatile_good, @function
nonvolatile_good:
li 0,0
stb 0,5(3)
stb 0,2(3)
stb 0,3(3)
stb 0,4(3)
blr
.size   nonvolatile_good, .-nonvolatile_good
.align 2
.globl volatile_bad
.type   volatile_bad, @function
volatile_bad:
li 0,0
lbz 9,2(3)--- troublesome load
stb 0,2(3)
lbz 9,3(3)--- troublesome load
stb 0,3(3)
lbz 9,4(3)--- troublesome load
stb 0,4(3)
lbz 9,5(3)--- troublesome load
stb 0,5(3)
blr
.size   volatile_bad, .-volatile_bad
.ident  GCC: (GNU) 3.4.4


[Bug target/40483] gcc 4.x needs to utilize better COMDAT mechanism under Solaris

2011-05-19 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40483

Rainer Orth ro at gcc dot gnu.org changed:

   What|Removed |Added

URL|http://gcc.gnu.org/ml/gcc-p |http://gcc.gnu.org/ml/gcc-p
   |atches/2010-06/msg00600.htm |atches/2011-05/msg01384.htm
   |l   |l
   Target Milestone|--- |4.7.0

--- Comment #5 from Rainer Orth ro at gcc dot gnu.org 2011-05-19 15:10:26 UTC 
---
Fixed for 4.7.0.


[Bug lto/49059] Linking with -flto fails

2011-05-19 Thread petr.malik at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49059

Petr petr.malik at hotmail dot com changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|DUPLICATE   |

--- Comment #3 from Petr petr.malik at hotmail dot com 2011-05-19 15:04:03 
UTC ---
(In reply to comment #2)
 If you do not add --enable-checking the error will vanish.  The check is for
 optimality of partitioning and asserts that no partition is empty.
 
 *** This bug has been marked as a duplicate of bug 48246 ***

I removed the '--enable-checking' switch and reconfigured GCC 4.6.0, then
compiled my app with this 'new' version, but with the same success as before...


[Bug c++/49058] [C++0x] Bind no-arguments functor failed using std::bind with -pedantic option.

2011-05-19 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49058

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.05.19 15:43:41
 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #2 from Jason Merrill jason at gcc dot gnu.org 2011-05-19 
15:43:41 UTC ---
This has nothing to do with variadics; the same error occurs with

templatetypename T T val();

struct F1
{   
void operator()();
};

templatetypename F
struct Bind
{   
templatetypename R
  = decltype( valF()( ) )
R f();

templatetypename R
  = decltype( valconst F()( ) )
R f() const;
};

int main()
{   
BindF1().f();
}

The problem is that F1::operator() is non-const, so when we instantiate
BindF1, valconst F() is ill-formed.  And this error is not dependent on  
EDG also rejects this testcase.  The bug is that we silently accept it without
-pedantic; we should be giving a pedwarn.


[Bug c++/49066] New: [C++0x] Non-defining declaration of deleted function suppresses usage validation

2011-05-19 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49066

   Summary: [C++0x] Non-defining declaration of deleted function
suppresses usage validation
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: daniel.krueg...@googlemail.com
CC: ja...@redhat.com


gcc 4.7.0 20110514 (experimental) in C++0x mode compiles the following program
successfully (but produces a link error):

//--
void foo() = delete;
void foo();

int main() { foo(); }
//--

It seems that the second (non-defining) declaration of the deleted function
foo() has the effect of undeleting the initial deleted definition. I cannot
deduce this kind of semantics from the FDIS wording: The program should be
rejected, when compiled [In a strict sense the compiler probably behaves
conforming, because in the end the program *is* ill-formed, but to me it looks
like a generally expected behaviour, that this should done by the compiler, not
by the linker. I'm hesitating to categorize this as an enhancement request and
therefore I did not so].


[Bug target/44618] [4.4/4.5/4.6/4.7 regression] wrong code with -frename-registers

2011-05-19 Thread edmar at freescale dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44618

--- Comment #21 from Edmar Wienskoski edmar at freescale dot com 2011-05-19 
15:52:02 UTC ---
(In reply to comment #20)
 Edmar, have you posted your alternative patch to gcc-patches?
 That's where patch review is done, not in bugzilla.

I don't remember, I am posting it today just in case I missed.

Thanks
Edmar


[Bug c++/49051] [C++0x] Doesn't SFINAE away an invalid substitution into toplevel parameter type T[N]

2011-05-19 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49051

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||INVALID

--- Comment #1 from Jason Merrill jason at gcc dot gnu.org 2011-05-19 
16:05:05 UTC ---
I disagree.  The transformation of array to pointer is done immediately at
declaration time (8.3.5/6), so there is no substitution into an array type.  In
resolving issue 1001, core agreed that the transformations in 8.3.5/6 are done
at template definition time, not deferred until the instantiation.

http://www.open-std.org/JTC1/SC22/WG21/docs/cwg_closed.html#1001
http://wiki.dinkumware.com/twiki/bin/view/Wg21batavia/CoreWorkingGroup#Core_issue_1001_Parameter_type_a


[Bug c++/49058] [C++0x] Bind no-arguments functor failed using std::bind with -pedantic option.

2011-05-19 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49058

--- Comment #3 from Jason Merrill jason at gcc dot gnu.org 2011-05-19 
16:09:05 UTC ---
Created attachment 24291
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24291
Fix

Here's a fix, which breaks bind, so I'm not going to check it in yet.  Is there
already a libstdc++ bug for this issue that I can mark as blocking this one?


[Bug libstdc++/49058] [C++0x] Bind no-arguments functor failed using std::bind with -pedantic option.

2011-05-19 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49058

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 CC||redi at gcc dot gnu.org

--- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2011-05-19 
16:10:58 UTC ---
...and adding Jonathan to CC.  See my earlier comments: a compiler bug was
masking a library bug.


[Bug libstdc++/49058] [C++0x] Bind no-arguments functor failed using std::bind with -pedantic option.

2011-05-19 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49058

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|NEW
  Component|c++ |libstdc++
 AssignedTo|jason at gcc dot gnu.org|unassigned at gcc dot
   ||gnu.org

--- Comment #4 from Jason Merrill jason at gcc dot gnu.org 2011-05-19 
16:09:59 UTC ---
Actually I'll just unassign myself and change the category.


[Bug c++/49051] [C++0x] Doesn't SFINAE away an invalid substitution into toplevel parameter type T[N]

2011-05-19 Thread schaub.johannes at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49051

--- Comment #2 from Johannes Schaub schaub.johannes at googlemail dot com 
2011-05-19 16:26:30 UTC ---
(In reply to comment #1)
 I disagree.  The transformation of array to pointer is done immediately at
 declaration time (8.3.5/6), so there is no substitution into an array type.  
 In
 resolving issue 1001, core agreed that the transformations in 8.3.5/6 are done
 at template definition time, not deferred until the instantiation.
 
 http://www.open-std.org/JTC1/SC22/WG21/docs/cwg_closed.html#1001
 http://wiki.dinkumware.com/twiki/bin/view/Wg21batavia/CoreWorkingGroup#Core_issue_1001_Parameter_type_a

jason, the transformation is immediately done at declaration time. I agree:
That's why these two are equivalent:

templatetypename T void f(T[1]);
templatetypename T void f(T*);

For equivalence, both shall have identical parameter-type-lists, which these
have. But before argument deduction, explicit template arguments are
substituted, and those explicit arguments are substituted into the *unadjusted*
parameter type. See 14.8.2p3 (FDIS):

After this substitution is performed, the function parameter type adjustments
described in 8.3.5 are performed.

The note that contains a list of substitution failures also has an example like
that at 14.8.2p8:

   template class T int f(T[5]);
   int I = fint(0);
   int j = fvoid(0); // invalid array


[Bug rtl-optimization/49014] [4.7 Regression] ICE: in reset_sched_cycles_in_current_ebb, at sel-sched.c:7132 with even more insane set of flags

2011-05-19 Thread abel at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49014

Andrey Belevantsev abel at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ubizjak at gmail dot com

--- Comment #3 from Andrey Belevantsev abel at gcc dot gnu.org 2011-05-19 
16:43:04 UTC ---
We again hit an insn with the nothing reservation.  This time it is the compare
from *cmpfp_iu_sse.  It does set the decode attribute to vector correctly but
sets type to ssecomi, and in the athlon.md the athlon_ssecomi reservation
compares against ssecmp, not ssecomi.  I see the following comment there:

;; It seems athlon_ssecomi has a bug in the attr_type, fixed for amdfam10

Changing the type to ssecomi (like below, as in atom.md) fixes this.

Uros, does this look right to you?  The other ssecomi* reservations also have
the ssecomi type.  If yes, then I will add the assert to the scheduler which
will fire immediately upon detecting this, it will be simple. 


diff --git a/gcc/config/i386/athlon.md b/gcc/config/i386/athlon.md
index 341adf4..2896a15 100644
--- a/gcc/config/i386/athlon.md
+++ b/gcc/config/i386/athlon.md
@@ -798,7 +798,7 @@
 athlon-direct,athlon-fploadk8,athlon-fadd)
 (define_insn_reservation athlon_ssecomi 4
 (and (eq_attr cpu athlon,k8,generic64)
- (eq_attr type ssecmp))
+ (eq_attr type ssecomi))
 athlon-vector,athlon-fpsched,athlon-fadd)
 (define_insn_reservation athlon_ssecomi_amdfam10 3
 (and (eq_attr cpu amdfam10)


[Bug libstdc++/49058] [C++0x] Bind no-arguments functor failed using std::bind with -pedantic option.

2011-05-19 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49058

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |redi at gcc dot gnu.org
   |gnu.org |

--- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org 2011-05-19 
16:52:35 UTC ---
thanks, I'll deal with the lib bug


[Bug c++/49051] [C++0x] Doesn't SFINAE away an invalid substitution into toplevel parameter type T[N]

2011-05-19 Thread schaub.johannes at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49051

--- Comment #3 from Johannes Schaub schaub.johannes at googlemail dot com 
2011-05-19 16:56:07 UTC ---
(In reply to comment #2)
 (In reply to comment #1)
  I disagree.  The transformation of array to pointer is done immediately at
  declaration time (8.3.5/6), so there is no substitution into an array type. 
   In
  resolving issue 1001, core agreed that the transformations in 8.3.5/6 are 
  done
  at template definition time, not deferred until the instantiation.
  
  http://www.open-std.org/JTC1/SC22/WG21/docs/cwg_closed.html#1001
  http://wiki.dinkumware.com/twiki/bin/view/Wg21batavia/CoreWorkingGroup#Core_issue_1001_Parameter_type_a
 
 jason, the transformation is immediately done at declaration time. I agree:
 That's why these two are equivalent:
 
 templatetypename T void f(T[1]);
 templatetypename T void f(T*);
 
 For equivalence, both shall have identical parameter-type-lists, which these
 have. But before argument deduction, explicit template arguments are
 substituted, and those explicit arguments are substituted into the 
 *unadjusted*
 parameter type. See 14.8.2p3 (FDIS):
 
 After this substitution is performed, the function parameter type adjustments
 described in 8.3.5 are performed.
 
 The note that contains a list of substitution failures also has an example 
 like
 that at 14.8.2p8:
 
template class T int f(T[5]);
int I = fint(0);
int j = fvoid(0); // invalid array

Ah I see now: The substitution for explicit arguments uses the *function type*,
not the parameter types (according to p6). So in the example above, it uses
T* and becomes void*. It doesn't use T[5]. p3 only applies when the
dependent type was adjusted and substitution made it a non-adjusted type.

So on a second read of this, I agree to you. The note at 14.8.2p8 and the
example of p3 were confusing me, both tricking me into thinking that for
substitution, the parameter types themselves somehow would be used.


[Bug libstdc++/49048] setprecision rounding fails in some cases

2011-05-19 Thread s.cecilio at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49048

--- Comment #8 from Cecilio s.cecilio at gmail dot com 2011-05-19 17:01:15 
UTC ---
Thanks again, Paolo and Jackub, for your help and explanations. Believe it or
not, I a have a PhD and had to learn a lot of complex mathematics, but I never
heard about so many types of 'rounding' methods. To me, rounding had always
meant round-half-up (banker's rounding): 5.5 rounds up to 6 and 6.5 rounds up
to 7. As this is also the normally required method for financial calculations,
I can not understand the usefulness of printf sometimes rounding up and others
rounding down, as it is the behaviour of round-half-even method. But once I've
learn that (thanks for this) I know that I can no longer rely on setprecision
or printf, and that I have to implement my rounding methods to get the banker's
rounding behaviour. 

I'm wondering how many financial programs are there relying on setprecision
without having noticed its 'problematic' rounding behaviour, caused by printf
and blessed by ISO c++ standard. ;-)

It's been a pleasure taking to both and learning with your help. 
With my best regards,
Cecilio


[Bug debug/49032] -gstabs generates reference to deleted static variable

2011-05-19 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49032

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2011-05-19 
17:07:35 UTC ---
Created attachment 24293
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24293
gcc47-pr49032.patch

Untested fix.  Works on this testcase, as well as when s is actually forced to
be output (e.g. through inline asm).  I'm not a stabs user (are there any left
anyway?), so don't know whether it doesn't decrease debug info quality (if we
can speak about debug info quality in stabs case), but from I understand at
least the global_decl debug hooks are called at least by C/C++ FEs after
cgraph_finalize_compilation_unit has been called and thus IMHO the patch should
only change anything when the vars aren't output.
Guess one could put there instead gcc_unreachable (); instead of return NULL;
and see how often it triggers during -gstabs bootstrap.


[Bug c/49067] New: Internal Compiler Error with -O3

2011-05-19 Thread asalina at snet dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49067

   Summary: Internal Compiler Error with -O3
   Product: gcc
   Version: 4.5.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: asal...@snet.net


Created attachment 24292
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24292
Pre=processed .i file

GCC aborts with internal compiler error when optimization is set to -O3.
Setting optimization to -O2 prevents the problem.

Pre-processed .i file attached.

System type: Ubuntu 11.04

Entire command line (via Makefile) that triggers the error:

cd /home/fcf/blender-svn/cmake/source/blender/editors/space_view3d 
/usr/bin/gcc  -D__SSE__ -D__MMX__ -D__SSE2__ -DWITH_GAMEENGINE -DGLEW_STATIC
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -fopenmp 
-msse2  -msse -pipe -fPIC -funsigned-char -fno-strict-aliasing  -Wall
-Wcast-align -Werror=declaration-after-statement
-Werror=implicit-function-declaration -Werror=return-type -Wstrict-prototypes
-Wno-char-subscripts -Wno-unknown-pragmas -Wpointer-arith -Wunused-parameter
-Wwrite-strings -O3 -DNDEBUG -DNDEBUG
-I/home/fcf/blender-svn/blender/source/blender/editors/include
-I/home/fcf/blender-svn/blender/source/blender/blenfont
-I/home/fcf/blender-svn/blender/source/blender/blenkernel
-I/home/fcf/blender-svn/blender/source/blender/blenloader
-I/home/fcf/blender-svn/blender/source/blender/blenlib
-I/home/fcf/blender-svn/blender/source/blender/gpu
-I/home/fcf/blender-svn/blender/source/blender/imbuf
-I/home/fcf/blender-svn/blender/source/blender/makesdna
-I/home/fcf/blender-svn/blender/source/blender/makesrna
-I/home/fcf/blender-svn/blender/source/blender/windowmanager
-I/home/fcf/blender-svn/blender/source/blender/render/extern/include
-I/home/fcf/blender-svn/blender/intern/guardedalloc
-I/home/fcf/blender-svn/blender/intern/smoke/extern
-I/home/fcf/blender-svn/blender/extern/glew/include
-I/home/fcf/blender-svn/blender/source/gameengine/BlenderRoutines   -save-temps
-o CMakeFiles/bf_editor_space_view3d.dir/view3d_select.c.o   -c
/home/fcf/blender-svn/blender/source/blender/editors/space_view3d/view3d_select.c


Output of gcc -v

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
4.5.2-8ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.5 --enable-shared --enable-multiarch
--with-multiarch-defaults=x86_64-linux-gnu --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib/x86_64-linux-gnu
--without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib/x86_64-linux-gnu
--enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-plugin --enable-gold --enable-ld=default
--with-plugin-ld=ld.gold --enable-objc-gc --disable-werror --with-arch-32=i686
--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)


[Bug c++/49051] [C++0x] Doesn't SFINAE away an invalid substitution into toplevel parameter type T[N]

2011-05-19 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49051

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|RESOLVED|SUSPENDED
 Resolution|INVALID |

--- Comment #4 from Jason Merrill jason at gcc dot gnu.org 2011-05-19 
17:20:44 UTC ---
Hmm, the example in 14.8.2p8 does seem to contradict my interpretation of the
normative wording.  I'll raise this with core.


[Bug c/49068] New: Failure to auto-cast in expression, results in broken code

2011-05-19 Thread thomas.evans at nrl dot navy.mil
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49068

   Summary: Failure to auto-cast in expression, results in broken
code
   Product: gcc
   Version: 4.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: thomas.ev...@nrl.navy.mil


Subject:

Target: i686-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5666.3~6/src/configure --disable-checking
--enable-werror --prefix=/usr --mandir=/share/man
--enable-languages=c,objc,c++,obj-c++
--program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib
--build=i686-apple-darwin10 --program-prefix=i686-apple-darwin10-
--host=x86_64-apple-darwin10 --target=i686-apple-darwin10
--with-gxx-include-dir=/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5666) (dot 3)

=

Predicate:

the code:

  int gnome, jape[20];
  char buff[888];

  gnome = sscanf(buff, %d %d %d %d %d %d %d %d %d,jape+0, jape+1, jape+2, 
jape+3, jape+4, jape+5, jape+6, jape+7, jape+8);

generates the following warning:

warning: format '%d' expects type 'int *', but argument 6 has type 'int
(*)[20]'

also, the code does not work properly -- the values in jape[] are not the same
as those in the buff[] array.

The cause apears to be the expression jape+0 (or maybeso jape+5, but that makes
much less sense from my naive perspective) being prematurely optimized by 
removal of the +0, which would otherwise force a quiet cast of jape from 
'int (*)[20]' to 'int *'.


[Bug c/49068] Failure to auto-cast in expression, results in broken code

2011-05-19 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49068

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2011-05-19 
18:17:17 UTC ---
It does say which argument too: argument 6.


[Bug target/49069] New: ICE in gen_cstoredi4, at config/arm/arm.md:7554

2011-05-19 Thread rmansfield at qnx dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49069

   Summary: ICE in gen_cstoredi4, at config/arm/arm.md:7554
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: rmansfi...@qnx.com
  Host: x86_64-linux-gnu
Target: arm-unknown-linux-gnueabi
 Build: x86_64-linux-gnu


Created attachment 24294
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24294
preprocessed source

$ ./xgcc -v
Using built-in specs.
COLLECT_GCC=./xgcc
Target: arm-unknown-linux-gnueabi
Configured with: ../configure --target=arm-unknown-linux-gnueabi
--prefix=/home/ryan/x-tools/arm-unknown-linux-gnueabi
--with-sysroot=/home/ryan/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi//sys-root
--disable-multilib
--with-local-prefix=/home/ryan/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sys-root
--disable-nls --enable-threads=posix --enable-symvers=gnu --enable-c99
--enable-long-long --enable-target-optspace
target_alias=arm-unknown-linux-gnueabi --enable-languages=c++ --disable-shared
--disable-libmudflap --disable-libssp
Thread model: posix
gcc version 4.7.0 20110519 (experimental) [trunk revision 173917] (GCC) 
$ ./xgcc -B. /home/ryan/ice.i -Os
/home/ryan/ice.i: In function 'foo':
/home/ryan/ice.i:23:11: internal compiler error: in gen_cstoredi4, at
config/arm/arm.md:7554
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


[Bug c/49068] Failure to auto-cast in expression, results in broken code

2011-05-19 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49068

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2011-05-19 
18:16:53 UTC ---
jape+3 is the issue.


[Bug objc++/49070] New: ObjC++ compiler fails to compile ObjC method invocations without keyword arguments

2011-05-19 Thread nicola at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49070

   Summary: ObjC++ compiler fails to compile ObjC method
invocations without keyword arguments
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: objc++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: nic...@gcc.gnu.org


The following testcase

/* Contributed by Nicola Pero nicola.p...@meta-innovation.com, May 2011.  */
#include objc/objc.h

@interface A
- (id) method:(id)arg0 :(id)arg1;
@end

id function (A *x)
{
  return [x method:x :x];
}

fails to compile as Objective-C++ with GCC 4.7.0:

[nicola@lampone ~]$ gcc test.mm -c
test.mm: In function ‘objc_object* function(A*)’:
test.mm:10:22: error: found ‘:’ in nested-name-specifier, expected ‘::’
test.mm:10:20: error: ‘x’ is not a class or namespace
test.mm:10:24: warning: ‘A’ may not respond to ‘-method:’ [enabled by default]
test.mm:10:24: warning: (Messages without a matching method signature [enabled
by default]
test.mm:10:24: warning: will be assumed to return ‘id’ and accept [enabled by
default]
test.mm:10:24: warning: ‘...’ as arguments.) [enabled by default]
[nicola@lampone ~]$

It compiles as Objective-C (ie, if you rename the file as test.m).  It also
compiles with much older compilers, such as GCC 4.1.2.

This testcase was distilled from a bug reported by Banlu Kemiyatorn.

I'd consider this slightly higher priority than the usual Objective-C++ 
testcase because what is broken is actually part of the basic Objective-C 
language syntax.

Thanks


[Bug objc++/49070] ObjC++ compiler fails to compile ObjC method invocations without keyword arguments

2011-05-19 Thread nicola at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49070

Nicola Pero nicola at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.05.19 18:36:55
 Ever Confirmed|0   |1

--- Comment #1 from Nicola Pero nicola at gcc dot gnu.org 2011-05-19 18:36:55 
UTC ---
Confirmed.  The testcase fails to compile with

  gcc (GCC) 4.7.0 20110519 (experimental).

Thanks


[Bug target/49071] New: Wrong code with -fschedule-insns (x86-64)

2011-05-19 Thread arthur.j.odwyer at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49071

   Summary: Wrong code with -fschedule-insns (x86-64)
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: arthur.j.odw...@gmail.com


Created attachment 24295
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24295
Output of gcc -O1 -fschedule-insns test.c -v with GCC 4.4.5

This bug reproduces all the way back to at least 4.4.5, and also reproduces
with trunk revision 173843 (2011-05-17).  I'm on Ubuntu 10.10, x86-64.

cat test.c EOF
#include stdio.h
#pragma pack(1)
struct S0 {
   int f0;
   int f1;
   unsigned f3 : 6;
   int f4;
   int f5;
   unsigned f6 : 23;
   unsigned f8 : 10;
};
static struct S0 g_12 = {0};
static struct S0 g_361 = {0,0,0,0,0,0,55};
static unsigned char g_547 = 1;
static int func_66() {
g_12.f8 |= 1;
return g_12.f6;
}
static struct S0 func_1(void) {
int p;
for (p = 2; p = 0; --p)
  g_547 = 2;
g_361.f8 = func_66();
return (struct S0){0};
}
int main() {
func_1();
printf(, (unsigned)g_361.f6);
printf(%x\n, (unsigned)g_547);
return 0;
}
EOF
gcc -O1 test.c ; ./a.out // correctly prints 2
gcc -O2 test.c ; ./a.out // incorrectly prints 1

You can replace -O2 with -O1 -fschedule-insns and see the same wrong code
generated.


This test case is reduced from the output of Csmith 2.1.0 (git hash 01aa8b04,
https://github.com/Quuxplusone/csmith/), using the following command line:
csmith --paranoid --longlong --no-pointers --arrays --no-jumps --no-consts
--no-volatiles --checksum --divs --no-muls --bitfields --packed-struct -s
591872179


[Bug rtl-optimization/49014] [4.7 Regression] ICE: in reset_sched_cycles_in_current_ebb, at sel-sched.c:7132 with even more insane set of flags

2011-05-19 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49014

--- Comment #4 from Uros Bizjak ubizjak at gmail dot com 2011-05-19 19:09:44 
UTC ---
(In reply to comment #3)

 Changing the type to ssecomi (like below, as in atom.md) fixes this.
 
 Uros, does this look right to you?  The other ssecomi* reservations also have
 the ssecomi type.  If yes, then I will add the assert to the scheduler which
 will fire immediately upon detecting this, it will be simple. 
 
 
 diff --git a/gcc/config/i386/athlon.md b/gcc/config/i386/athlon.md
 index 341adf4..2896a15 100644
 --- a/gcc/config/i386/athlon.md
 +++ b/gcc/config/i386/athlon.md
 @@ -798,7 +798,7 @@
  athlon-direct,athlon-fploadk8,athlon-fadd)
  (define_insn_reservation athlon_ssecomi 4
  (and (eq_attr cpu athlon,k8,generic64)
 - (eq_attr type ssecmp))
 + (eq_attr type ssecomi))
  athlon-vector,athlon-fpsched,athlon-fadd)
  (define_insn_reservation athlon_ssecomi_amdfam10 3
  (and (eq_attr cpu amdfam10)

This change looks correct to me, ssecmp type goes to ssecmp* reservations.


[Bug c++/49066] [C++0x] Non-defining declaration of deleted function suppresses usage validation

2011-05-19 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49066

--- Comment #1 from Daniel Krügler daniel.kruegler at googlemail dot com 
2011-05-19 19:06:15 UTC ---
I found another example that convinces me that the current behaviour is a real
bug and that this issue is not just an enhancement request. Consider this
example:

//---
void foo() = delete;
void foo();

templateclass = decltype(foo())
void bar(){}

int main() { bar(); }
//---

Without the second non-defining declaration of foo(), the program would be
clearly rejected, but with the second declaration it is accepted. This code
should be rejected independent of the existence of the second declaration of
foo().


[Bug target/49071] Wrong code with -fschedule-insns (x86-64)

2011-05-19 Thread regehr at cs dot utah.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49071

--- Comment #1 from John Regehr regehr at cs dot utah.edu 2011-05-19 19:27:34 
UTC ---
May be related to 48124


[Bug target/49061] wrong code with ARM NEON intrinsics

2011-05-19 Thread hules at free dot fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49061

--- Comment #2 from Julien Pommier hules at free dot fr 2011-05-19 19:30:49 
UTC ---
Thanks Ira, I guess you are right. Testing with the latest gcc 4.6.1 snapshot,
the bug seems to be gone !


[Bug bootstrap/49072] New: Error building the compiler

2011-05-19 Thread jose.pascual-guti...@1-act.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49072

   Summary: Error building the compiler
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: bootstrap
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: jose.pascual-guti...@1-act.com


I downloaded from one of the mirror sites the following tar balls:

gcc-4.6.0.tar.gz
gmp-4.3.2.tar.bz2
mpc-0.8.1.tar.gz
mpfr-2.4.2.tar.bz2

I decompressed and untarred the files, which resulted in four directories,
respectively: gcc-4.6.0, gmp-4.3.2, mpc-0.8.1, and mpfr-2.4.2. I then created
the directory ~/gcc4 and I moved gcc-4.6.0 in it. I then changed the names of
the directories gmp-4.3.2, mpc-0.8.1, and mpfr-2.4.2 to gmp, mpc, and mpfr,
respectively. These three directories, namely gmp, mpc, and mpfr were moved it
to ~/gcc4/gcc-4.6.0. In gcc4, I created the directory objdir. So, the directory
tree looks like the following:

|--gcc4
|  |--objdir
|  |--gcc-4.6.0
|  |  |--gmp
|  |  |--mpc
|  |  |--mpfr

I then proceeded to configure the installation. From ~/gcc4/objdir, I executed
“../gcc-4.6.0/configure”.
Once the Makefile was created, still from within ~/gcc4/objdir, I executed
“make bootstrap”. After about 24 hours of execution, the build failed with the
following error message:

../../../gcc-4.6.0/libgcc/../gcc/libgcc2.c:791:1: internal compiler error:
Floating point exception
Please submit a full bug report,
With preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructinos.
make [3]: *** [_popcountsi2.o] Error 1
make [3]: Leaving directory
‘/home/Jose.Pascual-Gutierr/gcc4/objdir/i686-pc-cygwin/libgcc’
make [2]: *** [all-stage2-target-libgcc] Error 2
make [2]: Leaving directory ‘/home/Jose.Pascual-Gutierr/gcc4/objdir’
make [1]: *** [stage2-bubble] Error 2
make [1]: Leaving directory ‘/home/Jose.Pascual-Gutierr/gcc4/objdir’
make: *** [bootstrap] Error 2

All the help you can provide will be very appreciated.
Thank you very much,
José


[Bug fortran/18918] Eventually support Fortran 2008's coarrays [co-arrays]

2011-05-19 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18918

--- Comment #49 from Tobias Burnus burnus at gcc dot gnu.org 2011-05-19 
20:53:36 UTC ---
Author: burnus
Date: Thu May 19 20:53:33 2011
New Revision: 173920

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=173920
Log:
2011-06-19  Tobias Burnus  bur...@net-b.de

PR fortran/18918
* trans-types.c (gfc_get_element_type): Handle scalar coarrays.
(gfc_get_nodesc_array_type): Make a variant-type copy for scalar
coarrays.
* trans.c (gfc_build_array_ref): Return original type not
* variant
copy for scalar coarrays.
* trans-array.c (gfc_conv_array_ref): Ditto.

2011-06-19  Tobias Burnus  bur...@net-b.de

PR fortran/18918
* gfortran.dg/coarray_21.f90: New.


Added:
trunk/gcc/testsuite/gfortran.dg/coarray_21.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-types.c
trunk/gcc/fortran/trans.c
trunk/gcc/testsuite/ChangeLog


  1   2   >