[Bug rtl-optimization/44194] struct returned by value generates useless stores

2011-06-22 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44194

--- Comment #36 from Eric Botcazou  2011-06-22 
07:57:28 UTC ---
> There is a comment in calls.c that says
>/* Handle calls that return values in multiple non-contiguous 
> locations.
>  The Irix 6 ABI has examples of this.  */
> 
> I don't know if avoiding the copy breaks that ABI in any way so I didn't try
> that approach. In general, if the TARGET is non-NULL, I don't see how the copy
> can be avoided (but then, the tree EXPR corresponding to the target hopefully
> has the addressable flag set). In this particular case though TARGET is NULL.
> Is it just a matter of setting  VALREG  and let expand_assignment deal with 
> it?

It isn't a matter of avoiding the copy, it is matter of avoiding to spill the
copy to memory if possible, i.e. to copy to pseudo registers instead.  There
may be prerequisites.  See comment #22 for a possible approach.

> Irrespective of how this case is handled, I think there may be other instances
> where a store generated during expansion may be redundant, but we don't know 
> it
> at the point of generation. In such cases, is this approach of associating a
> tree expr with the temp rtx generated by the expanded reasonable?

Probably, yes, albeit as a last resort solution.


[Bug regression/49500] [4.7 Regression]: gcc.dg/tls/alias-1.c

2011-06-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49500

Richard Guenther  changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0


[Bug regression/49498] [4.7 Regression]: gcc.dg/uninit-pred-8_b.c bogus warning line 20

2011-06-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49498

Richard Guenther  changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0


[Bug tree-optimization/49496] [4.7 Regression] -fcompare-debug failure (length) with -O -ftree-vectorize

2011-06-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49496

Richard Guenther  changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0


[Bug tree-optimization/49494] [4.7 Regression] ICE: in remap_predicate at ipa-inline-analysis.c:1876 with -findirect-inlining -finline-small-functions

2011-06-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49494

Richard Guenther  changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu.org
   Target Milestone|--- |4.7.0


[Bug tree-optimization/49493] ICE: in insert_vi_for_tree, at tree-ssa-structalias.c:2637 with -O -fipa-pta

2011-06-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49493

Richard Guenther  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.06.22 09:17:55
 AssignedTo|unassigned at gcc dot   |rguenth at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther  2011-06-22 
09:17:55 UTC ---
Mine.


[Bug bootstrap/49072] Error building the compiler

2011-06-22 Thread franck.z.bugzilla at orange dot fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49072

--- Comment #7 from Franck Z  2011-06-22 
09:21:41 UTC ---
In reply to comment #6)
> > Hope this piece of information is useful. :-)
> Not really, if you don't say which versions of GCC and GMP/MFPR/MPC you're
> using, and your exact configure command, then it's not reproducable or
> verifiable.

My Cygwin is recent (one week old).
I have the same source tree for gcc, gcc/gmp, gcc/mpc and gcc/mpfr as the one
advised here (4.6.0, 4.3.2, 0.9 and 3.0.1).

Along with Cygwin comes:
- libgmp, libgmp3, libgmpxx4 and libgmp-devel 4.3.1-3
- libmpc1 and libmpc-devel 0.8-1
- libmpfr1 and libmpfr-devel 2.4.1-4
I edited /usr/local/include/gmpxx.h to added "choke me" in order to verify if
it's used by gcc's "make" despite gmp's source being in my source tree.

gcc output is in an "objdir" directory separate from my gcc source directory.
Configure script (after a "make distclean" command in "objdir"), with "objdir"
as my present working directory :
/"path to my source"/configure --enable-cx

then:
make

