[Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256

2011-10-23 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

Uros Bizjak  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC|uros at gcc dot gnu.org |
 AssignedTo|unassigned at gcc dot   |ubizjak at gmail dot com
   |gnu.org |

--- Comment #4 from Uros Bizjak  2011-10-23 08:19:52 
UTC ---
Looking into it.


[Bug target/50829] avx extra copy for _mm256_insertf128_pd

2011-10-23 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50829

--- Comment #3 from Marc Glisse  2011-10-23 
08:20:50 UTC ---
(In reply to comment #1)
> This looks similar to PR 34283, a RA problem.

PR 48037 too. I didn't find all of those before reporting because I was looking
for something AVX-specific, sorry.


[Bug rtl-optimization/50829] avx extra copy for _mm256_insertf128_pd

2011-10-23 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50829

Uros Bizjak  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-10-23
 CC||law at gcc dot gnu.org,
   ||vmakarov at gcc dot gnu.org
  Component|target  |rtl-optimization
 Ever Confirmed|0   |1

--- Comment #4 from Uros Bizjak  2011-10-23 08:32:37 
UTC ---
Adding some CCs that might be interested in this RA problem(s).


[Bug rtl-optimization/43147] SSE shuffle merge

2011-10-23 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43147

Marc Glisse  changed:

   What|Removed |Added

 CC||marc.glisse at normalesup
   ||dot org

--- Comment #4 from Marc Glisse  2011-10-23 
08:40:04 UTC ---
Apart from combining 2 shuffles, I would expect the set and the shuffle to be
combined in Comment 1. I was going to report the following, but it already
appears in this bug:
__m128d f(double d){
__m128d x=_mm_setr_pd(-d,d);
return _mm_shuffle_pd(x,x,1);
}

movsd.LC0(%rip), %xmm1
xorpd%xmm0, %xmm1
movapd%xmm1, %xmm2
unpcklpd%xmm0, %xmm2
movapd%xmm2, %xmm0
shufpd$1, %xmm2, %xmm0

some extra moves, as usual, and a shuffle that could be combined with the
unpack.
(obviously we don't write such code, it is only after inlining that it looks
that way)


[Bug c++/50830] [c++0x] Variadic template, inner class error

2011-10-23 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50830

--- Comment #6 from Daniel Krügler  
2011-10-23 09:51:44 UTC ---
[I assume you refer to p8 and the sentence: "If an argument is a pack expansion
(14.5.3), it shall be the last argument in the template argument list."]

No. list_templates is not an argument that *is* a pack expansion (but it
contains a pack expansion, which is fine). This sentence describes a situation
like the following:

template
struct P;

template
struct X;

template
struct X> {};

This is ill-formed because the expansion Ts... is not at the end of the
argument list.

Changing it to

template
struct X, Ts...> {};

would be OK, though.


[Bug c++/50830] [c++0x] Variadic template, inner class error

2011-10-23 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50830

--- Comment #7 from Daniel Krügler  
2011-10-23 10:02:19 UTC ---
I can only guess that there is a compiler defect in regard to handling variadic
template template parameters. The corresponding example

template
struct S;

template
struct X;

template
struct X, T> {};

X, double> x;

is accepted as expected.


[Bug libstdc++/50834] Documentation about STL thread safety is ambiguous

2011-10-23 Thread bergerp at laposte dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50834

--- Comment #2 from Pierre  2011-10-23 10:10:29 UTC 
---
Ok first, thanks for the explanation !

I think the ambiguity comes from the order in which these statements are read
by someone not familiar with this :

1) First you find the reference to SGI STL thread safety in the libstdc++
documentation

2) Then, you read the SGI STL thread safety definition, where you find that
concurrent read accesses are safe

3) Then you go back to the libstdc++ documentation, where you see that
concurrent read accesses should be considered unsafe, "unless otherwise
documented as safe". So you're right, they are actually documented as safe in
the SGI STL definition, but what the unaware reader thinks is : "what's the use
of telling my NOW that they should be considered unsafe" !


I hope this will help you when rewriting this documentation page to comply with
the C++11 definition.

Regards,
Pierre


[Bug debug/50816] [4.6.1] Discriminators are emitted in DWARF 2 format

2011-10-23 Thread anitha.boyapati at atmel dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50816

Anitha Boyapati  changed:

   What|Removed |Added

 CC||rth at gcc dot gnu.org

--- Comment #4 from Anitha Boyapati  
2011-10-23 10:22:49 UTC ---
I think it can be fixed for gcc 4.6.2 release since the candidate is around to
be released.


[Bug middle-end/50823] [4.7 Regression] ICE in inline_small_functions, at ipa-inline.c:1407

2011-10-23 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50823

Richard Guenther  changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0


[Bug tree-optimization/50824] memset or memcpy on structure prevents SRA

2011-10-23 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50824

Richard Guenther  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2011-10-23
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther  2011-10-23 
10:57:29 UTC ---
No, I think because it counts as address-taken, not because it escapes.

Do you have a testcase?  Most memcpys should be folded to a plain assignment
already, but we don't fold memset to zero to = {} I guess.


[Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256

2011-10-23 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

--- Comment #5 from Uros Bizjak  2011-10-23 10:59:21 
UTC ---
(In reply to comment #3)

> but the expanders have match_dup.  Uros, would you mind taking it over?  TIA.

It is OK for expanders to have match_dup. We just don't want to have
post-reload passes to trip on double-output to the same register.

BTW: There is another spot with similar problem:

@@ -8011,7 +8011,8 @@
   [(set (mem:V16QI (match_operand:P 0 "register_operand" "D"))
 (unspec:V16QI [(match_operand:V16QI 1 "register_operand" "x")
(match_operand:V16QI 2 "register_operand" "x")
-   (mem:V16QI (match_dup 0))]
+   (mem:V16QI
+ (match_operand:P 3 "register_operand" "0"))]
   UNSPEC_MASKMOV))]
   "TARGET_SSE2"
   "%vmaskmovdqu\t{%2, %1|%1, %2}"

While compilation won't break here, IMO we should tell the reload that we have
matching constraint.

BTW: This fun is all due to conditional maskmov store. We can't just set the
memory, since preceding stores to the same location will be simply deleted.


[Bug libgcj/50831] [4.7 regression] __gcc_register_frame must throw error when failed to load dll

2011-10-23 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50831

Richard Guenther  changed:

   What|Removed |Added

   Priority|P3  |P4
   Target Milestone|--- |4.7.0


[Bug bootstrap/50836] New: [4.7 regression] bootstrap fails due to error: no previous prototype for 'find_all_hard_reg_sets'

2011-10-23 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50836

 Bug #: 50836
   Summary: [4.7 regression] bootstrap fails due to error: no
previous prototype for 'find_all_hard_reg_sets'
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: mi...@it.uu.se


gcc-4.7-20111022 failed to bootstrap on i686-linux for me due to:

/mnt/scratch/objdir47/./prev-gcc/xgcc -B/mnt/scratch/objdir47/./prev-gcc/
-B/mnt/scratch/install47/i686-pc-linux-gnu/bin/
-B/mnt/scratch/install47/i686-pc-linux-gnu/bin/
-B/mnt/scratch/install47/i686-pc-linux-gnu/lib/ -isystem
/mnt/scratch/install47/i686-pc-linux-gnu/include -isystem
/mnt/scratch/install47/i686-pc-linux-gnu/sys-include-c   -g -O2 -gtoggle
-DIN_GCC   -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes
-Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long
-Wno-variadic-macros -Wno-overlength-strings -Werror -Wold-style-definition
-Wc++-compat   -DHAVE_CONFIG_H -I. -I. -I/mnt/scratch/gcc-4.7-20111022/gcc
-I/mnt/scratch/gcc-4.7-20111022/gcc/.
-I/mnt/scratch/gcc-4.7-20111022/gcc/../include
-I/mnt/scratch/gcc-4.7-20111022/gcc/../libcpp/include
-I/home/mikpe/pkgs/linux-x86/gmp-5.0.2/include
-I/home/mikpe/pkgs/linux-x86/mpfr-3.0.1/include
-I/home/mikpe/pkgs/linux-x86/mpc-0.9/include 
-I/mnt/scratch/gcc-4.7-20111022/gcc/../libdecnumber
-I/mnt/scratch/gcc-4.7-20111022/gcc/../libdecnumber/bid -I../libdecnumber   
/mnt/scratch/gcc-4.7-20111022/gcc/rtlanal.c -o rtlanal.o
/mnt/scratch/gcc-4.7-20111022/gcc/rtlanal.c:1017:1: error: no previous
prototype for 'find_all_hard_reg_sets' [-Werror=missing-prototypes]
cc1: all warnings being treated as errors

make[3]: *** [rtlanal.o] Error 1
make[3]: Leaving directory `/mnt/scratch/objdir47/gcc'
make[2]: *** [all-stage2-gcc] Error 2
make[2]: Leaving directory `/mnt/scratch/objdir47'
make[1]: *** [stage2-bubble] Error 2
make[1]: Leaving directory `/mnt/scratch/objdir47'
make: *** [bootstrap] Error 2

gcc-4.7-20111015 built Ok on that machine.

Configured as:
/mnt/scratch/gcc-4.7-20111022/configure --prefix=/mnt/scratch/install47
--with-gmp=/home/mikpe/pkgs/linux-x86/gmp-5.0.2
--with-mpfr=/home/mikpe/pkgs/linux-x86/mpfr-3.0.1
--with-mpc=/home/mikpe/pkgs/linux-x86/mpc-0.9 --disable-plugin --disable-lto
--disable-nls --enable-threads=posix --enable-checking=release
--disable-libmudflap --enable-languages=c,c++,objc,obj-c++,java,fortran,ada
--disable-build-poststage1-with-cxx


[Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256

2011-10-23 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

--- Comment #6 from Eric Botcazou  2011-10-23 
11:27:22 UTC ---
> It is OK for expanders to have match_dup. We just don't want to have
> post-reload passes to trip on double-output to the same register.

No disagreement.  I just wanted to state the argument for the + approach, but
the manual clearly points to the match_operand approach here instead.

> BTW: There is another spot with similar problem:
> 
> @@ -8011,7 +8011,8 @@
>[(set (mem:V16QI (match_operand:P 0 "register_operand" "D"))
>  (unspec:V16QI [(match_operand:V16QI 1 "register_operand" "x")
> (match_operand:V16QI 2 "register_operand" "x")
> -   (mem:V16QI (match_dup 0))]
> +   (mem:V16QI
> + (match_operand:P 3 "register_operand" "0"))]
>UNSPEC_MASKMOV))]
>"TARGET_SSE2"
>"%vmaskmovdqu\t{%2, %1|%1, %2}"
> 
> While compilation won't break here, IMO we should tell the reload that we have
> matching constraint.

Indeed.


[Bug c++/50830] [c++0x] Variadic template, inner class error

2011-10-23 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50830

Paolo Carlini  changed:

   What|Removed |Added

 CC||paolo.carlini at oracle dot
   ||com

--- Comment #8 from Paolo Carlini  2011-10-23 
11:28:47 UTC ---
Note: about variadic template template we also have PR50303.


[Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256

2011-10-23 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

--- Comment #7 from Uros Bizjak  2011-10-23 11:45:32 
UTC ---
(In reply to comment #6)
> > It is OK for expanders to have match_dup. We just don't want to have
> > post-reload passes to trip on double-output to the same register.
> 
> No disagreement.  I just wanted to state the argument for the + approach, but
> the manual clearly points to the match_operand approach here instead.

cprop_hardreg of 4-6 branch is even more confused:

(insn 30 5 10 2 (set (reg:V4DF 22 xmm1 [63])
(const_vector:V4DF [
(const_double:DF 0.0 [0x0.0p+0])
(const_double:DF 0.0 [0x0.0p+0])
(const_double:DF 0.0 [0x0.0p+0])
(const_double:DF 0.0 [0x0.0p+0])
])) pr50788.c:6 1120 {*avx_movv4df_internal}
 (expr_list:REG_EQUAL (const_vector:V4DF [
(const_double:DF 0.0 [0x0.0p+0])
(const_double:DF 0.0 [0x0.0p+0])
(const_double:DF 0.0 [0x0.0p+0])
(const_double:DF 0.0 [0x0.0p+0])
])
(nil)))

(insn 10 30 16 2 (set (reg:V4DF 22 xmm1 [63])
(unspec:V4DF [
(mem:V4DF (reg/v/f:DI 5 di [orig:61 __P ] [61]) [0 S32 A8])
(reg/v:V4DI 21 xmm0 [orig:62 __M ] [62])
(reg:V4DF 21 xmm0 [63])
] UNSPEC_MASKLOAD)) pr50788.c:6 2086 {avx_maskloadpd256}
 (expr_list:REG_DEAD (reg/v:V4DI 21 xmm0 [orig:62 __M ] [62])
(expr_list:REG_DEAD (reg/v/f:DI 5 di [orig:61 __P ] [61])
(nil

See how in (insn 10) pseudo [63] gets allocated xmm1 _and_ xmm0. Following DCE
is more than happy to throw everything out of instruction stream.


[Bug c++/50835] [4.7 Regression] Lvalue-ness of conditional operator results is incorrect in a function template

2011-10-23 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50835

--- Comment #1 from Daniel Krügler  
2011-10-23 11:47:19 UTC ---
Simplified test case:

//---
template
struct vector {};

template
struct rvalue_probe
{
explicit rvalue_probe(T &t) : value(t) {}

operator T&() const { return value; }

T& value;
};

template 
void should_be_lvalue(T&)
{
}

template 
void f()
{
vector v;
should_be_lvalue(true ? rvalue_probe >(v) : v); // Error
}
//---

The problem exists in C++0x mode as well.


[Bug c++/50835] [4.7 Regression] Lvalue-ness of conditional operator results is incorrect in a function template

2011-10-23 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50835

--- Comment #2 from Daniel Krügler  
2011-10-23 11:50:17 UTC ---
Further simplification:

//---
struct vector {};

template
struct rvalue_probe
{
explicit rvalue_probe(T &t) : value(t) {}

operator T&() const { return value; }

T& value;
};

template 
void should_be_lvalue(T&)
{
}

template 
void f()
{
vector v;
should_be_lvalue(true ? rvalue_probe(v) : v); // Error
}
//---


[Bug tree-optimization/50819] missed SLP vectorization

2011-10-23 Thread irar at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50819

--- Comment #4 from irar at gcc dot gnu.org 2011-10-23 12:13:57 UTC ---
Author: irar
Date: Sun Oct 23 12:13:49 2011
New Revision: 180334

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180334
Log:

PR tree-optimization/50819
* tree-vectorizer.h (vect_analyze_data_ref_dependences): Remove
the last argument.
* tree-vect-loop.c (vect_analyze_loop_2): Update call to
vect_analyze_data_ref_dependences.
* tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
Remove the last argument.  Check load-after-store dependence
for unknown dependencies in basic blocks.
(vect_analyze_data_ref_dependences): Update call to
vect_analyze_data_ref_dependences.
* tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix
typo.
* tree-vect-slp.c (vect_bb_vectorizable_with_dependencies):
Remove.
(vect_slp_analyze_bb_1): Update call to
vect_analyze_data_ref_dependences.  Don't call
vect_bb_vectorizable_with_dependencies.


Added:
trunk/gcc/testsuite/g++.dg/vect/slp-pr50819.cc
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/vect/vect.exp
trunk/gcc/tree-vect-data-refs.c
trunk/gcc/tree-vect-loop.c
trunk/gcc/tree-vect-patterns.c
trunk/gcc/tree-vect-slp.c
trunk/gcc/tree-vectorizer.h


[Bug c++/50835] [4.7 Regression] Lvalue-ness of conditional operator results is incorrect in a function template

2011-10-23 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50835

--- Comment #3 from Daniel Krügler  
2011-10-23 12:23:41 UTC ---
Removing as much templates as possible:

//---
struct A {};

struct B
{
explicit B(A &t) : value(t) {}
operator A&() const { return value; }
A& value;
};

void should_be_lvalue(A&)
{
}

template 
void f()
{
A v;
should_be_lvalue(true ? B(v) : v);
}
//---

This code is still rejected in either C++03 or C++11 mode:

"error: invalid initialization of non-const reference of type 'A&' from an
rvalue of type 'A'"
"error: in passing argument 1 of 'void should_be_lvalue(A&)'"


[Bug bootstrap/50836] [4.7 regression] bootstrap fails due to error: no previous prototype for 'find_all_hard_reg_sets'

2011-10-23 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50836

Mikael Pettersson  changed:

   What|Removed |Added

 CC||bernds at gcc dot gnu.org

--- Comment #1 from Mikael Pettersson  2011-10-23 
12:34:09 UTC ---
The same error also occurs on sparc64-linux and arm-linux-gnueabi.  It's caused
by r180302:
http://gcc.gnu.org/ml/gcc-cvs/2011-10/msg00898.html

find_all_hard_reg_sets does have a prototype in rtl.h, but it's conditional on
#ifdef HARD_CONST.  Deleting the #ifdef causes build errors, but changing the
include order in rtlanal.c so that hard-reg-set.h is included before rtl.h
solves the bootstrap problem.


[Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256

2011-10-23 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

--- Comment #8 from Uros Bizjak  2011-10-23 13:05:43 
UTC ---
Looking a bit deeper into the problem - maskload pattern is simply wrong. There
is no dependency on the previous value in the register, vmaskmov insn puts zero
when value is not moved into the destination register.

So,

(define_insn "*avx_maskload"
  [(set (match_operand:VF 0 "register_operand" "=x")
(unspec:VF
  [(match_operand: 1 "register_operand" "x")
   (match_operand:VF 2 "memory_operand" "m")]
  UNSPEC_MASKMOV))]
  "TARGET_AVX"
  "vmaskmov\t{%2, %1, %0|%0, %1, %2}"
  [(set_attr "type" "sselog1")
   (set_attr "prefix_extra" "1")
   (set_attr "prefix" "vex")
   (set_attr "mode" "")])


[Bug libgcj/50053] [4.7 regression] SIGSEGV in natClass.cc:651

2011-10-23 Thread jojelino at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50053

--- Comment #5 from gee  2011-10-23 13:42:43 UTC ---
maybe this is related to x86_this_parameter in gcc/config/i386/i386.c
it might tell why caller push parameter to stack, whereas function prologue
treats first parameter is in %ecx when MS_ABI is default.


[Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256

2011-10-23 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

Uros Bizjak  changed:

   What|Removed |Added

   Keywords||wrong-code
  Known to work|4.6.2   |
   Target Milestone|4.7.0   |4.4.7

--- Comment #9 from Uros Bizjak  2011-10-23 13:43:41 
UTC ---
Patch at [1].

[1] http://gcc.gnu.org/ml/gcc-patches/2011-10/msg02094.html


[Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256

2011-10-23 Thread uros at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

--- Comment #10 from uros at gcc dot gnu.org 2011-10-23 14:18:13 UTC ---
Author: uros
Date: Sun Oct 23 14:18:08 2011
New Revision: 180335

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180335
Log:
PR target/50788
* config/i386/sse.md (avx2_maskload):
Remove (match_dup 0).
(*avx2_maskload): New insn pattern.
(*avx_maskload): Ditto.
(*avx2_maskstore): Ditto.
(*avx_maskstore): Ditto.
(*avx2_maskmov): Remove insn pattern.
(*avx_maskmov): Ditto.

testsuite/ChangeLog:

2011-10-23  Uros Bizjak  

PR target/50788
* testsuite/gcc.target/i386/pr50788.c: New test.


Added:
trunk/gcc/testsuite/gcc.target/i386/pr50788.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/sse.md
trunk/gcc/testsuite/ChangeLog


[Bug bootstrap/50778] [4.7 Regression] Bootstrap failure on powerpc-apple-darwin9

2011-10-23 Thread dodji at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50778

Dodji Seketeli  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #19 from Dodji Seketeli  2011-10-23 
14:23:57 UTC ---
Committed to trunk (4.7).


[Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256

2011-10-23 Thread uros at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

--- Comment #11 from uros at gcc dot gnu.org 2011-10-23 15:15:02 UTC ---
Author: uros
Date: Sun Oct 23 15:14:58 2011
New Revision: 180337

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180337
Log:
PR target/50788
* config/i386/sse.md (avx_maskload):
Remove (match_dup 0).

testuite/ChangeLog:

PR target/50788
* gcc.target/i386/pr50788.c: New test.


Added:
branches/gcc-4_6-branch/gcc/testsuite/gcc.target/i386/pr50788.c
Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/config/i386/sse.md
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


[Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256

2011-10-23 Thread uros at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

--- Comment #12 from uros at gcc dot gnu.org 2011-10-23 15:16:30 UTC ---
Author: uros
Date: Sun Oct 23 15:16:27 2011
New Revision: 180338

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180338
Log:
PR target/50788
* config/i386/sse.md (avx_maskload):
Remove (match_dup 0).

testsuite/ChangeLog:

PR target/50788
* gcc.target/i386/pr50788.c: New test.


Added:
branches/gcc-4_5-branch/gcc/testsuite/gcc.target/i386/pr50788.c
Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/config/i386/sse.md
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


[Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256

2011-10-23 Thread uros at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

--- Comment #13 from uros at gcc dot gnu.org 2011-10-23 15:19:11 UTC ---
Author: uros
Date: Sun Oct 23 15:19:06 2011
New Revision: 180339

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180339
Log:
PR target/50788
* config/i386/sse.md (avx_maskload):
Remove (match_dup 0).

testsuite/ChangeLog:

PR target/50788
* gcc.target/i386/pr50788.c: New test.


Added:
branches/gcc-4_4-branch/gcc/testsuite/gcc.target/i386/pr50788.c
Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/config/i386/sse.md
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


[Bug target/50788] [4.7 Regression] ICE: in merge_overlapping_regs, at regrename.c:318 with -mavx -fpeel-loops -fstack-protector-all and __builtin_ia32_maskloadpd256

2011-10-23 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50788

Uros Bizjak  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2011-10/msg02094.htm
   ||l
 Resolution||FIXED
  Known to fail||4.6.1

--- Comment #14 from Uros Bizjak  2011-10-23 15:20:36 
UTC ---
Fixed.


[Bug target/38549] [avr] eicall not properly set for > 128K program space

2011-10-23 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38549

Georg-Johann Lay  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||gjl at gcc dot gnu.org
 Resolution||INVALID

--- Comment #6 from Georg-Johann Lay  2011-10-23 
15:24:15 UTC ---
Closed as INVALID.

In the remainder you find an ouline of how to cope with indirect jumps on
devices with more than >128 KiB of code.

Actually, the flaw is that the following explanation is not yet part of the
documentation, see PR50820.

* The compiler never sets EIND.

* The startup code from libgcc never sets EIND.
  Notice that startup code is a blend of code from libgcc and avr-libc.
  For the impact of avr-libc on EIND, see avr-libc documentation.

* The compiler uses EIND in EICALL/EIJMP instructions or might read
  EIND directly.

* The compiler assumes that EIND is not changed during startup code or
  run of the application. In particular, EIND is not saved/restored in
  function or interrupt service routine prologue/epilogue.

* It is legitimate for user-specific startup code to setup EIND
  early, for example by means of initialization code located in
  section .init3 prior to general startup code that initializes
  RAM and calls constructors.

* For indirect calls to functions and computed goto, the linker will
  generate stubs. Stubs are jump pads sometimes also called trampolines.
  Thus, the indirect call/jump will jump to such a stub.
  The stub contains a direct jump to the desired address.

* Jump pads will be generated automatically by the linker if
  - the address of label is taken like so
   LDI r24, lo8(gs(func))
   LDI r25, hi8(gs(func))
  - and if the final location of that label is in a code segment
   *outside* the segment where the stubs are located.

  The compiler will emit gs() relocations (short for generate
  stubs) if the address of a label is taken.

* Addresses of labals are taken in the following situations:
  - Taking address of of a function or code label
  - Computed goto
  - If prologue-save function is used, see -mcall-prologues
command line option
  - Switch/case dispatch tables. If you do not want such dispatch
tables you can specify the -fno-jump-tables command line option.
  - C and C++ constructors called during startup
  - C and C++ destructors called during shutdown
  - If the tools hit a gs() directive explained above

* The default linker script is arranged for code with EIND = 0.
  If code is supposed to work for a setup with EIND != 0, a custom
  linker script has to be used in order to place the sections whose
  name start with .trampolines into the segment where EIND points to.

* Jumping to a non-symbolic addresse like so:

int main (void)
{
// Call function at word address 0x2
return ((int(*)(void)) 0x2)();
}

  is /not/ supported.  Instead, a stub has to be set up like so:

int main (void)
{
extern int func_4 (void);

// Call function at byte address 0x4
return func_4();
}

   and the application be linked with -Wl,-defsym=func_4=0x4


[Bug c++/50837] New: [c++0x] static_assert and constexpr in template class

2011-10-23 Thread trashyankes at wp dot pl
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50837

 Bug #: 50837
   Summary: [c++0x] static_assert and constexpr in template class
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: trashyan...@wp.pl
 Build: MinGW 4.6.0 20110210; MinGW 4.7.0 20110815


error: `'static constexpr bool z::test_constexpr() [with T = int]' cannot
appear in a constant-expression`
adding `z::` before `test_constexpr` fix it
--
template
struct z
{
static constexpr bool test_constexpr()
{
return true;
}
static bool test()
{
static_assert(test_constexpr(), "test1");//error here
return true;
}
};
int main()
{
z::test();
}
--


[Bug rtl-optimization/47918] [4.6/4.7 Regression] noreturn discovery broke non local gotos on m68k and i386

2011-10-23 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47918

--- Comment #9 from Mikael Pettersson  2011-10-23 
15:46:06 UTC ---
Julian Brown's proposed patch fixes non-local-goto-4.c on both m68k and i386:
http://gcc.gnu.org/ml/gcc-patches/2011-10/msg01657.html


[Bug tree-optimization/44683] [4.4/4.5/4.6 Regression] Optimization bug with copysign builtin

2011-10-23 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44683

--- Comment #12 from Eric Botcazou  2011-10-23 
15:57:13 UTC ---
Author: ebotcazou
Date: Sun Oct 23 15:57:09 2011
New Revision: 180340

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180340
Log:
* fold-const.c (invert_tree_comparison): Always invert EQ_EXPR/NE_EXPR.

PR tree-optimization/44683
* tree-ssa-dom.c (record_edge_info): Record simple equivalences only if
we can be sure that there are no signed zeros involved.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/fold-const.c
trunk/gcc/tree-ssa-dom.c


[Bug tree-optimization/50763] [4.7 Regression] ICE: verify_gimple failed: missing PHI def with -ftree-tail-merge

2011-10-23 Thread vries at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50763

--- Comment #7 from vries at gcc dot gnu.org 2011-10-23 16:06:38 UTC ---
Author: vries
Date: Sun Oct 23 16:06:32 2011
New Revision: 180341

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180341
Log:
2011-10-23  Tom de Vries  

PR tree-optimization/50763
* tree-ssa-tail-merge.c (same_succ_flush_bb): New function, factored out
of ...
(same_succ_flush_bbs): Use same_succ_flush_bb.
(purge_bbs): Remove argument.  Remove calls to same_succ_flush_bbs,
release_last_vdef and delete_basic_block.
(unlink_virtual_phi): New function.
(update_vuses): Add and use vuse1_phi_args argument.  Set var to
SSA_NAME_VAR of vuse1 or vuse2, and use var.  Handle case that def_stmt2
is NULL.  Use phi result as phi arg in case vuse1 or vuse2 is NULL_TREE.
Replace uses of vuse1 if vuse2 is NULL_TREE.  Fix code to limit
replacement of uses.  Propagate phi argument for phis with a single
argument.
(replace_block_by): Update vops if phi_vuse1 or phi_vuse2 is NULL_TREE.
Set vuse1_phi_args if vuse1 is a phi defined in bb1.  Add vuse1_phi_args
as argument to call to update_vuses.  Call release_last_vdef,
same_succ_flush_bb, delete_basic_block.  Update CDI_DOMINATORS info.
(tail_merge_optimize): Remove argument in call to purge_bbs.  Remove
call to free_dominance_info.  Only call calculate_dominance_info once.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-tail-merge.c


[Bug tree-optimization/50763] [4.7 Regression] ICE: verify_gimple failed: missing PHI def with -ftree-tail-merge

2011-10-23 Thread vries at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50763

--- Comment #8 from vries at gcc dot gnu.org 2011-10-23 16:06:46 UTC ---
Author: vries
Date: Sun Oct 23 16:06:40 2011
New Revision: 180342

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180342
Log:
2011-10-23  Tom de Vries  

PR tree-optimization/50763
* gcc.dg/pr50763.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/pr50763.c
Modified:
trunk/gcc/testsuite/ChangeLog


[Bug tree-optimization/50763] [4.7 Regression] ICE: verify_gimple failed: missing PHI def with -ftree-tail-merge

2011-10-23 Thread vries at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50763

vries at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #9 from vries at gcc dot gnu.org 2011-10-23 16:08:20 UTC ---
checked in patch and test-case, marking PR fixed.


[Bug c/50838] New: ice in refs_may_alias_p_1 with -O3

2011-10-23 Thread dcb314 at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50838

 Bug #: 50838
   Summary: ice in refs_may_alias_p_1 with -O3
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: dcb...@hotmail.com


Created attachment 25580
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25580
gzipped C source code

I just tried to compile the package clisp-2.49-4
on latest trunk snapshot 20111022 on an AMD x86_64 box.

The compiler said

../src/spvw.d: In function 'main':
../src/spvw.d:3674:12: internal compiler error: in refs_may_alias_p_1, at
tree-ssa-alias.c:1083
Please submit a full bug report,
with preprocessed source if appropriate.
See  for instructions.

Preprocessed source code attached. Flag -O3 required.


[Bug c++/50839] New: Array parameters always take lower precedence than pointer parameters

2011-10-23 Thread classixretrox at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50839

 Bug #: 50839
   Summary: Array parameters always take lower precedence than
pointer parameters
Classification: Unclassified
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: classixret...@gmail.com


Created attachment 25581
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25581
sample1 doesn't compile, whereas sample2 and sample3 do compile.

The title says it all.  sample1.cc does not compile, however, sample2.cc and
sample3.cc do.  Both were compiled with the -Wall and -std=gnu++0x flags.  The
expected output of sample2.cc should be:
array[4] plus variadic
pointer plus variadic
variadic
array[4]
pointer
generic

However, ends up being:
pointer plus variadic
pointer plus variadic
variadic
pointer
pointer
generic

Similarly, sample3.cc ends up being:
variadic
variadic
generic
generic

Instead of:
array[4] plus variadic
variadic
array[4]
generic

The GCC does not see any difference between void f(int[N]) and void f(int*). 
If you try to define two functions, it will say that void f(int*) is already
defined, even if you are defining void f(int[N]) instead.  You can get around
this with some messy template work (as seem in the second sample), but it
doesn't work as expected.

Using templates, a specialization of int* will always take precedence over a
specialization of int[N].  If I define a variadic function with an int[4] head
and one without a head at all, it will assume the non-specialized version,
which is incorrect (see sample3.cc).  If you define a function with an int*
head, it will work, but in that case, you cannot define the function as
constexpr.


[Bug other/50840] New: gcc_update can't find SVN revision in Mercurial tree

2011-10-23 Thread simon at pushface dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50840

 Bug #: 50840
   Summary: gcc_update can't find SVN revision in Mercurial tree
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: si...@pushface.org


gcc_update tries to update gcc/REVISION with the SVN revision corresponding to
the Hg revision that's been checked out. With a Mercurial clone of trunk, this
fails, because gcc_update looks for the SVN revision in the extra: line "as
stored by hg convert" (line 331ff)

revision=`$GCC_HG log --debug -r$parents | \
sed -ne "/^extra:.*convert_revision=svn:/ {
s%^.*@%%
p
}"`

It looks as though "hg convert" has stopped storing the SVN revision:

$ hg log --debug -r104489
changeset:   104489:1fd3ec901d4423227991f3902a0e1a6103a332b6
branch:  trunk
tag: tip
parent:  104488:1af2ecc2b00780c947914f06d884701169ecc092
parent:  -1:
manifest:104489:df2c1e5611bf8b9bfff454ca9186bf42379ea5b1
user:jvdelisle
date:Wed Nov 10 04:58:16 2010 +
files:   gcc/fortran/ChangeLog gcc/fortran/expr.c gcc/fortran/intrinsic.c
extra:   branch=trunk
description:
[...]

with the result

$ cat gcc/REVISION 
[trunk revision ]


[Bug c++/50810] c++0x-compat does not warn about narrowing conversions

2011-10-23 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50810

Paolo Carlini  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.7.0

--- Comment #12 from Paolo Carlini  2011-10-23 
18:35:59 UTC ---
Done for 4.7.0.


[Bug c++/50810] c++0x-compat does not warn about narrowing conversions

2011-10-23 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50810

--- Comment #11 from paolo at gcc dot gnu.org  
2011-10-23 18:34:51 UTC ---
Author: paolo
Date: Sun Oct 23 18:34:45 2011
New Revision: 180343

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180343
Log:
/c-family
2011-10-23  Paolo Carlini  