That's the configuration I'm testing now ("make" isn't finished). The first
build failures I refer too were done with pretty much the same configuration,
but for a trunk version of gcc and a one-two months old Cygwin. As I've lost
track of this precise configuration, I'm trying again with the configuration
described above.

> It also seems to be completely unrelated to this bug report, which is about
> segfaults (almost certainly due to faulty hardware) not incorrectly-detected
> system properties during configuration.

I won't fight on this point, ;-).
If my bug shows up again, I'll submit a specific bug report, so as not to
pollute this one.

Thank you.


[Bug debug/49496] [4.7 Regression] -fcompare-debug failure (length) with -O -ftree-vectorize

2011-06-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49496

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.06.22 09:24:57
 CC||jakub at gcc dot gnu.org
  Component|tree-optimization   |debug
 AssignedTo|unassigned at gcc dot   |jakub at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1


[Bug debug/49496] [4.7 Regression] -fcompare-debug failure (length) with -O -ftree-vectorize

2011-06-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49496

--- Comment #1 from Jakub Jelinek  2011-06-22 
09:32:08 UTC ---
Created attachment 24579
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24579
gcc47-pr49496.patch

Untested fix.


[Bug regression/49500] [4.7 Regression]: gcc.dg/tls/alias-1.c

2011-06-22 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49500

Ramana Radhakrishnan  changed:

   What|Removed |Added

 CC||ramana at gcc dot gnu.org

--- Comment #1 from Ramana Radhakrishnan  2011-06-22 
10:09:39 UTC ---
Also on arm-eabi. 

Ramana


[Bug debug/47858] [4.5/4.6/4.7 Regression] IPA-SRA decreases quality of debug info

2011-06-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47858

--- Comment #7 from Jakub Jelinek  2011-06-22 
10:42:02 UTC ---
Author: jakub
Date: Wed Jun 22 10:41:58 2011
New Revision: 175288

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175288
Log:
PR debug/47858
* gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
(gimple_build_debug_source_bind_stat): New prototype.
(gimple_build_debug_source_bind): Define.
(gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
gimple_debug_source_bind_get_value,
gimple_debug_source_bind_get_value_ptr,
gimple_debug_source_bind_set_var,
gimple_debug_source_bind_set_value): New inlines.
* gimple.c (gimple_build_debug_source_bind_stat): New function.
* gimple-pretty-print.c (dump_gimple_debug): Handle
GIMPLE_DEBUG_SOURCE_BIND.
* sese.c (rename_uses): Handle gimple_debug_source_bind_p.
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
* tree-parloops.c (eliminate_local_variables,
separate_decls_in_region): Likewise.
(separate_decls_in_region_debug): Renamed from
separate_decls_in_region_debug_bind.  Handle
gimple_debug_source_bind_p.
* tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
prototypes.
(DECL_HAS_DEBUG_ARGS_P): Define.
(struct tree_function_decl): Add has_debug_args_flag field.
* tree.c (debug_args_for_decl): New variable.
(decl_debug_args_lookup, decl_debug_args_insert): New functions.
* tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
(rewrite_debug_stmt_uses): New function.
(rewrite_stmt): Use it to rewrite debug stmt uses.
* rtl.def (DEBUG_PARAMETER_REF): New.
* rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
* cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
DEBUG_PARAMETER_REF.
* rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
* print-rtl.c (print_rtx): Likewise.
* tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
debug stmts in the first bb.
* tree-inline.c (remap_ssa_name): If remapping default def
of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
a source bind debug stmt.
(remap_gimple_stmt): Handle gimple_debug_source_bind_p.
(maybe_move_debug_stmts_to_successors): Likewise.
(copy_debug_stmt): Likewise.  Avoid shadowing a variable.
(tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
debug args vector from old_decl to new_decl.
* ipa-prop.c (ipa_modify_call_arguments): For optimized away
or modified parameters, add debug bind stmts before call
setting DEBUG_EXPR_DECL which is remembered in debug args
vector.
* cfgexpand.c (expand_call_stmt): Call expand_debug_expr
on DECL_DEBUG_EXPRs from debug args vector.
(expand_debug_source_expr): New function.
(expand_debug_locations): Use it for source bind insns.
(expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
* var-tracking.c (prepare_call_arguments): Add debug args
to call_arguments if any.
* dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
output_loc_operands, output_loc_operands_raw,
resolve_addr_in_expr, compare_loc_operands): Handle
DW_OP_GNU_parameter_ref.
(get_ref_die_offset, parameter_ref_descriptor): New functions.
(mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
(gen_subprogram_die): Handle parameters identified by
DEBUG_PARAMETER_REF.

* dwarf2.h (enum dwarf_location_atom): Add DW_OP_GNU_parameter_ref.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/cfgexpand.c
trunk/gcc/cselib.c
trunk/gcc/dwarf2out.c
trunk/gcc/gimple-pretty-print.c
trunk/gcc/gimple.c
trunk/gcc/gimple.h
trunk/gcc/ipa-prop.c
trunk/gcc/print-rtl.c
trunk/gcc/rtl.c
trunk/gcc/rtl.def
trunk/gcc/rtl.h
trunk/gcc/sese.c
trunk/gcc/tree-inline.c
trunk/gcc/tree-into-ssa.c
trunk/gcc/tree-parloops.c
trunk/gcc/tree-sra.c
trunk/gcc/tree-ssa-dce.c
trunk/gcc/tree.c
trunk/gcc/tree.h
trunk/gcc/var-tracking.c
trunk/include/ChangeLog
trunk/include/dwarf2.h


[Bug bootstrap/49072] Error building the compiler

2011-06-22 Thread franck.z.bugzilla at orange dot fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49072

--- Comment #8 from Franck Z  2011-06-22 
11:07:52 UTC ---
(In reply to comment #7)

Failure. But with a tag passed to libtool.
My Cygwin version of libtool is 2.4-1.

Took place in objdir/gmp/mpn.
With the command:
/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I.
-I/cygdrive/c/gcc-4.6.0/gmp/mpn -I.. -D__GMP_WITHIN_GMP
-I/cygdrive/c/gcc-4.6.0/gmp -DOPERATION_`echo fib_table | sed 's/_$//'` 
-DNO_ASM -g -fkeep-inline-functions -c -o fib_table.lo fib_table.c

messages sent:
libtool: compile: unable to infer tagged configuration
libtool: compile: specify a tag with `--tag'

backtraces from "make"s rewinding from /home/Défaut/objdir/gmp/mpn (make[5]) to
/home/Défaut/objdir (make):
[fib_table.lo] Error 1 (in mpn)
[all-recursive] Error 1 (in gmp)
[all] Error 2 (in gmp)
[all-stage1-gmp] Error 2 (in objdir)
[stage1-bubble] Error 2 (in objdir)
[all] Error 2

Should I file in a new bug for this one with is different?


[Bug bootstrap/49072] Error building the compiler

2011-06-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49072

Jonathan Wakely  changed:

   What|Removed |Added

   Severity|critical|normal

--- Comment #9 from Jonathan Wakely  2011-06-22 
11:19:32 UTC ---
(In reply to comment #8)
> Should I file in a new bug for this one with is different?

Yes please, it's completely unrelated.  Please provide all the information
requested at http://gcc.gnu.org/bugs/


[Bug bootstrap/49502] New: Unable to build gcc with gmp/mpc/mpfr in its tree and flag "--enable-cxx"

2011-06-22 Thread franck.z.bugzilla at orange dot fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49502

   Summary: Unable to build gcc with gmp/mpc/mpfr in its tree and
flag "--enable-cxx"
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: franck.z.bugzi...@orange.fr


*** the exact version of GCC;

configure:4184: gcc --version >&5
gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)


*** the system type; 

uname -m = i686
uname -r = 1.7.9(0.237/5/3)
uname -s = CYGWIN_NT-5.1
uname -v = 2011-03-29 10:10

My Cygwin is recent (one week old).
My Cygwin version of libtool is 2.4-1.

It was run on a Dual Core, Windows XP SP 3, with Cygwin environment.

*** the options given when GCC was configured/built; 

  $ /cygdrive/c/gcc-4.6.0/configure --enable-cxx

*** the complete command line that triggers the bug; 

$ make

more precisely:

It's a failure with a tag passed to libtool.

Took place in objdir/gmp/mpn.
With the command:
/bin/sh ../libtool --mode=compile gcc -DHAVE_CONFIG_H -I.
-I/cygdrive/c/gcc-4.6.0/gmp/mpn -I.. -D__GMP_WITHIN_GMP
-I/cygdrive/c/gcc-4.6.0/gmp -DOPERATION_`echo fib_table | sed 's/_$//'` 
-DNO_ASM -g -fkeep-inline-functions -c -o fib_table.lo fib_table.c


*** the compiler output (error messages, warnings, etc.); and 

messages sent:
libtool: compile: unable to infer tagged configuration
libtool: compile: specify a tag with `--tag'

backtraces from "make"s rewinding from /home/Défaut/objdir/gmp/mpn (make[5]) to
/home/Défaut/objdir (make):
[fib_table.lo] Error 1 (in mpn)
[all-recursive] Error 1 (in gmp)
[all] Error 2 (in gmp)
[all-stage1-gmp] Error 2 (in objdir)
[stage1-bubble] Error 2 (in objdir)
[all] Error 2


*** the preprocessed file (*.i*) that triggers the bug, generated by adding
-save-temps to the complete compilation command, or, in the case of a bug
report for the GNAT front end, a complete set of source files (see below). 

not relevant (?) it's an issue with how the "libtool" utility was generated by
gmp's "configure" script with the parameters it got from gcc's makefile.
Namely, as found in gmp/config.log :
 $ /cygdrive/c/gcc-4.6.0/gmp/configure --cache-file=./config.cache --enable-cxx
--enable-languages=c,c++,fortran,java,lto,objc --program-transform-name=s,y,y,
--disable-option-checking --build=i686-pc-cygwin --host=none-pc-cygwin
--target=none-pc-cygwin --srcdir=/cygdrive/c/gcc-4.6.0/gmp
--disable-intermodule --enable-checking=yes,types --disable-coverage
--enable-languages=c,lto --disable-shared


*** Extra-precision about the source compiled.

I have the same source tree for gcc, gcc/gmp, gcc/mpc and gcc/mpfr as the one
advised in the pre-requisite web page at gcc.gnu.org (4.6.0, 4.3.2, 0.9 and
3.0.1).

(see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49072 , for history, but all
the information for reproduceability has been reproduced here.)

gcc output is in an "objdir" directory separate from my gcc source directory.

As far as I can remember from my various attempts, a configure command with
--enable-cxx flag when I built gmp separately from gcc worked. I'll try it
again if you wish so as to make sure it's not a gmp issue.


[Bug bootstrap/49502] Unable to build gcc with gmp/mpc/mpfr in its tree and flag "--enable-cxx"

2011-06-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49502

Richard Guenther  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2011.06.22 13:30:04
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther  2011-06-22 
13:30:04 UTC ---
Why do you use --enable-cxx and what do you think it does?  Please do not use
it.


[Bug target/49422] [arm] unable to find a register to spill in class 'VFP_LO_REGS'

2011-06-22 Thread philb at gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49422

philb at gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #2 from philb at gnu dot org 2011-06-22 13:46:51 UTC ---
I can't reproduce it now either.  I think I must have been testing against a
locally patched tree rather than the clean one by mistake.  I'll close this bug
until/unless I can reproduce the failure on a released version.


[Bug regression/49500] [4.7 Regression]: gcc.dg/tls/alias-1.c

2011-06-22 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49500

John David Anglin  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.06.22 14:04:32
 CC||danglin at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #2 from John David Anglin  2011-06-22 
14:04:32 UTC ---
Also on hppa*-*-hpux*.


[Bug tree-optimization/49365] 436.cactusADM performance regression

2011-06-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49365

Richard Guenther  changed:

   What|Removed |Added

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

--- Comment #6 from Richard Guenther  2011-06-22 
14:13:14 UTC ---
I have posted a patch.


[Bug rtl-optimization/49429] [4.7 Regression] dse.c change (r175063) causes execution failures

2011-06-22 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49429

Eric Botcazou  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.06.22 14:19:56
 CC||ebotcazou at gcc dot
   ||gnu.org
Summary|[4.7 Regression] dse.c  |[4.7 Regression] dse.c
   |changes to fix PR44194  |change (r175063) causes
   |(r175063) cause execution   |execution failures
   |failures|
 Ever Confirmed|0   |1

--- Comment #15 from Eric Botcazou  2011-06-22 
14:19:56 UTC ---
> Unfortunately, this patch does not seem to fix PR 49454, the PA bootstrap
> failure, which also broke at the same time.  Perhaps there are some other
> places where mark_addressable needs to be called?

See http://gcc.gnu.org/ml/gcc-patches/2011-06/msg01672.html for an analysis.


[Bug target/49454] [4.7 Regression] /usr/include/libio.h:336:3: internal compiler error: Segmentation fault

2011-06-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49454

Richard Guenther  changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0


[Bug libgomp/49490] suboptimal load balancing in loops

2011-06-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49490

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.06.22 14:41:35
 AssignedTo|unassigned at gcc dot   |jakub at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #1 from Jakub Jelinek  2011-06-22 
14:41:35 UTC ---
Created attachment 24580
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24580
gcc47-pr49490.patch

Untested fix.


[Bug middle-end/41378] -fipa-pta -O3 leads to ICE : in insert_vi_for_tree, at tree-ssa-structalias.c:2601

2011-06-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41378

Richard Guenther  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WORKSFORME

--- Comment #3 from Richard Guenther  2011-06-22 
14:58:41 UTC ---
I can't reproduce this anymore.


[Bug target/48308] crosscompiling to arm fails with assembler: can't resolve '.LC4' {.rodata.str1.1 section} - '.LPIC4' {*UND* section}

2011-06-22 Thread m.k.edwards at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48308

Michael K. Edwards  changed:

   What|Removed |Added

 CC||m.k.edwards at gmail dot
   ||com

--- Comment #7 from Michael K. Edwards  
2011-06-22 15:14:06 UTC ---
I hit this with Linaro GCC 4.6 (4.6.1-based) and the same pkeyparam.c from
OpenSSL.  I am also compiling with -Os and -fPIC, and implicitly with -mthumb
(the default in my toolchain); so it's not specific to ARM mode.

The situation appears to be that two pc-relative fetches (artifacts of -fPIC
and string literals) get folded together, losing one of the labels (needed for
calculation of the offset in the table of PIC indirections).

Reverting http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=163998 makes the
problem go away, at least at compile time; I should be able to run a test suite
soon.


[Bug c++/49260] cpp0x/lambda/lambda-eh2.C fails execution

2011-06-22 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49260

Jason Merrill  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org
   |gnu.org |
   Target Milestone|--- |4.7.0


[Bug testsuite/49503] New: Incorrect stack alignment, produced by inline assembler in tests gcc.target/i386/cleanup-1.c and gcc.target/i386/cleanup-2.c

2011-06-22 Thread michael.v.zolotukhin at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49503

   Summary: Incorrect stack alignment, produced by inline
assembler in tests gcc.target/i386/cleanup-1.c and
gcc.target/i386/cleanup-2.c
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: michael.v.zolotuk...@gmail.com
CC: michael.v.zolotuk...@gmail.com
  Host: x64
Target: x64
 Build: 4.7.0 20110619


The tests contain asm-listing like this:
__asm (
  testl  %0, %0
  jnz1f
  .subsection 1
  .type  _L_mutex_lock_%=, @function
_L_mutex_lock_%=:
1:leaq   %1, %%rdi
2:subq   $128, %%rsp
3:call   bar
4:addq   $128, %%rsp
5:jmp21f
...

As _L_mutex_lock is a function, GCC generates a prologue and epilogue for it -
in prologue stack alignment is performed (according to ABI64, stack should be
aligned to 128-bit).
Before a call, SP is assumed to be a multiple of 16, at function entry, when
return address is pushed to stack, (SP+8) becomes multiple of 16 - GCC uses
these assumptions when generating prologue for stack alignment.
But if JUMP is used instead of CALL, 8-byte displacement doesn't take place,
and stack becomes unaligned - that's violation of ABI.

To fix this error, JUMP should be replaced with CALL, or L_mutex_lock shouldn't
be declared as a function.


[Bug target/49497] Incorrect lea peephole

2011-06-22 Thread hjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49497

--- Comment #3 from hjl at gcc dot gnu.org  2011-06-22 
15:29:48 UTC ---
Author: hjl
Date: Wed Jun 22 15:29:43 2011
New Revision: 175295

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175295
Log:
Check TARGET_PARTIAL_REG_STALL in imul to lea peepholes.

2011-06-22  H.J. Lu  

PR target/49497
* config/i386/i386.md (*lea_general_2): Always allow SImode.
(*lea_general_2_zext): Likewise.
(imul to lea peepholes): Use const359_operand and check
TARGET_PARTIAL_REG_STALL.

* config/i386/predicates.md (const359_operand): New.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.md
trunk/gcc/config/i386/predicates.md


[Bug c++/49260] cpp0x/lambda/lambda-eh2.C fails execution

2011-06-22 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49260

--- Comment #7 from Jason Merrill  2011-06-22 
15:55:25 UTC ---
Author: jason
Date: Wed Jun 22 15:55:22 2011
New Revision: 175296

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175296
Log:
PR c++/49260
* call.c (build_call_a): Set cp_function_chain->can_throw here.
(build_cxx_call): Not here.

Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-eh2.C


[Bug c++/49260] cpp0x/lambda/lambda-eh2.C fails execution

2011-06-22 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49260

--- Comment #8 from Jason Merrill  2011-06-22 
15:55:59 UTC ---
Should be fixed on trunk now.


[Bug c++/22596] Impossible to explicitly instantiate particular overloaded function

2011-06-22 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22596

Jason Merrill  changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #8 from Jason Merrill  2011-06-22 
16:07:24 UTC ---
The example at the bottom of DR 214 seems related, but not quite the same:

  http://www.open-std.org/JTC1/SC22/WG21/docs/cwg_defects.html#214


[Bug target/48126] arm_output_sync_loop: misplaced memory barrier, missing clrex / dummy strex

2011-06-22 Thread david.gilbert at linaro dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48126

Dr. David Alan Gilbert  changed:

   What|Removed |Added

 CC||david.gilbert at linaro dot
   ||org

--- Comment #5 from Dr. David Alan Gilbert  
2011-06-22 16:40:07 UTC ---
Michael:
I think I agree with you on the need for the barrier in the branch out case;
gcc's info page (section 6.49 'Built-in functions for atomic memory access')
state:

-
 In most cases, these builtins are considered a "full barrier".  That
is, no memory operand will be moved across the operation, either
forward or backward.  Further, instructions will be issued as necessary
to prevent the processor from speculating loads across the operation
and from queuing stores after the operation.
--

so it does look like that last barrier would be needed to stop a subsequent
load floating backwards before the ldrex.

If I understand correctly however most cases wouldn't need it - I think most
cases are use the compare&swap to take some form of lock, and then once you
know you have the lock go and do your accesses - and in that case the ordering
is guaranteed, where as if you couldn't take the lock you wouldn't use the
subsequent access anyway.


Dave


[Bug testsuite/49503] Incorrect stack alignment, produced by inline assembler in tests gcc.target/i386/cleanup-1.c and gcc.target/i386/cleanup-2.c

2011-06-22 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49503

H.J. Lu  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2011.06.22 16:48:48
 Ever Confirmed|0   |1

--- Comment #1 from H.J. Lu  2011-06-22 16:48:48 
UTC ---
(In reply to comment #0)
> 
> As _L_mutex_lock is a function, GCC generates a prologue and epilogue for it -
> in prologue stack alignment is performed (according to ABI64, stack should be
> aligned to 128-bit).

I didn't see any prologue and epilogue for _L_mutex_lock. Do you have
a run-time testcase to show the problem?


[Bug middle-end/49504] New: Invalid optimization for Pmode != ptr_mode

2011-06-22 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49504

   Summary: Invalid optimization for Pmode != ptr_mode
   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


On x32 branch, I got

[hjl@gnu-33 tmp]$ cat x32.c
unsigned long long t(const void* p, unsigned long long q) {
  unsigned long long a = (((unsigned long long) ((unsigned long) p)) + q) >>
32;
  return a;
}
[hjl@gnu-33 tmp]$ /usr/gcc-4.7.0-x32/bin/gcc -O2 -mx32 -S x32.c
[hjl@gnu-33 tmp]$ cat x32.s
.file"x32.c"
.text
.p2align 4,,15
.globlt
.typet, @function
t:
.LFB0:
.cfi_startproc
xorl%eax, %eax
ret
.cfi_endproc
.LFE0:
.sizet, .-t
.ident"GCC: (GNU) 4.7.0 20110616 (experimental)"
.section.note.GNU-stack,"",@progbits
[hjl@gnu-33 tmp]$ 

From

http://code.google.com/p/nativeclient/issues/detail?id=1601

What it does is that when pointers from memory (ptr_mode) are zero extended
when getting into registers (Pmode)(POINTERS_EXTEND_UNSIGNED > 0), and there is
a Pmode PLUS or MINUS of a register that holds a pointer value with some other
register, all bits above ptr_mode are considered zero.

Here is the test that demonstrates the bug clearly (compile with -O2):

  unsigned long long t(const void* p, unsigned long long q) {
unsigned long long a = (((unsigned long long)p) + q) >> 32;
return a;
  }

In our z86_64 compiler, p is 32-bit. It gets zero-extended to 64-bit long long
for addition with q, but the fact that it was originally a pointer is
preserved. Thus, nonzero_bits1 thinks the result of addition always has high
32-bits equal to zero, so the result of the right shift is always zero.

The test gets optimized to "return 0;".


[Bug regression/49498] [4.7 Regression]: gcc.dg/uninit-pred-8_b.c bogus warning line 20

2011-06-22 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49498

Jeffrey A. Law  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.06.22 17:27:37
 CC||law at redhat dot com
 Ever Confirmed|0   |1

--- Comment #2 from Jeffrey A. Law  2011-06-22 17:27:37 
UTC ---
It looks like the uninit code is being confused by elimination of a test in one
path. 

int foo (int n, int l, int m, int r)
{
  int v;

  if (n < 10 || m > 100 || r < 20 || l)
v = r;

  if (m) g++;
  else   bar();

  if ( n < 10 ||  m > 100 || r < 20 )
  blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */

  return 0;
}


We end up copying the n < 10 test from the 3rd conditional into the m == 0 path
of the second conditional and threading the false path from the copied
conditional to the r < 20 test (ie, we bypass the m > 100 test as it always
false on that path where m == 0.

This appears to confuse the predicate analysis in tree-ssa-uninit.c.  I'm still
trying to wrap my head around its implementation to see if there's a reasonable
way to solve this.


[Bug c++/22596] Impossible to explicitly instantiate particular overloaded function

2011-06-22 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22596

Jason Merrill  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #9 from Jason Merrill  2011-06-22 
17:35:09 UTC ---
This is not a bug; under the partial ordering rules, the second foo is more
specialized than the first, so if both are possible matches the second will be
chosen.

If you want the explicit instantiation to match the same function that's called
with no explicit template arguments, then don't provide explicit template
arguments in the explicit instantiation.  If you just write

template int foo(A_class a);

or

template int foo<>(A_class a);

it will do what you want.


[Bug fortran/49501] support ATTRIBUTES ALIGN in gfortran

2011-06-22 Thread stevenj at alum dot mit.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49501

--- Comment #1 from stevenj at alum dot mit.edu 2011-06-22 17:38:25 UTC ---
Actually, it looks like there is a way to allocate aligned memory, albeit a 
bit ugly, thanks to Fortran 2003's C interoperability.  Declare a bind(C)
interface to e.g. posix_memalign, and then use C_F_POINTER intrinsic to convert
this into a pointer to a Fortran array.


[Bug testsuite/49503] Incorrect stack alignment, produced by inline assembler in tests gcc.target/i386/cleanup-1.c and gcc.target/i386/cleanup-2.c

2011-06-22 Thread michael.v.zolotukhin at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49503

--- Comment #2 from Michael Zolotukhin  
2011-06-22 17:50:34 UTC ---
(In reply to comment #1)
> (In reply to comment #0)
> > 
> > As _L_mutex_lock is a function, GCC generates a prologue and epilogue for 
> > it -
> > in prologue stack alignment is performed (according to ABI64, stack should 
> > be
> > aligned to 128-bit).
> 
> I didn't see any prologue and epilogue for _L_mutex_lock. Do you have
> a run-time testcase to show the problem?

I don't have run-time test for this fail, but here is a way to see the problem:

Firstly, you need to compile the test (it is in gcc/testsuite/gcc.target/i386):

gcc cleanup-1.c   -fexceptions -fnon-call-exceptions
-fasynchronous-unwind-tables -O0  -lm -g -fno-inline

Then, in debugger one can see that before each callq before foo (here 'before'
means 'upper in call stack') RSP contains aligned value, after foo (deeper in
call stack) - unaligned.


Here is corresponding a assembler dump:

-Dump of assembler code for function foo:
   0x00400886 <+0>: push   %rbp
   0x00400887 <+1>: mov%rsp,%rbp
   0x0040088a <+4>: push   %r12
   0x0040088c <+6>: push   %rbx
   0x0040088d <+7>: sub$0x98,%rsp # It is the prologue,
   0x00400894 <+14>:mov%edi,-0x114(%rbp)  # that I've spoken
   0x0040089a <+20>:mov-0x114(%rbp),%ebx  # about.
   0x004008a0 <+26>:lea-0x110(%rbp),%r12  #
   0x004008a7 <+33>:test   %ebx,%ebx
   0x004008a9 <+35>:jne0x400941 <_L_mutex_lock_216>
   0x004008af <+41>:add$0x98,%rsp
   0x004008b6 <+48>:pop%rbx
   0x004008b7 <+49>:pop%r12
   0x004008b9 <+51>:leaveq
   0x004008ba <+52>:retq
-End of assembler dump.

RTL dumps showed that these instructions appear phase "197r.pro_and_epilogue".

I'm not sure, if prologue generation is incorrect - in my opinion the problem
is with such untrivial call of _L_mutex_lock.


[Bug libgcj/49451] FileHandleGcTest FAILS on IRIX

2011-06-22 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49451

Rainer Orth  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2011-06/msg01687.htm
   ||l
   Last reconfirmed||2011.06.22 17:54:50
 AssignedTo|unassigned at gcc dot   |ro at gcc dot gnu.org
   |gnu.org |
   Target Milestone|--- |4.7.0
 Ever Confirmed|0   |1

--- Comment #1 from Rainer Orth  2011-06-22 17:54:50 UTC 
---
Mine, patch posted.


[Bug tree-optimization/49493] ICE: in insert_vi_for_tree, at tree-ssa-structalias.c:2637 with -O -fipa-pta

2011-06-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49493

--- Comment #2 from Richard Guenther  2011-06-22 
18:02:09 UTC ---
Author: rguenth
Date: Wed Jun 22 18:02:06 2011
New Revision: 175300

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175300
Log:
2011-06-22  Richard Guenther  

PR tree-optimization/49493
* tree-ssa-structalias.c (get_constraint_for_ssa_var):
Refer to the alias target of variables.
(associate_varinfo_to_alias_1): Remove.
(ipa_pta_execute): Do not associate aliases with anything.
* cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
(cgraph_function_node): Likewise.
(cgraph_function_or_thunk_node): Likewise.
(varpool_variable_node): Likewise.

* gcc.dg/ipa/ipa-pta-17.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/ipa/ipa-pta-17.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cgraph.h
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-structalias.c


[Bug tree-optimization/49493] ICE: in insert_vi_for_tree, at tree-ssa-structalias.c:2637 with -O -fipa-pta

2011-06-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49493

Richard Guenther  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||4.7.0
 Resolution||FIXED
   Target Milestone|--- |4.7.0
  Known to fail|4.7.0   |

--- Comment #3 from Richard Guenther  2011-06-22 
18:03:38 UTC ---
Fixed for trunk.


[Bug middle-end/49504] Invalid optimization for Pmode != ptr_mode

2011-06-22 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49504

H.J. Lu  changed:

   What|Removed |Added

 CC||ebotcazou at gcc dot
   ||gnu.org

--- Comment #1 from H.J. Lu  2011-06-22 18:11:33 
UTC ---
Another combine bug.


[Bug testsuite/49503] Incorrect stack alignment, produced by inline assembler in tests gcc.target/i386/cleanup-1.c and gcc.target/i386/cleanup-2.c

2011-06-22 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49503

--- Comment #3 from H.J. Lu  2011-06-22 18:34:32 
UTC ---
(In reply to comment #2)
> (In reply to comment #1)
> > (In reply to comment #0)
> > > 
> > > As _L_mutex_lock is a function, GCC generates a prologue and epilogue for 
> > > it -
> > > in prologue stack alignment is performed (according to ABI64, stack 
> > > should be
> > > aligned to 128-bit).
> > 
> > I didn't see any prologue and epilogue for _L_mutex_lock. Do you have
> > a run-time testcase to show the problem?
> 
> I don't have run-time test for this fail, but here is a way to see the 
> problem:
> 

It is very easy to check if stack alignment is correct at run-time.
Please see how it is done in testcases under gcc.dg/torture/stackalign.


[Bug c++/36435] Partial ordering of explicit specialization should include return type

2011-06-22 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36435

Jason Merrill  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.06.22 18:40:23
 CC||jason at gcc dot gnu.org
 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1


[Bug target/48126] arm_output_sync_loop: misplaced memory barrier, missing clrex / dummy strex

2011-06-22 Thread m.k.edwards at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48126

--- Comment #6 from Michael K. Edwards  
2011-06-22 19:00:54 UTC ---
(In reply to comment #5)

> If I understand correctly however most cases wouldn't need it - I think most
> cases are use the compare&swap to take some form of lock, and then once you
> know you have the lock go and do your accesses - and in that case the ordering
> is guaranteed, where as if you couldn't take the lock you wouldn't use the
> subsequent access anyway.

Yes, that fits my understanding.  It's only when you actually use the
compare-and-swap as a compare-and-swap that you can get bit.  I expect that it
is quite hard to hit this in the 32-bit case, but with your 64-bit atomics and
a dual-core system it should be a little easier to expose.  I have an
implementation of Michael-Scott lock-free queues (which rely on applying DCAS
to a counter+pointer), in which I currently use the assembly cmpxchg64
equivalent we discussed; I'll adapt it to use the GCC intrinsic and re-test.


[Bug fortran/49416] wrong -fbounds-check with 2 dimensional arrays reshape

2011-06-22 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49416

Thomas Koenig  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||tkoenig at gcc dot gnu.org
 Resolution||FIXED

--- Comment #2 from Thomas Koenig  2011-06-22 
19:43:01 UTC ---
I don't think we will backport the fix (if we can find
it easily) to 4.4; that is now essentially unmaintained.

Advice would be to upgrade to 4.5 or 4.6.1 (about to be released).

Closing.


[Bug rtl-optimization/49504] Invalid optimization for Pmode != ptr_mode

2011-06-22 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49504

H.J. Lu  changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2011-06/msg01704.htm
   ||l
  Component|middle-end  |rtl-optimization

--- Comment #2 from H.J. Lu  2011-06-22 19:44:09 
UTC ---
The patch is posted at

http://gcc.gnu.org/ml/gcc-patches/2011-06/msg01704.html


[Bug rtl-optimization/49504] Invalid optimization for Pmode != ptr_mode

2011-06-22 Thread hjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49504

--- Comment #3 from hjl at gcc dot gnu.org  2011-06-22 
19:59:59 UTC ---
Author: hjl
Date: Wed Jun 22 19:59:52 2011
New Revision: 175306

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175306
Log:
Properly handle pointer addition/subtraction.

gcc/

2011-06-22  H.J. Lu  

PR rtl-optimization/49504
* rtlanal.c (nonzero_bits1): Properly handle addition or
subtraction a pointer in Pmode if pointers extend unsigned.

gcc/testsuite/

2011-06-22  H.J. Lu  

PR rtl-optimization/49504
* gcc.target/i386/pr49504.c: New.

Added:
branches/x32/gcc/testsuite/gcc.target/i386/pr49504.c
Modified:
branches/x32/gcc/ChangeLog.x32
branches/x32/gcc/rtlanal.c
branches/x32/gcc/testsuite/ChangeLog.x32


[Bug c++/35255] [DR 115] gcc does not do partial ordering on overloaded address resolution

2011-06-22 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35255

Jason Merrill  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org
   |gnu.org |
Summary|gcc does not do partial |[DR 115] gcc does not do
   |ordering on overloaded  |partial ordering on
   |address resolution  |overloaded address
   ||resolution

--- Comment #1 from Jason Merrill  2011-06-22 
20:06:40 UTC ---
This is DR 115.  14.8.1 says,

In contexts where deduction is done and fails, or in contexts where deduction
is not done, if a template argument list is specified and it, along with any
default template arguments, identifies a single function template
specialization, then the template-id is an lvalue for the function template
specialization.


[Bug c++/49505] New: [DR 214] wrong partial ordering for explicit instantiation with unused template parameter

2011-06-22 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49505

   Summary: [DR 214] wrong partial ordering for explicit
instantiation with unused template parameter
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Keywords: rejects-valid
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ja...@gcc.gnu.org


template  T f(int) { return T(); }
template  T f(V);

template int f (int);

Here, the first f is more specialized than the second.  G++ currently rejects
this testcase as ambiguous because of the unused template parameter U, but
since DR 214 14.8.2.4 says,

In most cases, all template parameters must have values in order for deduction
to succeed, but for partial ordering purposes a template parameter may remain
without a value provided it is not used in the types being used for partial
ordering.

clang and EDG get this right.

I noticed this issue while looking at bug 22596.


[Bug c++/49505] [DR 214] wrong partial ordering for explicit instantiation with unused template parameter

2011-06-22 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49505

Jason Merrill  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.06.22 20:17:31
 Ever Confirmed|0   |1


[Bug regression/47836] Some Cross Compiler can't build target-libiberty or target-zlib

2011-06-22 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47836

--- Comment #13 from Hans-Peter Nilsson  2011-06-22 
20:17:55 UTC ---
Author: hp
Date: Wed Jun 22 20:17:47 2011
New Revision: 175307

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175307
Log:
PR regression/47836
PR bootstrap/23656
PR other/47733
PR bootstrap/49247
* configure.ac (target_libraries): Remove target-libiberty.
Remove case-statement setting skipdirs=target-libiberty for
multiple targets.  Remove checking target_configdirs and
removing target-libiberty but keeping target-libgcc if
otherwise empty.
* Makefile.def (target_modules): Don't add libiberty.
(dependencies): Remove all traces of target-libiberty.
* configure, Makefile.in: Regenerate.
(fixing PR annotations in the ChangeLog entry)

Modified:
trunk/ChangeLog


[Bug bootstrap/23656] Cross-compilation with newlib fails in libiberty

2011-06-22 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23656

--- Comment #2 from Hans-Peter Nilsson  2011-06-22 
20:17:58 UTC ---
Author: hp
Date: Wed Jun 22 20:17:47 2011
New Revision: 175307

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175307
Log:
PR regression/47836
PR bootstrap/23656
PR other/47733
PR bootstrap/49247
* configure.ac (target_libraries): Remove target-libiberty.
Remove case-statement setting skipdirs=target-libiberty for
multiple targets.  Remove checking target_configdirs and
removing target-libiberty but keeping target-libgcc if
otherwise empty.
* Makefile.def (target_modules): Don't add libiberty.
(dependencies): Remove all traces of target-libiberty.
* configure, Makefile.in: Regenerate.
(fixing PR annotations in the ChangeLog entry)

Modified:
trunk/ChangeLog


[Bug bootstrap/49247] libiberty configure assumes newlib does not supply psignal

2011-06-22 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49247

--- Comment #1 from Hans-Peter Nilsson  2011-06-22 
20:17:58 UTC ---
Author: hp
Date: Wed Jun 22 20:17:47 2011
New Revision: 175307

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175307
Log:
PR regression/47836
PR bootstrap/23656
PR other/47733
PR bootstrap/49247
* configure.ac (target_libraries): Remove target-libiberty.
Remove case-statement setting skipdirs=target-libiberty for
multiple targets.  Remove checking target_configdirs and
removing target-libiberty but keeping target-libgcc if
otherwise empty.
* Makefile.def (target_modules): Don't add libiberty.
(dependencies): Remove all traces of target-libiberty.
* configure, Makefile.in: Regenerate.
(fixing PR annotations in the ChangeLog entry)

Modified:
trunk/ChangeLog


[Bug other/47733] psignal (int, const? char*) in libiberty/strsignal.h

2011-06-22 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47733

--- Comment #2 from Hans-Peter Nilsson  2011-06-22 
20:18:00 UTC ---
Author: hp
Date: Wed Jun 22 20:17:47 2011
New Revision: 175307

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175307
Log:
PR regression/47836
PR bootstrap/23656
PR other/47733
PR bootstrap/49247
* configure.ac (target_libraries): Remove target-libiberty.
Remove case-statement setting skipdirs=target-libiberty for
multiple targets.  Remove checking target_configdirs and
removing target-libiberty but keeping target-libgcc if
otherwise empty.
* Makefile.def (target_modules): Don't add libiberty.
(dependencies): Remove all traces of target-libiberty.
* configure, Makefile.in: Regenerate.
(fixing PR annotations in the ChangeLog entry)

Modified:
trunk/ChangeLog


[Bug libstdc++/49506] New: reusing a file stream object will always get eof after openning

2011-06-22 Thread gzljg at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49506

   Summary: reusing a file stream object will always get eof after
openning
   Product: gcc
   Version: 3.3.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: gz...@hotmail.com


Created attachment 24581
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24581
test programe to reproduce the file stream open-eof bug

It seems that if I reuse a std::ifstream object by "open(another_file)" it will
always return EOF right away. See the attached file for details.

I had confirmed this can be reproduced with gcc 3.3.3 but NOT in gcc 4.3.3.
(Not sure which exact version fixed the problem -- I had searched the similar
bug description but could not find one ).

In a good case, the test program should return 0 silently.
In a bad case, the test program print out "eof" and some of the bits of the
stream state and return 1;


[Bug tree-optimization/36602] memset should be optimized into an empty CONSTRUCTOR

2011-06-22 Thread ak at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36602

ak at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ak at gcc dot gnu.org,
   ||mjambor at suse dot cz

--- Comment #3 from ak at gcc dot gnu.org 2011-06-22 20:30:56 UTC ---
I ran into a similar problem in my code.

It would be nice if memset didn't break SRA.


[Bug target/46278] avr-gcc 4.5.1 doing suboptimal reloads using X

2011-06-22 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46278

--- Comment #3 from Georg-Johann Lay  2011-06-22 
20:35:30 UTC ---
Created attachment 24582
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24582
snake.c

Yet another source file to test. Compile with, e.g. -Os -mmcu=atmega128
-std=gnu99

Compiled with avr-gcc 4.6.1 (prerelease SVN 175201) is shows size ca. 15% more
compared to avr-gcc 3.4.6.


[Bug c++/49395] Non-class prvalues seem to have cv-qualification with GCC

2011-06-22 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49395

Jason Merrill  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.06.22 20:36:09
 CC||jason at gcc dot gnu.org
 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #1 from Jason Merrill  2011-06-22 
20:36:09 UTC ---
I think line 10 is definitely a bug, line 8 may be a standards issue; I notice
that EDG also complains about that line.  Since A().i is a subobject of a class
prvalue, we might want to treat it differently from a normal int prvalue.


[Bug debug/49496] [4.7 Regression] -fcompare-debug failure (length) with -O -ftree-vectorize

2011-06-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49496

--- Comment #2 from Jakub Jelinek  2011-06-22 
20:37:58 UTC ---
Author: jakub
Date: Wed Jun 22 20:37:54 2011
New Revision: 175314

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175314
Log:
PR debug/49496
* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
uses.

* gcc.dg/pr49496.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/pr49496.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vect-patterns.c


[Bug libgomp/49490] suboptimal load balancing in loops

2011-06-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49490

--- Comment #2 from Jakub Jelinek  2011-06-22 
20:39:27 UTC ---
Author: jakub
Date: Wed Jun 22 20:39:25 2011
New Revision: 175315

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175315
Log:
PR libgomp/49490
* omp-low.c (expand_omp_for_static_nochunk): Only
use n ceil/ nthreads size for the first
n % nthreads threads in the team instead of
all threads except for the last few ones which
get less work or none at all.

* iter.c (gomp_iter_static_next): For chunk size 0
only use n ceil/ nthreads size for the first
n % nthreads threads in the team instead of
all threads except for the last few ones which
get less work or none at all.
* iter_ull.c (gomp_iter_ull_static_next): Likewise.
* env.c (parse_schedule): If OMP_SCHEDULE doesn't have
chunk argument, set run_sched_modifier to 0 for static
resp. 1 for other kinds.  If chunk argument is 0
and not static, set value to 1.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/omp-low.c
trunk/libgomp/ChangeLog
trunk/libgomp/env.c
trunk/libgomp/iter.c
trunk/libgomp/iter_ull.c


[Bug libstdc++/49506] reusing a file stream object will always get eof after openning

2011-06-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49506

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #1 from Andrew Pinski  2011-06-22 
20:42:02 UTC ---
>I had confirmed this can be reproduced with gcc 3.3.3 but NOT in gcc 4.3.3.


Well 3.3.3 is old and no longer supported.  So this has been fixed already


[Bug c++/49470] optional diagnostic not given for invalid mem-initializer in uninstantiated template

2011-06-22 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49470

Jason Merrill  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.06.22 20:44:17
Summary|no matching constructor for |optional diagnostic not
   |initialization errors not   |given for invalid
   |detected in g++ |mem-initializer in
   ||uninstantiated template
 Ever Confirmed|0   |1


[Bug c++/49440] [4.5/4.6/4.7 regression] Invalid dynamic_cast for unnamed namespace

2011-06-22 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49440

Jason Merrill  changed:

   What|Removed |Added

   Keywords||wrong-code
 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.06.22 21:00:47
 CC||jason at gcc dot gnu.org
 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org
   |gnu.org |
Summary|Invalid dynamic_cast for|[4.5/4.6/4.7 regression]
   |unnamed namespace   |Invalid dynamic_cast for
   ||unnamed namespace
 Ever Confirmed|0   |1

--- Comment #3 from Jason Merrill  2011-06-22 
21:00:47 UTC ---
This is related to the change to use string comparison for matching type_infos.
 We have a special case for file-local symbols, but aren't using it here for
some reason.

http://gcc.gnu.org/ml/gcc/2009-08/msg00258.html


[Bug c++/49507] New: ICE because of defaulted template destructor

2011-06-22 Thread s...@s-e-f-i.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49507

   Summary: ICE because of defaulted template destructor
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: s...@s-e-f-i.de


The following code makes rc1 of gcc-4.6.1 segfault:

template
struct ConcretePoolKey
{
virtual ~ConcretePoolKey();
};

template
ConcretePoolKey::~ConcretePoolKey() = default;

int main()
{
ConcretePoolKey foo;
}


/usr/bin/g++ -std=c++0x test.cpp
test.cpp: In destructor 'ConcretePoolKey::~ConcretePoolKey() [with T =
int]':
test.cpp:13:1:   instantiated from here
test.cpp:2:8: internal compiler error: Segmentation fault


[Bug c++/49508] New: [4.7 Regression] Bogus "control reaches end of non-void function" warning

2011-06-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49508

   Summary: [4.7 Regression] Bogus "control reaches end of
non-void function" warning
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: paolo.carl...@oracle.com


In mainline, I see this, apparently bogus, warning which is not emitted by 4.6
(or ICC for that matter). Testcase distilled from 20_util/forward/1_neg.cc in
the v3 testsuite, compile with -Wreturn-type:

template
  struct shared_ptr
  {
  };

template
  shared_ptr
  factory(const A1&, const A2&)
  {
return shared_ptr(new T());
  }

struct A
{
  A(int&, int&);
};

void g()
{
  factory(1, 2);
}


[Bug other/47733] psignal (int, const? char*) in libiberty/strsignal.h

2011-06-22 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47733

--- Comment #3 from Hans-Peter Nilsson  2011-06-22 
21:30:25 UTC ---
Author: hp
Date: Wed Jun 22 21:30:19 2011
New Revision: 175316

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175316
Log:
PR regression/47836
PR bootstrap/23656
PR other/47733
PR bootstrap/49247
PR c/48825
* configure.ac (target_libraries): Remove target-libiberty.
Remove case-statement setting skipdirs=target-libiberty for
multiple targets.  Remove checking target_configdirs and
removing target-libiberty but keeping target-libgcc if
otherwise empty.
* Makefile.def (target_modules): Don't add libiberty.
(dependencies): Remove all traces of target-libiberty.
* configure, Makefile.in: Regenerate.
(add missing PR annotation in the ChangeLog entry)

Modified:
trunk/ChangeLog


[Bug c/48825] libiberty "psignal" lacks const modifier, failing to compile when HAVE_PSIGNAL is undefined

2011-06-22 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48825

--- Comment #7 from Hans-Peter Nilsson  2011-06-22 
21:30:25 UTC ---
Author: hp
Date: Wed Jun 22 21:30:19 2011
New Revision: 175316

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175316
Log:
PR regression/47836
PR bootstrap/23656
PR other/47733
PR bootstrap/49247
PR c/48825
* configure.ac (target_libraries): Remove target-libiberty.
Remove case-statement setting skipdirs=target-libiberty for
multiple targets.  Remove checking target_configdirs and
removing target-libiberty but keeping target-libgcc if
otherwise empty.
* Makefile.def (target_modules): Don't add libiberty.
(dependencies): Remove all traces of target-libiberty.
* configure, Makefile.in: Regenerate.
(add missing PR annotation in the ChangeLog entry)

Modified:
trunk/ChangeLog


[Bug regression/47836] Some Cross Compiler can't build target-libiberty or target-zlib

2011-06-22 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47836

--- Comment #14 from Hans-Peter Nilsson  2011-06-22 
21:30:24 UTC ---
Author: hp
Date: Wed Jun 22 21:30:19 2011
New Revision: 175316

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175316
Log:
PR regression/47836
PR bootstrap/23656
PR other/47733
PR bootstrap/49247
PR c/48825
* configure.ac (target_libraries): Remove target-libiberty.
Remove case-statement setting skipdirs=target-libiberty for
multiple targets.  Remove checking target_configdirs and
removing target-libiberty but keeping target-libgcc if
otherwise empty.
* Makefile.def (target_modules): Don't add libiberty.
(dependencies): Remove all traces of target-libiberty.
* configure, Makefile.in: Regenerate.
(add missing PR annotation in the ChangeLog entry)

Modified:
trunk/ChangeLog


[Bug bootstrap/23656] Cross-compilation with newlib fails in libiberty

2011-06-22 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23656

--- Comment #3 from Hans-Peter Nilsson  2011-06-22 
21:30:24 UTC ---
Author: hp
Date: Wed Jun 22 21:30:19 2011
New Revision: 175316

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175316
Log:
PR regression/47836
PR bootstrap/23656
PR other/47733
PR bootstrap/49247
PR c/48825
* configure.ac (target_libraries): Remove target-libiberty.
Remove case-statement setting skipdirs=target-libiberty for
multiple targets.  Remove checking target_configdirs and
removing target-libiberty but keeping target-libgcc if
otherwise empty.
* Makefile.def (target_modules): Don't add libiberty.
(dependencies): Remove all traces of target-libiberty.
* configure, Makefile.in: Regenerate.
(add missing PR annotation in the ChangeLog entry)

Modified:
trunk/ChangeLog


[Bug bootstrap/49247] libiberty configure assumes newlib does not supply psignal

2011-06-22 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49247

--- Comment #2 from Hans-Peter Nilsson  2011-06-22 
21:30:25 UTC ---
Author: hp
Date: Wed Jun 22 21:30:19 2011
New Revision: 175316

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175316
Log:
PR regression/47836
PR bootstrap/23656
PR other/47733
PR bootstrap/49247
PR c/48825
* configure.ac (target_libraries): Remove target-libiberty.
Remove case-statement setting skipdirs=target-libiberty for
multiple targets.  Remove checking target_configdirs and
removing target-libiberty but keeping target-libgcc if
otherwise empty.
* Makefile.def (target_modules): Don't add libiberty.
(dependencies): Remove all traces of target-libiberty.
* configure, Makefile.in: Regenerate.
(add missing PR annotation in the ChangeLog entry)

Modified:
trunk/ChangeLog


[Bug other/42980] GCC parallel "make install" failures

2011-06-22 Thread rwild at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42980

--- Comment #15 from Ralf Wildenhues  2011-06-22 
21:35:10 UTC ---
(In reply to comment #14)
> Seems fixed.  If so, please close.  If not, please summarize remaining issues.

The patches in comments #8 and #10 are essentially unfixed, IIRC.  #10 needs an
update to Automake, that then needs propagated to GCC.  This update changes
multilib handling semantics slightly.

I'm not sure if there are other problems with parallel install, but at that
time I didn't see any others at least.


[Bug middle-end/49373] [4.7 Regression] Many testcase failures

2011-06-22 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49373

--- Comment #10 from Hans-Peter Nilsson  2011-06-22 
21:38:23 UTC ---
Author: hp
Date: Wed Jun 22 21:38:20 2011
New Revision: 175317

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175317
Log:
PR middle-end/49373
* g++.dg/torture/pr43879-1_1.C: Xfail for -O1 and above, except -flto.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/torture/pr43879-1_1.C


[Bug target/28854] unwinder reports sentinel frame.

2011-06-22 Thread pluto at agmk dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28854

Pawel Sikora  changed:

   What|Removed |Added

  Known to fail||

--- Comment #3 from Pawel Sikora  2011-06-22 21:48:28 
UTC ---
please close this issue, my last alpha hardware died.


[Bug tree-optimization/24333] missed div optimizations

2011-06-22 Thread pluto at agmk dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24333

--- Comment #7 from Pawel Sikora  2011-06-22 21:56:27 
UTC ---
4.6 still affected:

f:  movl%edi, %edx
movl%edi, %eax
sarl$31, %edx
idivl   %edi
ret


[Bug tree-optimization/28850] missed call -> jmp transformation; redundant unwind stuff with empty finally

2011-06-22 Thread pluto at agmk dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28850

Pawel Sikora  changed:

   What|Removed |Added

  Known to fail||4.6.1

--- Comment #5 from Pawel Sikora  2011-06-22 22:05:16 
UTC ---
call->jmp still not transformed for original testcase.


[Bug fortran/49509] New: cannot promote types for arguments passed by value

2011-06-22 Thread stevenj at alum dot mit.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49509

   Summary: cannot promote types for arguments passed by value
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: stev...@alum.mit.edu


Compile the following test program gfortran, which is a toy example of
iso_c_binding that calls malloc(3).

  program bug

  use, intrinsic :: iso_c_binding
  implicit none
  interface
 type(C_PTR) function malloc(n) bind(C, name='malloc')
   import
   integer(C_SIZE_T), value :: n
 end function malloc
  end interface

  integer, parameter :: n = 3
  integer(C_SIZE_T) sz
  type(C_PTR) p
  p = malloc(n)  ! compiler error, cannot promote argument passed by value
  sz = n ! ... whereas assignment succeeds
  p = malloc(sz)

  end program bug

I obtain the following error:

  promote.f03:15.13:

p = malloc(n) ! compiler error, cannot promote argument type
   1
  Error: Type mismatch in argument 'n' at (1); passed INTEGER(4) to INTEGER(8)

(Similarly with older versions of gcc.)  Note that "n" is passed by value, so
my understanding is that this should act much like the assignment sz = n (which
succeeds): gfortran should automatically promote n to a size_t, like any other
assignment of a narrower type to a wider type.

Please consider applying the same type-promotion rules that are used for
assignments to passing arguments by value.  (I don't have the Fortran 2003
standard handy, but it is hard to believe that the two situations should be
treated differently.)


[Bug middle-end/30506] not sibcalling a function

2011-06-22 Thread pluto at agmk dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30506

Pawel Sikora  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #7 from Pawel Sikora  2011-06-22 22:14:00 
UTC ---
seems to be fixed:

g:  subq$131080, %rsp
movl$131072, %edx
xorl%esi, %esi
movq%rsp, %rdi
callmemset
xorl%edi, %edi
addq$131080, %rsp
jmp f


[Bug target/28854] unwinder reports sentinel frame.

2011-06-22 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28854

Uros Bizjak  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WONTFIX

--- Comment #4 from Uros Bizjak  2011-06-22 22:15:25 
UTC ---
(In reply to comment #3)
> please close this issue, my last alpha hardware died.

Wontfix.


[Bug web/46305] [Regression] Bugzilla: PR comment type of links: Comment links to the wrong bug

2011-06-22 Thread LpSolit at netscape dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46305

Frédéric Buclin  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
 AssignedTo|unassigned at gcc dot   |LpSolit at netscape dot net
   |gnu.org |

--- Comment #4 from Frédéric Buclin  2011-06-22 
22:17:42 UTC ---
I finally managed to fix the problem without waiting for 4.2.


[Bug other/42980] GCC parallel "make install" failures

2011-06-22 Thread gary at intrepid dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42980

--- Comment #16 from Gary Funck  2011-06-22 22:19:07 
UTC ---
(In reply to comment #15) Ralf W. wrote (in part)
> I'm not sure if there are other problems with parallel install, but at that
> time I didn't see any others at least.

Agreed.  Off list, I wrote the following.

On 03/01/10 07:48:09, Gary Funck wrote:
> Ralf,
> 
> I ran 1000 installs and they're all clean.
> Typically, something would've failed in
> that many installs.


[Bug target/49263] SH Target: underutilized "TST #imm, R0" instruction

2011-06-22 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49263

--- Comment #4 from Kazumoto Kojima  2011-06-22 
22:34:04 UTC ---
Yes, that peephole doesn't catch all the patterns which could
make tst #imm8,r0 use.  Perhaps it would be a good idea to get
numbers for the test like CSiBE test with the vanilla and new
insns/peepholes patched compilers.  Something covers 80% of
the possible cases in the usual working set, it would be enough
successful for such a micro-optimization, I guess.

Cost patch looks fine to me.  Could you propose it as a separate
patch on gcc-patches list with an appropriate ChangeLog entry?
When proposing it, please refer how you've tested it.  Also
the numbers got with the patch are highly welcome.

BTW, do you have FSF copyright assignment for your GCC work?
Although the cost patch itself is essentially several lines which
doesn't require copyright assignment, the other changes you've
proposed clearly require the paper work, I think.


[Bug target/49468] SH Target: inefficient integer abs code

2011-06-22 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49468

Kazumoto Kojima  changed:

   What|Removed |Added

   Severity|normal  |enhancement

--- Comment #3 from Kazumoto Kojima  2011-06-22 
22:37:28 UTC ---
On sh4-unknown-linux-gnu, this patch causes two new failures on
libstdc++ testsuite

FAIL: 27_io/basic_ostream/inserters_arithmetic/char/7.cc execution test
FAIL: 27_io/basic_ostream/inserters_arithmetic/wchar_t/7.cc execution test

I can't find any differences between generated codes for those
test cases by compilers with/without your patch and the failures
go away if the tests are running with libstdc++ library built
with the unpatched compiler.
So it seems that something in libstdc++ library is miscompiled.
Weired and hard to see what is going on, ATM.


[Bug web/46305] [Regression] Bugzilla: PR comment type of links: Comment links to the wrong bug

2011-06-22 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46305

--- Comment #5 from Jonathan Wakely  2011-06-22 
22:39:31 UTC ---
nice, thanks!


[Bug c++/49510] New: bitshift warnings

2011-06-22 Thread claytongdavis at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49510

   Summary: bitshift warnings
   Product: gcc
   Version: 4.5.2
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: claytongda...@gmail.com


This is a request to improve the warnings for bitshifts where the right operand
is negative or >= the size of the left operand.  I am aware that this is
undefined behavior, but a warning would be nice in a case like the one included
below.  GCC implements a cyclic bitshift instead.

$ more gcc_bitshift.C 
#include 

int main()
{
  int shift = 32;
  std::cout<<"0x>>32 = "<<(0x>>shift)<>(-1) = "<<(0x>>shift)<>32 = 4294967295
1<<32 = 1
0x>>(-1) = 1
1<<(-1) = -2147483648

$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
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 ada/49511] New: [4.6 Regression] acats test setup fails on HP-UX using posix shell

2011-06-22 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49511

   Summary: [4.6 Regression] acats test setup fails on HP-UX using
posix shell
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: dang...@gcc.gnu.org
CC: r...@gcc.gnu.org
  Host: hppa1.1-hp-hpux10.20
Target: hppa1.1-hp-hpux10.20
 Build: hppa1.1-hp-hpux10.20


make[3]: Leaving directory `/xxx/gnu/gcc/objdir/gcc'
dirname: extra operand `is'
Try `dirname --help' for more information.
dirname: extra operand `is'
Try `dirname --help' for more information.
Test Run By dave on Wed Jun 22 20:01:45 EDT 2011
=== acats configuration ===
target gcc is /xxx/gnu/gcc/objdir/gcc/xgcc -B/xxx/gnu/gcc/objdir/gcc/
Reading specs from /xxx/gnu/gcc/objdir/gcc/specs
COLLECT_GCC=/xxx/gnu/gcc/objdir/gcc/xgcc
COLLECT_LTO_WRAPPER=/xxx/gnu/gcc/objdir/gcc/lto-wrapper Target:
hppa1.1-hp-hpux10.20 Configured with: ../gcc/configure --with-gnu-as
--with-as=/usr/local/bin/as --enable-shared --prefix=/opt/gnu/gcc/gcc-4.6
--with-gmp=/opt/gnu/gcc/gmp --enable-debug=no --disable-nls
--enable-languages=c,c++,objc,fortran,ada,obj-c++ Thread model: single gcc
version 4.6.1 20110619 (prerelease) [gcc-4_6-branch revision 175188] (GCC)
host=hppa1.1-hp-hpux10.20
target=hppa1.1-hp-hpux10.20
gnatmake is /xxx/gnu/gcc/objdir/gcc/gnatmake

=== acats support ===
Generating support files...fatal error, run-time library not installed
correctly
cannot locate file system.ads
gnatmake: *** make failed.
 Failed to compile macrosub
make[2]: *** [check-acats] Error 1

Problem was introduce in revision 158994.

The problem is type invokes the sh-posix shell and it aliases type
to 'whence -v'.

599 (hiauly1)dave> /bin/sh
$ whence -v gnatmake
gnatmake is /opt/gnu/gcc/gcc-4.5/bin/gnatmake
$ whence gnatmake
/opt/gnu/gcc/gcc-4.5/bin/gnatmake

It appears the same would also occur on HP-UX 11.X but there I have
always used bash as the CONFIG_SHELL.

-bash-3.2$ type -p ls
/usr/bin/ls
-bash-3.2$ /usr/bin/sh
$ type -p ls
ls is /usr/bin/ls


[Bug fortran/49509] cannot promote types for arguments passed by value

2011-06-22 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49509

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 CC||kargl at gcc dot gnu.org

--- Comment #1 from kargl at gcc dot gnu.org 2011-06-23 02:10:32 UTC ---
I believe your code is simply invalid on some targets.

You need to change
  integer, parameter :: n = 3
to
  integer(c_size_t), parameter :: n = 3

The matching of type, kind, and rank of actual
and dummy argument is a requirement of the Fortran
standard.  This requirement is placed on the 
programmer.  What you want is explicitly prohibited
by the standard.

12.4.1.2 Actual arguments associated with dummy data objects

If a dummy argument is neither allocatable nor a pointer,
it shall be type compatible (5.1.1.2) with the associated
actual argument.

The type parameter values of the actual argument shall agree
with the corresponding ones of the dummy argument that are
not assumed or deferred, except for the case of the character
length parameter of an actual argument of type default character
associated with a dummy argument that is not assumed shape.

This should probably be closed as WONTFIX, but I'll let 
other gfortran maintainers weigh in on the subject.


[Bug bootstrap/49383] [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p

2011-06-22 Thread amodra at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49383

Alan Modra  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |amodra at gmail dot com
   |gnu.org |


[Bug bootstrap/49383] [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p

2011-06-22 Thread amodra at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49383

--- Comment #6 from Alan Modra  2011-06-23 02:21:03 
UTC ---
Author: amodra
Date: Thu Jun 23 02:21:01 2011
New Revision: 175328

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=175328
Log:
PR bootstrap/49383
* config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
invocation for 2011-06-09 changes.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000.c


[Bug bootstrap/49383] [4.7 regression] powerpc64-linux bootstrap failure due to ice in cgraph_only_called_directly_p

2011-06-22 Thread amodra at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49383

Alan Modra  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2011-06/msg01735.htm
   ||l
 Resolution||FIXED

--- Comment #7 from Alan Modra  2011-06-23 02:22:31 
UTC ---
Patch applied


[Bug fortran/49509] cannot promote types for arguments passed by value

2011-06-22 Thread stevenj at alum dot mit.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49509

--- Comment #3 from stevenj at alum dot mit.edu 2011-06-23 03:00:47 UTC ---
> Hence, the familiar old requirements of the Fortran standard are irrelevant.
> The question is, what does the Fortran 2003 standard require for passing by
> value, which is I believe is NEW IN FORTRAN 2003, and is SPECIFIC TO BIND(C)
> functions.

Just checked, and the VALUE attribute it is indeed new in Fortran 2003, but it
is not specific to bind(C).

But the point remains that your usual understanding of Fortran semantics does
not apply here.


[Bug fortran/49509] cannot promote types for arguments passed by value

2011-06-22 Thread stevenj at alum dot mit.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49509

--- Comment #2 from stevenj at alum dot mit.edu 2011-06-23 02:54:50 UTC ---
You're missing the point.  Traditionally in Fortran, all arguments were passed
*by reference*, in which case it is clearly a requirement that actual parameter
match the formal parameter's type exactly, because the formal parameter refers
to the *same memory* as the actual parameter.

However, in this case we are passing by value.  This should act just like an
assignment of the formal parameter to the actual parameter (as opposed to
having them be the *same* object as in passing by reference).  Hence, just like
an assignment statement the compiler should be able to assign a narrower
integer type to a wider one.

Hence, the familiar old requirements of the Fortran standard are irrelevant.
The question is, what does the Fortran 2003 standard require for passing by
value, which is I believe is NEW IN FORTRAN 2003, and is SPECIFIC TO BIND(C)
functions.


[Bug middle-end/35561] Promote written once local aggregates to static

2011-06-22 Thread svfuerst at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35561

Steven Fuerst  changed:

   What|Removed |Added

 CC||svfuerst at gmail dot com

--- Comment #6 from Steven Fuerst  2011-06-23 
03:14:13 UTC ---
Still a problem in 4.6 at all optimization levels.

int foo1(int x)
{
int a[] = {1,4,7,9};

return a[x];
}


int foo2(int x)
{
static int a[] = {1,4,7,9};

return a[x];
}

foo1() creates the array on the stack using a series of mov instructions,
whereas the code generated for foo2() is much nicer.


[Bug middle-end/35561] Promote written once local aggregates to static

2011-06-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35561

--- Comment #7 from Andrew Pinski  2011-06-23 
03:17:58 UTC ---
At one point this was done but it was found it violated C rules.  I can find
the bug report but I am being lazy right now but it comes down to if it was
promoted then you  have issues if it escaped.  Oh and technically a[i] does
take the address of a.


[Bug fortran/49509] cannot promote types for arguments passed by value

2011-06-22 Thread stevenj at alum dot mit.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49509

--- Comment #4 from stevenj at alum dot mit.edu 2011-06-23 03:23:06 UTC ---
Section 12.4.1.2 of Fortran 2003 standard:
"If the dummy argument has the VALUE attribute it becomes associated with a
definable anonymous data object whose initial value is that of the actual
argument."

Furthermore, NOTE 12.22 says:
"If the VALUE attribute is specified, the effect is as if the actual argument
is assigned to a temporary, and the temporary is then argument associated with
the dummy argument.  The actual mechanism by which this happens is determined
by the processor."

Thus, if you have a subroutine foo(x) with T, VALUE :: X, then the standard
requires that 

  call foo(y)

have the same "effect as if" you did

 T :: temp
 temp = y
 call foo(temp)

with pass by reference.  But in that case, it would be valid to assign y to a
wider type T.

This implicitly contravenes the wording earlier in the section that the dummy
and actual argument be "type compatible (5.1.1.2)".   It is unfortunate that it
is not explicit on this point, however -- one could argue that there is a bug
in the standard here.


[Bug fortran/49509] cannot promote types for arguments passed by value

2011-06-22 Thread sgk at troutmask dot apl.washington.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49509

--- Comment #5 from Steve Kargl  
2011-06-23 04:01:49 UTC ---
On Thu, Jun 23, 2011 at 02:55:20AM +, stevenj at alum dot mit.edu wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49509
> 
> --- Comment #2 from stevenj at alum dot mit.edu 2011-06-23 02:54:50 UTC ---
> You're missing the point.

Ah, no.  I believe I understand what you want.

> Traditionally in Fortran, all arguments were passed *by reference*,
> in which case it is clearly a requirement that actual parameter
> match the formal parameter's type exactly, because the formal parameter refers
> to the *same memory* as the actual parameter.

Traditionally, the standard was silent on the passing
mechanism.  It could have been accomplished by chipmunks.

> However, in this case we are passing by value.  This should act
> just like an assignment of the formal parameter to the actual
> parameter (as opposed to having them be the *same* object as
> in passing by reference).  Hence, just like an assignment statement
> the compiler should be able to assign a narrower
> integer type to a wider one.

That's not what the standard mandates.


[Bug fortran/49509] cannot promote types for arguments passed by value

2011-06-22 Thread sgk at troutmask dot apl.washington.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49509

--- Comment #6 from Steve Kargl  
2011-06-23 04:02:38 UTC ---
On Thu, Jun 23, 2011 at 03:01:04AM +, stevenj at alum dot mit.edu wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49509
> 
> --- Comment #3 from stevenj at alum dot mit.edu 2011-06-23 03:00:47 UTC ---
> > Hence, the familiar old requirements of the Fortran standard are irrelevant.
> > The question is, what does the Fortran 2003 standard require for passing by
> > value, which is I believe is NEW IN FORTRAN 2003, and is SPECIFIC TO BIND(C)
> > functions.
> 
> Just checked, and the VALUE attribute it is indeed new in Fortran 2003, but it
> is not specific to bind(C).
> 
> But the point remains that your usual understanding of Fortran semantics does
> not apply here.
> 

Sorry, but I believe the semantics do apply.

I already fixed your toy code.


[Bug fortran/49509] cannot promote types for arguments passed by value

2011-06-22 Thread sgk at troutmask dot apl.washington.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49509

--- Comment #7 from Steve Kargl  
2011-06-23 04:13:49 UTC ---
On Thu, Jun 23, 2011 at 03:23:26AM +, stevenj at alum dot mit.edu wrote:
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49509
> 
> --- Comment #4 from stevenj at alum dot mit.edu 2011-06-23 03:23:06 UTC ---
> Section 12.4.1.2 of Fortran 2003 standard:
> "If the dummy argument has the VALUE attribute it becomes associated with a
> definable anonymous data object whose initial value is that of the actual
> argument."

I believe you are misintrepreting the meaning of "defineable
anonymous data object".  This does not mean that TKR does 
not apply.  It means, well, the data object is definable
and it is anonymous to the calling procedure.  That is, the
calling procedure has no means to getting at anything that
might affect the value of the dummy argument.


> Furthermore, NOTE 12.22 says:

NOTEs in the standard are non-normative text.

> "If the VALUE attribute is specified, the effect is as if the actual argument
> is assigned to a temporary, and the temporary is then argument associated with
> the dummy argument.  The actual mechanism by which this happens is determined
> by the processor."

This note does not remove the requirement of TKR.

> It is unfortunate that it  is not explicit on this point,
> however -- one could argue that there is a bug in the
> standard here.

Feel free to post to comp.lang.c about the issue.  The
technical editor of F2003 routinely answers questions 
about the standard as do others who are current members
of J3 or former members of J3.


[Bug middle-end/49512] New: FAIL: gcc.dg/tree-ssa/asm-1.c

2011-06-22 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49512

   Summary: FAIL: gcc.dg/tree-ssa/asm-1.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


On Linux/x86-64, revision 175284 gave

FAIL: gcc.dg/tree-ssa/asm-1.c scan-tree-dump-times optimized "63" 1

Revision 175251 is OK.


[Bug fortran/49509] cannot promote types for arguments passed by value

2011-06-22 Thread sgk at troutmask dot apl.washington.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49509

--- Comment #8 from Steve Kargl  
2011-06-23 04:22:51 UTC ---
On Wed, Jun 22, 2011 at 09:13:19PM -0700, Steve Kargl wrote:
> 
> Feel free to post to comp.lang.c about the issue.  The
> technical editor of F2003 routinely answers questions 
> about the standard as do others who are current members
> of J3 or former members of J3.
> 

Dang.  That should have been comp.lang.fortran.


[Bug middle-end/49512] [4.7 Regression] FAIL: gcc.dg/tree-ssa/asm-1.c

2011-06-22 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49512

H.J. Lu  changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0
Summary|FAIL:   |[4.7 Regression] FAIL:
   |gcc.dg/tree-ssa/asm-1.c |gcc.dg/tree-ssa/asm-1.c

--- Comment #1 from H.J. Lu  2011-06-23 05:06:17 
UTC ---
It failed with -march=core2.


[Bug middle-end/49512] [4.7 Regression] FAIL: gcc.dg/tree-ssa/asm-1.c

2011-06-22 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49512

H.J. Lu  changed:

   What|Removed |Added

 Target||x86_64
 CC||bernds at gcc dot gnu.org

--- Comment #2 from H.J. Lu  2011-06-23 05:38:10 
UTC ---
It is caused by revision 175261:

http://gcc.gnu.org/ml/gcc-cvs/2011-06/msg00752.html

Executing on host: /export/regression/rrs/175261/bld/gcc/xgcc
-B/export/regression/rrs/175261/bld/gcc/
/export/regression/rrs/175261/src/gcc/testsuite/gcc.dg/tree-ssa/asm-1.c   -O
-fdump-tree-optimized -S  -march=core2 -o asm-1.s(timeout = 300)
spawn -ignore SIGHUP /export/regression/rrs/175261/bld/gcc/xgcc
-B/export/regression/rrs/175261/bld/gcc/
/export/regression/rrs/175261/src/gcc/testsuite/gcc.dg/tree-ssa/asm-1.c -O
-fdump-tree-optimized -S -march=core2 -o asm-1.s^M
PASS: gcc.dg/tree-ssa/asm-1.c (test for excess errors)
PASS: gcc.dg/tree-ssa/asm-1.c scan-tree-dump-times optimized "42" 1
FAIL: gcc.dg/tree-ssa/asm-1.c scan-tree-dump-times optimized "63" 1


  1   2   >