PR c++/50810
* c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
Wnarrowing for C++0x and C++98.
* c.opt ([Wnarrowing]): Update.

/cp
2011-10-23  Paolo Carlini  

PR c++/50810
* typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
(digest_init_r): Call check_narrowing irrespective of the C++ dialect.
* decl.c (check_initializer): Likewise.
* semantics.c (finish_compound_literal): Likewise.

/testsuite
2011-10-23  Paolo Carlini  

PR c++/50810
* g++.dg/cpp0x/warn_cxx0x2.C: New.
* g++.dg/cpp0x/warn_cxx0x3.C: Likewise.

2011-10-23  Paolo Carlini  

PR c++/50810
* doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/warn_cxx0x2.C
trunk/gcc/testsuite/g++.dg/cpp0x/warn_cxx0x3.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-opts.c
trunk/gcc/c-family/c.opt
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/typeck2.c
trunk/gcc/doc/invoke.texi
trunk/gcc/testsuite/ChangeLog


[Bug other/50840] gcc_update can't find SVN revision in Mercurial tree

2011-10-23 Thread simon at pushface dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50840

--- Comment #1 from simon at pushface dot org 2011-10-23 18:38:48 UTC ---
Oh. I see the Hg tree hasn't been updated for nearly a year. Git it is. Please
close this ...

Do you think that the Hg server should be stopped?


[Bug c++/50828] class template parameter not printed for member function template in candidate list

2011-10-23 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50828

Paolo Carlini  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011-10-23
 AssignedTo|unassigned at gcc dot   |paolo.carlini at oracle dot
   |gnu.org |com
 Ever Confirmed|0   |1

--- Comment #5 from Paolo Carlini  2011-10-23 
19:13:51 UTC ---
Looking into it.


[Bug middle-end/50802] [4.7 Regression] FAIL: gcc.c-torture/execute/arith-rand-ll.c execution at -O2 and -Os

2011-10-23 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50802

--- Comment #1 from John David Anglin  2011-10-23 
19:54:21 UTC ---
The abort occurs in this block:

  { signed char xx = x, yy = y, r1, r2;
r1 = xx / yy;
r2 = xx % yy;
if (ABS (r2) >= (unsigned char) ABS (yy) || (signed char) (r1 * yy +
r2) != xx)
  abort ();
  }

for i = 2.

The test doesn't fail if I simply reduce the testcase to the above
and add a check for yy = 0.  My impression is the above fails because
the it is using r1 and r2 values from this block:

  { signed short xx = x, yy = y, r1, r2;r1 = xx / yy;
r2 = xx % yy;
if (ABS (r2) >= (unsigned short) ABS (yy) || (signed short) (r1 * yy +
r
2) != xx)
  abort ();
  }

These are the values that cause the abort:

(gdb) p/x x
$79 = 0x1f801ff80
(gdb) p/x y
$80 = 0x7f80078007ff
(gdb) p/x xx
$81 = 0xff
(gdb) p/x yy
$82 = 0xff
(gdb) p/x r2
$83 = 0xff
(gdb) p/x r1
$84 = 0x0

The r2 value is wrong.


[Bug c++/50841] New: [4.7 regression] bootstrap failure: narrowing conversion of '-0x00000000000000001' from 'int' in tree-object-size.c

2011-10-23 Thread gerald at pfeifer dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50841

 Bug #: 50841
   Summary: [4.7 regression] bootstrap failure: narrowing
conversion of '-0x1' from 'int' in
tree-object-size.c
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ger...@pfeifer.com


/scratch/tmp/gerald/gcc-HEAD/gcc/tree-object-size.c:44:59: error: narrowing
conv
ersion of '-0x1' from 'int' to 'long unsigned int' inside { }
[-
Werror=narrowing]
/scratch/tmp/gerald/gcc-HEAD/gcc/tree-object-size.c:44:59: error: narrowing
conv
ersion of '-0x1' from 'int' to 'long unsigned int' inside { }
[-
Werror=narrowing]
cc1plus: all warnings being treated as errors
gmake[3]: Leaving directory `/local0/scratch/gerald/OBJ-1023-1848/gcc'
gmake[2]: *** [all-stage2-gcc] Error 2
gmake[2]: Leaving directory `/local0/scratch/gerald/OBJ-1023-1848'
gmake[1]: *** [stage2-bubble] Error 2

I have a hunch this may be triggered, though not necessarily originally
caused, by

2011-10-23  Paolo Carlini  

PR c++/50810
* c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
Wnarrowing for C++0x and C++98.
* c.opt ([Wnarrowing]): Update.


[Bug c++/50841] [4.7 regression] bootstrap failure: narrowing conversion of '-0x00000000000000001' from 'int' in tree-object-size.c

2011-10-23 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50841

Paolo Carlini  changed:

   What|Removed |Added

 CC|paolo.carlini at oracle dot |
   |com |
   Target Milestone|--- |4.7.0


[Bug c++/50841] [4.7 regression] bootstrap failure: narrowing conversion of '-0x00000000000000001' from 'int' in tree-object-size.c

2011-10-23 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50841

Paolo Carlini  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||paolo.carlini at oracle dot
   ||com
 Resolution||FIXED

--- Comment #2 from Paolo Carlini  2011-10-23 
21:00:16 UTC ---
Patch reverted.


[Bug c++/50810] c++0x-compat does not warn about narrowing conversions

2011-10-23 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50810

--- Comment #13 from paolo at gcc dot gnu.org  
2011-10-23 20:59:48 UTC ---
Author: paolo
Date: Sun Oct 23 20:59:43 2011
New Revision: 180348

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180348
Log:
/c-family
2011-10-23  Paolo Carlini  

PR c++/50841
Revert:
2011-10-23  Paolo Carlini  

PR c++/50810
* c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
Wnarrowing for C++0x and C++98.
* c.opt ([Wnarrowing]): Update.

/cp
2011-10-23  Paolo Carlini  

PR c++/50841
Revert:
2011-10-23  Paolo Carlini  

PR c++/50810
* typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
(digest_init_r): Call check_narrowing irrespective of the C++ dialect.
* decl.c (check_initializer): Likewise.
* semantics.c (finish_compound_literal): Likewise.

/testsuite
2011-10-23  Paolo Carlini  

PR c++/50841
Revert:
2011-10-23  Paolo Carlini  

PR c++/50810
* g++.dg/cpp0x/warn_cxx0x2.C: New.
* g++.dg/cpp0x/warn_cxx0x3.C: Likewise.

2011-10-23  Paolo Carlini  

PR c++/50841
Revert:
2011-10-23  Paolo Carlini  

PR c++/50810
* doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.

Removed:
trunk/gcc/testsuite/g++.dg/cpp0x/warn_cxx0x2.C
trunk/gcc/testsuite/g++.dg/cpp0x/warn_cxx0x3.C
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-opts.c
trunk/gcc/c-family/c.opt
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/typeck2.c
trunk/gcc/doc/invoke.texi
trunk/gcc/testsuite/ChangeLog


[Bug c++/50841] [4.7 regression] bootstrap failure: narrowing conversion of '-0x00000000000000001' from 'int' in tree-object-size.c

2011-10-23 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50841

--- Comment #1 from paolo at gcc dot gnu.org  
2011-10-23 20:59:47 UTC ---
Author: paolo
Date: Sun Oct 23 20:59:43 2011
New Revision: 180348

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180348
Log:
/c-family
2011-10-23  Paolo Carlini  

PR c++/50841
Revert:
2011-10-23  Paolo Carlini  

PR c++/50810
* c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
Wnarrowing for C++0x and C++98.
* c.opt ([Wnarrowing]): Update.

/cp
2011-10-23  Paolo Carlini  

PR c++/50841
Revert:
2011-10-23  Paolo Carlini  

PR c++/50810
* typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
(digest_init_r): Call check_narrowing irrespective of the C++ dialect.
* decl.c (check_initializer): Likewise.
* semantics.c (finish_compound_literal): Likewise.

/testsuite
2011-10-23  Paolo Carlini  

PR c++/50841
Revert:
2011-10-23  Paolo Carlini  

PR c++/50810
* g++.dg/cpp0x/warn_cxx0x2.C: New.
* g++.dg/cpp0x/warn_cxx0x3.C: Likewise.

2011-10-23  Paolo Carlini  

PR c++/50841
Revert:
2011-10-23  Paolo Carlini  

PR c++/50810
* doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.

Removed:
trunk/gcc/testsuite/g++.dg/cpp0x/warn_cxx0x2.C
trunk/gcc/testsuite/g++.dg/cpp0x/warn_cxx0x3.C
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-opts.c
trunk/gcc/c-family/c.opt
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/cp/semantics.c
trunk/gcc/cp/typeck2.c
trunk/gcc/doc/invoke.texi
trunk/gcc/testsuite/ChangeLog


[Bug c++/50810] c++0x-compat does not warn about narrowing conversions

2011-10-23 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50810

Paolo Carlini  changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |
 AssignedTo|paolo.carlini at oracle dot |unassigned at gcc dot
   |com |gnu.org

--- Comment #14 from Paolo Carlini  2011-10-23 
21:02:36 UTC ---
Patch needs preliminary clean-ups in gcc/config, etc.


[Bug c++/50841] [4.7 regression] bootstrap failure: narrowing conversion of '-0x00000000000000001' from 'int' in tree-object-size.c

2011-10-23 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50841

--- Comment #3 from paolo at gcc dot gnu.org  
2011-10-23 21:15:12 UTC ---
Author: paolo
Date: Sun Oct 23 21:15:08 2011
New Revision: 180349

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180349
Log:
/c-family
2011-10-23  Paolo Carlini  

PR c++/50841
Revert:
2011-10-23  Paolo Carlini  

PR c++/50810
* c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
Wnarrowing for C++0x and C++98.
* c.opt ([Wnarrowing]): Update.

/cp
2011-10-23  Paolo Carlini  

PR c++/50841
Revert:
2011-10-23  Paolo Carlini  

PR c++/50810
* typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
(digest_init_r): Call check_narrowing irrespective of the C++ dialect.
* decl.c (check_initializer): Likewise.
* semantics.c (finish_compound_literal): Likewise.

/testsuite
2011-10-23  Paolo Carlini  

PR c++/50841
Revert:
2011-10-23  Paolo Carlini  

PR c++/50810
* g++.dg/cpp0x/warn_cxx0x2.C: New.
* g++.dg/cpp0x/warn_cxx0x3.C: Likewise.

2011-10-23  Paolo Carlini  

PR c++/50841
Revert:
2011-10-23  Paolo Carlini  

PR c++/50810
* doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.

Modified:
trunk/gcc/ChangeLog


[Bug c++/50810] c++0x-compat does not warn about narrowing conversions

2011-10-23 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50810

--- Comment #15 from paolo at gcc dot gnu.org  
2011-10-23 21:15:11 UTC ---
Author: paolo
Date: Sun Oct 23 21:15:08 2011
New Revision: 180349

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180349
Log:
/c-family
2011-10-23  Paolo Carlini  

PR c++/50841
Revert:
2011-10-23  Paolo Carlini  

PR c++/50810
* c-opts.c (c_common_handle_option): Enable -Wnarrowing as part
of -Wall; include -Wnarrowing in -Wc++0x-compat; adjust default
Wnarrowing for C++0x and C++98.
* c.opt ([Wnarrowing]): Update.

/cp
2011-10-23  Paolo Carlini  

PR c++/50841
Revert:
2011-10-23  Paolo Carlini  

PR c++/50810
* typeck2.c (check_narrowing): Adjust OPT_Wnarrowing diagnostics.
(digest_init_r): Call check_narrowing irrespective of the C++ dialect.
* decl.c (check_initializer): Likewise.
* semantics.c (finish_compound_literal): Likewise.

/testsuite
2011-10-23  Paolo Carlini  

PR c++/50841
Revert:
2011-10-23  Paolo Carlini  

PR c++/50810
* g++.dg/cpp0x/warn_cxx0x2.C: New.
* g++.dg/cpp0x/warn_cxx0x3.C: Likewise.

2011-10-23  Paolo Carlini  

PR c++/50841
Revert:
2011-10-23  Paolo Carlini  

PR c++/50810
* doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.

Modified:
trunk/gcc/ChangeLog


[Bug c++/50839] Array parameters always take lower precedence than pointer parameters

2011-10-23 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50839

Daniel Krügler  changed:

   What|Removed |Added

 CC||daniel.kruegler at
   ||googlemail dot com

--- Comment #1 from Daniel Krügler  
2011-10-23 21:30:05 UTC ---
According to [dcl.fct] p5,

"any parameter of type “array of T” or “function returning T” is adjusted to be
“pointer to T” or “pointer to function returning T,” respectively. [..] The
resulting list of transformed parameter types and the presence or absence of
the ellipsis or a function parameter pack is the function’s
parameter-type-list."

This has the effect that

void f4(int* x);

and

void f4(int x[4]);

are essentially equivalent declarations of the same function. The same
rationale applies to

template
void f2(int* x, T... y);

versus

template
void f2(int x[4], T... y);

so in sample1 you are violating the ODR two times in a form that requires a
diagnostic.

This rationale cannot be applied directly to templates, because due to SFINAE
you could render one instantiation invalid (e.g. when attempting to instantiate
an array of zero or negative size) and it is allowed for two different function
template specializations to have the same type ([temp.over.link] p1). But
according to [temp.deduct.call] p2:

"If P is not a reference type:
— If A is an array type, the pointer type produced by the array-to-pointer
standard conversion (4.2) is used in place of A for type deduction;"

This has basically the effect that an example like

template
void g(T x[N]) {}

int main() {
  int a[4];
  g(a);
}

can never be well-formed, because N cannot be (implicitly) deduced from an
effective argument of type int*. This explains the effect that the template
examples alway select the pointer overload, not the array overload.

So, from what I see so far this issue is invalid.


[Bug c++/50810] c++0x-compat does not warn about narrowing conversions

2011-10-23 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50810

--- Comment #16 from Manuel López-Ibáñez  2011-10-23 
21:43:27 UTC ---
(In reply to comment #14)
> Patch needs preliminary clean-ups in gcc/config, etc.

It seems to me that enabling -Wc++0x-compat with -Wall is not a good idea
anyway. I guess many people would not care about upgrading to C++0x for a
while, and they will be pissed off when their builds break. Maybe you should do
it for the release just before -std=c++0x is the default, if such thing is even
planned, but not for 4.7.

(I personally do not understand why this is an obligatory warning in C++0x, it
seems something that many people will consider a nuisance, but that is beyond
the point here).


[Bug c++/50810] c++0x-compat does not warn about narrowing conversions

2011-10-23 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50810

--- Comment #17 from Manuel López-Ibáñez  2011-10-23 
21:56:21 UTC ---
Now that the patch needs to be recommitted, I would suggest another minor
improvement. Please, remove the %qE so we do not print nonsense!


[Bug target/50751] SH Target: Displacement addressing does not work for QImode and HImode

2011-10-23 Thread oleg.e...@t-online.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50751

--- Comment #4 from Oleg Endo  2011-10-23 21:56:56 UTC 
---
Created attachment 25582
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25582
Experimental patch for mov.b with displacement addressing

> (In reply to comment #2)
> 
> Welcome to the spill-failure-for-class-'R0_REGS' club :-)

The attached patch is an experimental example only.  Please ignore wrong
formatting, comments, and the fact that it cripples some of the SH2A support :}

It adds support for 'mov.b @(disp, Rm), R0' and 'mov.b R0, @(disp, Rn)'
instructions.  I haven't tested it fully, only building the CSiBE
set for -m4-single -ml. 

Although it results in suboptimal code like ...

...
mov.l@(4,r15),r2
movr1,r0
mov.br0,@(5,r2)
rts
movr1,r0! redundant

.. or like ...

mov.b@(1,r4),r0
movr0,r4
mov.b@(2,r5),r0
addr0,r4! better: add r4, r0
movr4,r0! not needed if add operands are swapped
mov.br0,@(5,r6)
rts
movr4,r0! redundant

.. it already shows some code size improvements:

avg: -563.22 / -0.942376 %
max: compiler22804 -> 22928 +124 / +0.543764 %
min: OpenTCP-1.0.4   27069 -> 25989-1080 / -3.989804 %

top 5 files
mpeg2dec-0.3.1  libmpeg2/motion_comp 
  6044 -> 4796 -1248 / -20.648577 %

libpng-1.2.5  pngrtran
  19668 -> 18904 -764 / -3.884482 %

linux-2.4.23-pre3-testplatform  arch/testplatform/kernel/traps
  6192 -> 5532  -660 / -10.658915 %

lwip-0.5.3.preproc  src/core/tcp_input
  5424 -> 5040  -384 / -7.079646 %

libmspack  test/cabextract_md5
  21780 -> 21424 -356 / -1.634527 %


The R0 clobber in the movqi expander and the explicit usage of R0 in the 
splits effectively disable some optimizations, but this is the only 
thing I could get to work so far.
I've left the straight forward but non-working patterns as comments in the
patch as a reference.  Basically, without the R0 clobber in the movqi expander
it eventually ends up like that...

error: insn does not satisfy its constraints:
(insn 737 40 42 4 (set (reg:QI 10 r10)
(mem/c:QI (plus:SI (reg:SI 1 r1 [386])
(const_int 1 [0x1])) [0 *D.4946_20+0 S1 A8]))
{*movqi_m_reg_disp_load}
 (nil))

internal compiler error: in reload_cse_simplify_operands, at postreload.c:403

I'm puzzled why the register allocator ignores the constraint "z" when it
starts to run out of registers.  In the error case above it tries to produce
something like 'mov.b @(1,r1),r10' which of course is impossible.
Any hints are highly appreciated.


[Bug debug/50816] [4.6.1] Discriminators are emitted in DWARF 2 format

2011-10-23 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50816

Georg-Johann Lay  changed:

   What|Removed |Added

 CC||gjl at gcc dot gnu.org

--- Comment #5 from Georg-Johann Lay  2011-10-23 
22:47:44 UTC ---
Please probide a testcase according to http://gcc.gnu.org/bugs/#need

- Please, no external includes
- Please, supply the configue options


[Bug debug/50816] [4.6.1] Discriminators are emitted in DWARF 2 format

2011-10-23 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50816

Georg-Johann Lay  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2011-10-23
 Ever Confirmed|0   |1


[Bug tree-optimization/50802] [4.7 Regression] FAIL: gcc.c-torture/execute/arith-rand-ll.c execution at -O2 and -Os

2011-10-23 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50802

John David Anglin  changed:

   What|Removed |Added

  Component|middle-end  |tree-optimization

--- Comment #2 from John David Anglin  2011-10-24 
00:02:06 UTC ---
Introduced by the following change:

2011-10-17  Richard Guenther  

PR tree-optimization/50729
* tree-vrp.c (extract_range_from_unary_expr_1): Remove
redundant test.
(simplify_conversion_using_ranges): Properly test the
intermediate result.


[Bug c++/50839] Array parameters always take lower precedence than pointer parameters

2011-10-23 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50839

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #2 from Jonathan Wakely  2011-10-24 
00:03:15 UTC ---
(In reply to comment #0)
> The GCC does not see any difference between void f(int[N]) and void f(int*)

Because they're the same.  See Daniel's answer for more detail.


[Bug libstdc++/50834] Documentation about STL thread safety is ambiguous

2011-10-23 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50834

--- Comment #3 from Jonathan Wakely  2011-10-24 
00:20:00 UTC ---
Author: redi
Date: Mon Oct 24 00:19:56 2011
New Revision: 180359

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=180359
Log:
PR libstdc++/50834
* doc/xml/manual/using.xml: Update thread safety docs w.r.t. C++11.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/doc/xml/manual/using.xml


[Bug libstdc++/50834] Documentation about STL thread safety is ambiguous

2011-10-23 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50834

Jonathan Wakely  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.7.0

--- Comment #4 from Jonathan Wakely  2011-10-24 
00:21:36 UTC ---
fixed for 4.7, but it might take a while for the updated docs to show up on the
website


[Bug target/50842] New: gnatmake fails to link in stage3 with undefined symbol _iconv_close

2011-10-23 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50842

 Bug #: 50842
   Summary: gnatmake fails to link in stage3 with undefined symbol
_iconv_close
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: dang...@gcc.gnu.org
  Host: i686-apple-darwin9
Target: i686-apple-darwin9
 Build: i686-apple-darwin9


../../xgcc -B../../  -I- -I../rts -I. -I/Users/dave/gnu/gcc/gcc/gcc/ada
-DIN_GCC
  -g -O2 -W -Wall  -o ../../gnatmake b_gnatm.o a-except.o ali.o ali-util.o
aspec
ts.o s-casuti.o alloc.o atree.o binderr.o butil.o casing.o csets.o debug.o
elist
s.o einfo.o errout.o erroutc.o errutil.o err_vars.o fmap.o fname.o fname-uf.o
fn
ame-sf.o gnatmake.o gnatvsn.o hostparm.o interfac.o i-c.o i-cstrin.o krunch.o
li
b.o make.o makeusg.o makeutl.o mlib.o mlib-fil.o mlib-prj.o mlib-tgt.o
mlib-tgt-
specific.o mlib-utl.o namet.o nlists.o opt.o osint.o osint-m.o output.o prj.o
pr
j-attr.o prj-attr-pm.o prj-com.o prj-dect.o prj-env.o prj-conf.o prj-pp.o
prj-er
r.o prj-ext.o prj-nmsc.o prj-pars.o prj-part.o prj-proc.o prj-strt.o prj-tree.o 
prj-util.o restrict.o rident.o s-exctab.o s-secsta.o s-stalib.o s-stoele.o
scans
.o scng.o sdefault.o sfn_scan.o s-purexc.o s-htable.o scil_ll.o sem_aux.o
sinfo.
o sinput.o sinput-c.o sinput-p.o snames.o stand.o stringt.o styleg.o stylesw.o
s
ystem.o validsw.o switch.o switch-m.o table.o targparm.o tempdir.o tree_io.o
typ
es.o uintp.o uname.o urealp.o usage.o widechar.o  \
../../libcommon-target.a ../../libcommon.a
../../../libcpp/l
ibcpp.a targext.o link.o ../rts/libgnat.a  ../../../libiberty/libiberty.a  
Undefined symbols:
  "_iconv_close", referenced from:
  __cpp_destroy_iconv in libcpp.a(charset.o)
  __cpp_destroy_iconv in libcpp.a(charset.o)
  __cpp_destroy_iconv in libcpp.a(charset.o)
  __cpp_destroy_iconv in libcpp.a(charset.o)
  __cpp_destroy_iconv in libcpp.a(charset.o)
  __cpp_convert_input in libcpp.a(charset.o)
  "_iconv", referenced from:
  convert_using_iconv(void*, unsigned char const*, unsigned long,
_cpp_strbu
f*) in libcpp.a(charset.o)
  convert_using_iconv(void*, unsigned char const*, unsigned long,
_cpp_strbu
f*) in libcpp.a(charset.o)
  convert_using_iconv(void*, unsigned char const*, unsigned long,
_cpp_strbu
f*) in libcpp.a(charset.o)
  convert_using_iconv(void*, unsigned char const*, unsigned long,
_cpp_strbu
f*) in libcpp.a(charset.o)
  "_iconv_open", referenced from:
  init_iconv_desc(cpp_reader*, char const*, char const*) in
libcpp.a(charset
.o)
ld: symbol(s) not found

dave@MACPRO:~/gnu/gcc/objdir/gcc$ ./xgcc -B./ -v
Reading specs from ./specs
COLLECT_GCC=./xgcc
COLLECT_LTO_WRAPPER=./lto-wrapper
Target: i686-apple-darwin9
Configured with: ../gcc/configure --build=i686-apple-darwin9
--host=i686-apple-darwin9 --target=i686-apple-darwin9 --with-tune=generic
--prefix=/opt/gnu/gcc/gcc-4.7.0 --with-gmp=/opt/gnu/gcc/gcc-4.7.0
--enable-debug=no --disable-nls --disable-multilib
--enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-threads=posix
--enable-__cxa_atexit --enable-java-gc=boehm : (reconfigured) ../gcc/configure
--build=i686-apple-darwin9 --host=i686-apple-darwin9
--target=i686-apple-darwin9 --with-tune=generic --prefix=/opt/gnu/gcc/gcc-4.7.0
--with-gmp=/opt/gnu/gcc/gcc-4.7.0 --enable-debug=no --disable-nls
--disable-multilib --enable-languages=c,c++,objc,fortran,obj-c++,java,ada
--enable-threads=posix --enable-__cxa_atexit --enable-java-gc=boehm
Thread model: posix
gcc version 4.7.0 20111023 (experimental) [trunk revision 180354] (GCC)


[Bug debug/50816] [4.6.1] Discriminators are emitted in DWARF 2 format

2011-10-23 Thread anitha.boyapati at atmel dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50816

--- Comment #6 from Anitha Boyapati  
2011-10-24 04:18:10 UTC ---
(In reply to comment #5)
> Please probide a testcase according to http://gcc.gnu.org/bugs/#need
> 
> - Please, no external includes

Sorry! I thought I have provided pre-processed file.



> - Please, supply the configue options

Configured with: avr8-gnu-toolchain-dev/src/gcc/configure
LDFLAGS=-L/toolsavr8-gnu-toolchain-dev/avr8-gnu-toolchain-dev-win32_x86/lib
CPPFLAGS= --target=avr --host=i686-mingw32 --build=x86_64-pc-linux-gnu
--prefix=avr8-gnu-toolchain-dev/avr8-gnu-toolchain-dev-win32_x86
--libdir=avr8-gnu-toolchain-dev/avr8-gnu-toolchain-dev-win32_x86/lib
--enable-languages=c,c++ --with-dwarf2 --enable-doc --disable-shared
--disable-libada --disable-libssp --disable-nls
--with-mpfr=avr8-gnu-toolchain-dev/avr8-gnu-toolchain-dev-win32_x86
--with-gmp=avr8-gnu-toolchain-dev/avr8-gnu-toolchain-dev-win32_x86
--with-mpc=avr8-gnu-toolchain-dev/avr8-gnu-toolchain-dev-win32_x86
--enable-win32-registry=a
vrtoolchain --enable-fixed-point 
Thread model: single
gcc version 4.6.1


[Bug debug/50816] [4.6.1] Discriminators are emitted in DWARF 2 format

2011-10-23 Thread anitha.boyapati at atmel dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50816

--- Comment #7 from Anitha Boyapati  
2011-10-24 04:21:17 UTC ---
Created attachment 25583
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25583
Relevant testcase that is compilable


Compile it as:

$avr-gcc -mmcu=atxmega128a1 -g -gdwarf-2 test.c -S

The resulting file gives assembly interspersed with .loc directives (and
discriminators)


[Bug rtl-optimization/50843] New: ICE in simplify_subreg, simplify-rtx.c:5417 with -march=pentium3

2011-10-23 Thread dnovillo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50843

 Bug #: 50843
   Summary: ICE in simplify_subreg, simplify-rtx.c:5417 with
-march=pentium3
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: dnovi...@gcc.gnu.org


Several tests in gcc.c-torture are failing with -m32 -march=pentium3 on trunk
at rev 180234.

$ ./cc1  -fpreprocessed vector-shift.i -quiet -dumpbase vector-shift.c -m32
-march=pentium3 -auxbase vector-shift -O1 -w -version -o vector-shift.s
GNU C (GCC) version 4.7.0 20111020 (experimental) (x86_64-unknown-linux-gnu)
compiled by GNU C version 4.4.3, GMP version 4.3.2, MPFR version
2.4.2-p1, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C (GCC) version 4.7.0 20111020 (experimental) (x86_64-unknown-linux-gnu)
compiled by GNU C version 4.4.3, GMP version 4.3.2, MPFR version
2.4.2-p1, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: b4c9a0b913ea7f509422e8703450aae5
.../gcc/testsuite/gcc.c-torture/execute/vector-shift.c: In function 'main':
.../gcc/testsuite/gcc.c-torture/execute/vector-shift.c:48:1: internal compiler
error: in simplify_subreg, at simplify-rtx.c:5417
Please submit a full bug report,
with preprocessed source if appropriate.
See  for instructions.

I'm attaching the .i file for convenience.


[Bug rtl-optimization/50843] ICE in simplify_subreg, simplify-rtx.c:5417 with -march=pentium3

2011-10-23 Thread dnovillo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50843

--- Comment #1 from Diego Novillo  2011-10-24 
05:53:35 UTC ---
Created attachment 25584
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25584
Pre-processed source


[Bug libgcj/50844] New: SimpleDateFormat too slow

2011-10-23 Thread lsching17 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50844

 Bug #: 50844
   Summary: SimpleDateFormat too slow
Classification: Unclassified
   Product: gcc
   Version: 4.5.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgcj
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: lschin...@gmail.com


The constructor of class "java.text.SimpleDateFormat" is too slow.

With the test script attached.

In a core 2 duo machine+linux kernel 2.6.38+1G ram, only around 70 objects can
be created per second

Compare to Sun jre 6 update 6, 10+ objects can be created per second


[Bug libgcj/50844] SimpleDateFormat too slow

2011-10-23 Thread lsching17 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50844

--- Comment #1 from lsching17 at gmail dot com 2011-10-24 06:11:22 UTC ---
Created attachment 25585
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25585
test script


[Bug libgcj/50844] SimpleDateFormat too slow

2011-10-23 Thread lsching17 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50844

--- Comment #2 from lsching17 at gmail dot com 2011-10-24 06:12:59 UTC ---
The last sentense should be "Compare to Sun jre 6 update 26, 10+ objects
can be created per second"


[Bug libgcj/50845] New: java.util.concurrent.ThreadPoolExecutor do not work with core thread=0

2011-10-23 Thread lsching17 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50845

 Bug #: 50845
   Summary: java.util.concurrent.ThreadPoolExecutor do not work
with core thread=0
Classification: Unclassified
   Product: gcc
   Version: 4.5.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgcj
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: lschin...@gmail.com


Created attachment 25586
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25586
test case

Create a ThreadPoolExecutor with 0 core thread, maximum thread=5

submit a task to the threadpool, the task will not be runned.

The expected behaviour is that the ThreadPoolExecutor create a thread to
execute the task.