[Bug target/43751] dsymutil is not called for fortran and, under some circumstances not for other FEs.

2010-12-10 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43751

--- Comment #18 from Iain Sandoe iains at gcc dot gnu.org 2010-12-10 11:01:10 
UTC ---
Author: iains
Date: Fri Dec 10 10:40:43 2010
New Revision: 167683

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167683
Log:

dsymutil enabled for Fortran.

2010-12-10  Jack Howarth  howa...@bromo.med.uc.edu
Iain Sandoe  ia...@gcc.gnu.org

PR 43751/target

gcc:
* config/darwin9.h (DSYMUTIL_SPEC): Add fortran source types.

testsuite:

* lib/prune.exp: Prune dsymutil warnings.

libstadc++-v3:

* testsuite/lib/prune.exp: Prune dsymutil warnings.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/darwin9.h
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/lib/prune.exp
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/testsuite/lib/prune.exp


[Bug fortran/46540] libquadmath: Implement --disable-libquadmath

2010-12-10 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46540

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #5 from Tobias Burnus burnus at gcc dot gnu.org 2010-12-10 
12:41:14 UTC ---
Close as FIXED.

You now have:
  --disable-libquadmath  to disable the configure and build of libquadmath/
  --disable-libquadmath-support  to disable the __float128-based REAL(16)
support in gfortran and the dependence of libgfortran on libquadmath.

The two options are can be used independently from each other; if you use only
the first one (and build Fortran), you have to make a (the system's)
libquadmath library available to configure.


[Bug fortran/46540] libquadmath: Implement --disable-libquadmath

2010-12-10 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46540

--- Comment #4 from Tobias Burnus burnus at gcc dot gnu.org 2010-12-10 
11:02:22 UTC ---
Author: burnus
Date: Fri Dec 10 10:55:56 2010
New Revision: 167684

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167684
Log:
/
2010-12-10  Tobias Burnus  bur...@net-b.de

PR fortran/46540
* configure.ac: Add --disable-libquadmath and
--disable-libquadmath-support.
* configure: Regenerate.
gcc/
2010-12-10  Tobias Burnus  bur...@net-b.de

PR fortran/46540
* configure.ac: Handle --disable-libquadmath-support.
* doc/install.texi: Document --disable-libquadmath and
--disable-libquadmath-support
* configure: Regenerate.
* config.in: Regenerate.

gcc/fortran/
2010-12-10  Tobias Burnus  bur...@net-b.de

PR fortran/46540
* trans-types.c (gfc_init_kinds): Handle
--disable-libquadmath-support.

libgfortran/
2010-12-10  Tobias Burnus  bur...@net-b.de

PR fortran/46540
* acinclude.m4 (LIBGFOR_CHECK_FLOAT128): Honour
--disable-libquadmath-support.
* configure.ac: Handle --disable-libquadmath-support.
* configure: Regenerate.


Modified:
trunk/ChangeLog
trunk/configure
trunk/configure.ac
trunk/gcc/ChangeLog
trunk/gcc/config.in
trunk/gcc/configure
trunk/gcc/configure.ac
trunk/gcc/doc/install.texi
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-types.c
trunk/libgfortran/ChangeLog
trunk/libgfortran/acinclude.m4
trunk/libgfortran/configure
trunk/libgfortran/configure.ac


[Bug tree-optimization/46864] [4.5/4.6 Regression] ICE: verify_stmts failed: statement marked for throw, but doesn't with -fnon-call-exceptions

2010-12-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46864

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-10 
12:42:20 UTC ---
Author: jakub
Date: Fri Dec 10 12:42:12 2010
New Revision: 167685

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167685
Log:
PR tree-optimization/46864
* tree-ssa-loop-im.c (loop_suitable_for_sm): Return false even
when there are EDGE_EH exit edges.

* g++.dg/opt/pr46864.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/opt/pr46864.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-loop-im.c


[Bug rtl-optimization/46865] [4.3/4.4/4.5/4.6 Regression] Using -save-temps (or ccache, distcc) produces different results with multiline macros containing asm code

2010-12-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46865

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-10 
12:43:49 UTC ---
Author: jakub
Date: Fri Dec 10 12:43:45 2010
New Revision: 167686

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167686
Log:
PR rtl-optimization/46865
* rtl.c (rtx_equal_p_cb, rtx_equal_p): For last operand of
ASM_OPERANDS and ASM_INPUT if integers are different,
call locator_eq.
* jump.c (rtx_renumbered_equal_p): Likewise.

* gcc.target/i386/pr46865-1.c: New test.
* gcc.target/i386/pr46865-2.c: New test.

Added:
trunk/gcc/testsuite/gcc.target/i386/pr46865-1.c
trunk/gcc/testsuite/gcc.target/i386/pr46865-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/jump.c
trunk/gcc/rtl.c
trunk/gcc/testsuite/ChangeLog


[Bug tree-optimization/46864] [4.5 Regression] ICE: verify_stmts failed: statement marked for throw, but doesn't with -fnon-call-exceptions

2010-12-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46864

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.6.0
Summary|[4.5/4.6 Regression] ICE:   |[4.5 Regression] ICE:
   |verify_stmts failed:|verify_stmts failed:
   |statement marked for throw, |statement marked for throw,
   |but doesn't with|but doesn't with
   |-fnon-call-exceptions   |-fnon-call-exceptions
  Known to fail|4.6.0   |

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-10 
12:45:26 UTC ---
Fixed on the trunk so far.


[Bug rtl-optimization/46865] [4.3/4.4/4.5 Regression] Using -save-temps (or ccache, distcc) produces different results with multiline macros containing asm code

2010-12-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46865

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.6.0
Summary|[4.3/4.4/4.5/4.6|[4.3/4.4/4.5 Regression]
   |Regression] Using   |Using -save-temps (or
   |-save-temps (or ccache, |ccache, distcc) produces
   |distcc) produces different  |different results with
   |results with multiline  |multiline macros containing
   |macros containing asm code  |asm code
  Known to fail|4.6.0   |

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-10 
12:46:41 UTC ---
Fixed on the trunk so far.


[Bug fortran/46884] New: Use of charlen after free

2010-12-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46884

   Summary: Use of charlen after free
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: ja...@gcc.gnu.org
ReportedBy: ja...@gcc.gnu.org


On:
  SUBROUTINE F
  IMPLICIT CHARACTER*12 (C)
  CALL G(C1)
  CALL H(C1(1:4))
  END
I get:
valgrind -q ./f951 -quiet r.f
==15321== Invalid read of size 8
==15321==at 0x51F16A: resolve_substring (resolve.c:4593)
==15321==by 0x51F59F: resolve_ref (resolve.c:4706)
==15321==by 0x51FB21: resolve_variable (resolve.c:4919)
==15321==by 0x521FAF: gfc_resolve_expr (resolve.c:6020)
==15321==by 0x518918: resolve_actual_arglist (resolve.c:1556)
==15321==by 0x51CAE5: resolve_call (resolve.c:3541)
==15321==by 0x527DB7: resolve_code (resolve.c:9000)
==15321==by 0x531A39: resolve_codes (resolve.c:13381)
==15321==by 0x531B37: gfc_resolve (resolve.c:13408)
==15321==by 0x50F3EE: resolve_all_program_units (parse.c:4201)
==15321==by 0x50FA6F: gfc_parse_file (parse.c:4430)
==15321==by 0x5542A3: gfc_be_parse_file (f95-lang.c:250)
==15321==  Address 0x535f0d0 is 0 bytes inside a block of size 48 free'd
==15321==at 0x4A05187: free (vg_replace_malloc.c:325)
==15321==by 0x4F9F05: gfc_free (misc.c:51)
==15321==by 0x54B644: gfc_free_charlen (symbol.c:3253)
==15321==by 0x50BC85: reject_statement (parse.c:1655)
==15321==by 0x508C7E: match_word (parse.c:70)
==15321==by 0x509450: decode_statement (parse.c:280)
==15321==by 0x50AFA4: next_fixed (parse.c:864)
==15321==by 0x50B0A0: next_statement (parse.c:913)
==15321==by 0x50E7B7: parse_executable (parse.c:3737)
==15321==by 0x50EE31: parse_progunit (parse.c:3955)
==15321==by 0x50F78D: gfc_parse_file (parse.c:4327)
==15321==by 0x5542A3: gfc_be_parse_file (f95-lang.c:250)
==15321== 

with a larger testcase that actually leads to ICE even without valgrind.


[Bug testsuite/35710] FAIL: gcc.dg/vect/section-anchors-pr27770.c (test for excess errors)

2010-12-10 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35710

--- Comment #10 from Iain Sandoe iains at gcc dot gnu.org 2010-12-10 12:54:19 
UTC ---
(In reply to comment #9)

 This pr is fixed in trunk. Do you plan to backport it to 4.5 or should I close
 it as fixed?

As things stand, I suspect that it's better to concentrate our efforts on
making 4.6 fully functional on Darwin.

However, if 
   (a) all the changes are eligible (i.e. covered by 4.5-regression or
pre-existing bugs) and
   (b) someone wants to do the back-port merge, 

I will be happy to review/test and commit it to 4.5 ...


[Bug target/46882] Wrong code generated for arm with -O2

2010-12-10 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46882

--- Comment #1 from Mikael Pettersson mikpe at it dot uu.se 2010-12-10 
13:02:30 UTC ---
The test case looks familiar.  Is this a re-send of a previous bug report?


[Bug fortran/46884] Use of charlen after free

2010-12-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46884

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-10 
13:02:59 UTC ---
Created attachment 22705
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22705
gcc46-pr46884.patch

Untested fix.


[Bug target/46883] GCC ICE with error: unrecognizable insn

2010-12-10 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46883

Mikael Pettersson mikpe at it dot uu.se changed:

   What|Removed |Added

 CC||mikpe at it dot uu.se

--- Comment #1 from Mikael Pettersson mikpe at it dot uu.se 2010-12-10 
13:04:05 UTC ---
I see these ICEs too with gcc-4.6-20101127 on armv5tel-linux-gnueabi.


[Bug lto/41159] [LTO] ICE in insert_value_copy_on_edge, at tree-outof-ssa.c:225

2010-12-10 Thread ixt at nm dot ru
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41159

Sergey Gusarov ixt at nm dot ru changed:

   What|Removed |Added

 CC||ixt at nm dot ru

--- Comment #8 from Sergey Gusarov ixt at nm dot ru 2010-12-10 13:09:33 UTC 
---
Reproduced with gcc 4.5.1 arm-eabi crosscompiler


[Bug rtl-optimization/46865] [4.3/4.4/4.5 Regression] Using -save-temps (or ccache, distcc) produces different results with multiline macros containing asm code

2010-12-10 Thread juha.kallioinen at nokia dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46865

--- Comment #6 from Juha Kallioinen juha.kallioinen at nokia dot com 
2010-12-10 13:14:14 UTC ---
Thanks for the quick work!

How does this get backported to 4.3 or 4.4 then? I can see the patch directly
applies to 4.5.1, but not to 4.4.5 (rtl.c: rtx_equal_p is too different in it). 

If this backporting stuff is something I should just know then don't waste your
time explaining it in lenght, I can dig around :)


[Bug c++/46701] [C++0x] ICE in build_data_member_initialization, at cp/semantics.c:5503

2010-12-10 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46701

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

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

--- Comment #13 from Paolo Carlini paolo.carlini at oracle dot com 2010-12-10 
13:17:54 UTC ---
By the way, here and in c++/46877, the ICEs in library code - which I would
consider rather serious because prevent people from testing in C++0x mode quite
common uses of std::map - occur in a std::pair constructor decorated with
constexpr in a way not conforming to the letter of n3225. Thus, if we can't
really go through such issue in the constexpr code for 4.6.0 - because too
risky, or whatelse - I would propose removing for now the constexpr specifiers
from std::pair. Jason, what do you think?


[Bug c++/46868] [4.6 Regression] ICE: SIGSEGV splay_tree_splay (splay-tree.c:149) on invalid code

2010-12-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46868

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P4
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.12.10 13:20:50
 CC||jakub at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-10 
13:20:50 UTC ---
input_location is UNKNOWN_LOCATION, so input_filename is NULL and thus
get_fileinfo crashes.


[Bug bootstrap/46876] libgo fails to compile on libtemplate.so

2010-12-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46876

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||iant at google dot com

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2010-12-10 
13:21:33 UTC ---
I think this has been fixed meanwhile.  Ian?


[Bug tree-optimization/46863] [4.6 Regression] Bogus memmove folding (?)

2010-12-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46863

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2010-12-10 
13:22:02 UTC ---
Yep.


[Bug bootstrap/46812] Linux libgo compilation fails when a libnet is already installed

2010-12-10 Thread andi-gcc at firstfloor dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46812

Andi Kleen andi-gcc at firstfloor dot org changed:

   What|Removed |Added

 Status|RESOLVED|VERIFIED

--- Comment #7 from Andi Kleen andi-gcc at firstfloor dot org 2010-12-10 
13:23:08 UTC ---
Yes works now. Thanks.


[Bug fortran/46842] [4.6 Regression] wrong results with MATHMUL(..., TRANSPOSE (func ())) -- 465.tonto test run miscompares

2010-12-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46842

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1

--- Comment #18 from Richard Guenther rguenth at gcc dot gnu.org 2010-12-10 
13:24:08 UTC ---
As this affects SPEC CPU it should be P1, even though Fortran isn't release
critical (something we might want to change).


[Bug tree-optimization/46879] [4.6 Regression] ICE: in separate_decls_in_region_debug_bind, at tree-parloops.c:778 with -flto -ftree-parallelize-loops -gdwarf-3

2010-12-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46879

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

  Component|lto |tree-optimization
   Target Milestone|--- |4.6.0


[Bug target/46883] GCC ICE with error: unrecognizable insn

2010-12-10 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46883

Ramana Radhakrishnan ramana at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.12.10 13:25:49
 CC||ramana at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #2 from Ramana Radhakrishnan ramana at gcc dot gnu.org 2010-12-10 
13:25:49 UTC ---
This seems to appear at -march=armv5te .


[Bug tree-optimization/46880] [4.6 Regression] g++.dg/other/pr40446.C FAILs with custom flags

2010-12-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46880

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.6.0


[Bug target/46883] GCC ICE with error: unrecognizable insn

2010-12-10 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46883

Ramana Radhakrishnan ramana at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
   Target Milestone|--- |4.6.0


[Bug target/46882] Wrong code generated for arm with -O2

2010-12-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46882

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2010-12-10 
13:29:12 UTC ---
.

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


[Bug target/46693] incorrect code generation with -O2 optimization enabled

2010-12-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46693

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||raj.khem at gmail dot com

--- Comment #8 from Richard Guenther rguenth at gcc dot gnu.org 2010-12-10 
13:29:12 UTC ---
*** Bug 46882 has been marked as a duplicate of this bug. ***


[Bug target/46881] arm_preferred_rename_class uses keyword class as parameter name

2010-12-10 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46881

Ramana Radhakrishnan ramana at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||ramana at gcc dot gnu.org
 Resolution||FIXED
   Target Milestone|--- |4.6.0

--- Comment #2 from Ramana Radhakrishnan ramana at gcc dot gnu.org 2010-12-10 
13:30:24 UTC ---
And now fixed.


[Bug middle-end/46885] New: [4.6 Regression] ICE: in gsi_insert_seq_nodes_after, at gimple-iterator.c:251 with -ftree-parallelize-loops -g

2010-12-10 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46885

   Summary: [4.6 Regression] ICE: in gsi_insert_seq_nodes_after,
at gimple-iterator.c:251 with -ftree-parallelize-loops
-g
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz
  Host: x86_64-pc-linux-gnu
Target: x86_64-pc-linux-gnu


Created attachment 22706
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22706
reduced testcase

Compiler output:
$ gcc -O -ftree-parallelize-loops=4 -g -fno-tree-dominator-opts
-funswitch-loops pr46885.c 
pr46885.c: In function 'foo':
pr46885.c:8:1: internal compiler error: in gsi_insert_seq_nodes_after, at
gimple-iterator.c:251
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Tested revisions:
r167643 - crash
r161659 - crash
r158095 - OK
4.5 r166509 - OK


[Bug fortran/46842] [4.6 Regression] wrong results with MATHMUL(..., TRANSPOSE (func ())) -- 465.tonto test run miscompares

2010-12-10 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46842

--- Comment #19 from Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch 
2010-12-10 13:37:32 UTC ---
(In reply to comment #18)
 Fortran isn't release
 critical (something we might want to change).

yes ... please :-)


[Bug debug/46867] [4.6 Regression] ICE: in emit_note_insn_var_location, at var-tracking.c:7325 with -O -g

2010-12-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46867

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-10 
14:15:00 UTC ---
Apparently the trick with removing REG_POINTER/MEM_POINTER and simplifying
again doesn't work, because swap_commutative_operands_p will not force any
change if the precedence is the same and so doesn't force any canonical order
of operands.
I guess I'll just kill the verification code.


[Bug middle-end/46674] [4.6 Regression] Weak alias is mistakenly optimized away

2010-12-10 Thread davek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46674

--- Comment #10 from Dave Korn davek at gcc dot gnu.org 2010-12-10 14:29:03 
UTC ---
Author: davek
Date: Fri Dec 10 14:28:58 2010
New Revision: 167688

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167688
Log:
gcc/ChangeLog:

PR middle-end/46674
PR lto/43157
* target.def (mangle_assembler_name): New target asm_out hook.
* targhooks.c (default_mangle_assembler_name): Add default hook
implementation.
* targhooks.h (default_mangle_assembler_name): Add prototype.
* lto-symtab.c (lto_symtab_register_decl): Use new hook when
processing DECL_ASSEMBLER_NAMEs for lto symtabs.
(lto_symtab_get_resolution): Likewise.
(lto_cgraph_replace_node): Likewise.
(lto_symtab_prevailing_decl): Likewise.
* lto-streamer-out.c (write_symbol): Likewise.
* doc/tm.texi.in (TARGET_MANGLE_ASSEMBLER_NAME): Add @hook directive.
* doc/tm.texi: Regenerate.
* config/i386/cygming.h (TARGET_MANGLE_ASSEMBLER_NAME): Define to
point at i386_pe_mangle_assembler_name.
* config/i386/winnt.c (i386_pe_mangle_assembler_name): New function.
* config/i386/i386-protos.h (i386_pe_mangle_assembler_name): Add
prototype.

lto-plugin/ChangeLog:

PR middle-end/46674
PR lto/43157
* configure.ac (SYM_STYLE): Don't AC_DEFINE.
* lto-plugin.c (sym_style): Don't use it; default to ss_none.
* configure: Regenerate.
* config.h.in: Likewise.

gcc/testsuite/ChangeLog:

PR middle-end/46674
PR lto/43157
* gcc.dg/pr43157.c: New file.


Added:
trunk/gcc/testsuite/gcc.dg/pr43157.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/cygming.h
trunk/gcc/config/i386/i386-protos.h
trunk/gcc/config/i386/winnt.c
trunk/gcc/doc/tm.texi
trunk/gcc/doc/tm.texi.in
trunk/gcc/lto-streamer-out.c
trunk/gcc/lto-symtab.c
trunk/gcc/target.def
trunk/gcc/targhooks.c
trunk/gcc/targhooks.h
trunk/gcc/testsuite/ChangeLog
trunk/lto-plugin/ChangeLog
trunk/lto-plugin/config.h.in
trunk/lto-plugin/configure
trunk/lto-plugin/configure.ac
trunk/lto-plugin/lto-plugin.c


[Bug lto/43157] Segmentation fault in aggregate_value_p, asm aliases do not work

2010-12-10 Thread davek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43157

--- Comment #8 from Dave Korn davek at gcc dot gnu.org 2010-12-10 14:29:03 
UTC ---
Author: davek
Date: Fri Dec 10 14:28:58 2010
New Revision: 167688

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167688
Log:
gcc/ChangeLog:

PR middle-end/46674
PR lto/43157
* target.def (mangle_assembler_name): New target asm_out hook.
* targhooks.c (default_mangle_assembler_name): Add default hook
implementation.
* targhooks.h (default_mangle_assembler_name): Add prototype.
* lto-symtab.c (lto_symtab_register_decl): Use new hook when
processing DECL_ASSEMBLER_NAMEs for lto symtabs.
(lto_symtab_get_resolution): Likewise.
(lto_cgraph_replace_node): Likewise.
(lto_symtab_prevailing_decl): Likewise.
* lto-streamer-out.c (write_symbol): Likewise.
* doc/tm.texi.in (TARGET_MANGLE_ASSEMBLER_NAME): Add @hook directive.
* doc/tm.texi: Regenerate.
* config/i386/cygming.h (TARGET_MANGLE_ASSEMBLER_NAME): Define to
point at i386_pe_mangle_assembler_name.
* config/i386/winnt.c (i386_pe_mangle_assembler_name): New function.
* config/i386/i386-protos.h (i386_pe_mangle_assembler_name): Add
prototype.

lto-plugin/ChangeLog:

PR middle-end/46674
PR lto/43157
* configure.ac (SYM_STYLE): Don't AC_DEFINE.
* lto-plugin.c (sym_style): Don't use it; default to ss_none.
* configure: Regenerate.
* config.h.in: Likewise.

gcc/testsuite/ChangeLog:

PR middle-end/46674
PR lto/43157
* gcc.dg/pr43157.c: New file.


Added:
trunk/gcc/testsuite/gcc.dg/pr43157.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/cygming.h
trunk/gcc/config/i386/i386-protos.h
trunk/gcc/config/i386/winnt.c
trunk/gcc/doc/tm.texi
trunk/gcc/doc/tm.texi.in
trunk/gcc/lto-streamer-out.c
trunk/gcc/lto-symtab.c
trunk/gcc/target.def
trunk/gcc/targhooks.c
trunk/gcc/targhooks.h
trunk/gcc/testsuite/ChangeLog
trunk/lto-plugin/ChangeLog
trunk/lto-plugin/config.h.in
trunk/lto-plugin/configure
trunk/lto-plugin/configure.ac
trunk/lto-plugin/lto-plugin.c


[Bug debug/46796] debug info missing builtin type names with lto

2010-12-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46796

--- Comment #9 from Richard Guenther rguenth at gcc dot gnu.org 2010-12-10 
14:32:48 UTC ---
The volatile qualified case happens because dwarf2out.c wants to emit an
unqualified variant first and gets at it via get_qualified_type which in
turn uses check_qualified_type to pick one from the list of variant types.

But as we never merge TYPE_DECLs we have different TYPE_NAMEs for the
qualified and unqualified variants:

(gdb) call debug_tree ($34)
 type_decl 0xb7758798 float
type real_type 0xb7750900 float asm_written SF
size integer_cst 0xb773f240 constant 32
unit size integer_cst 0xb773f078 constant 4
align 32 symtab 0 alias set -1 structural equality precision 32
pointer_to_this pointer_type 0xb7750a20
VOID file (null) line 0 col 0
align 1
(gdb) call debug_tree ($35)
 type_decl 0xb775857c float
type real_type 0xb7750900 float asm_written SF
size integer_cst 0xb773f240 constant 32
unit size integer_cst 0xb773f078 constant 4
align 32 symtab 0 alias set -1 structural equality precision 32
pointer_to_this pointer_type 0xb7750a20
VOID file (null) line 0 col 0
align 1

and thus get_qualified_type happily returns NULL which leads to
name being set to NULL even though the original type does
have a name in modified_type_die.

Now.  We probably should start to merge TYPE_DECLs at some point,
even if it is only for memory use.

But instead of

  /* This probably indicates a bug.  */
  else if (mod_type_die  mod_type_die-die_tag == DW_TAG_base_type)
add_name_attribute (mod_type_die, __unknown__);

we could use TYPE_NAME of the original type here, it will have no
qualifications anyway.


[Bug bootstrap/46819] [4.6 Regression] libffi is always built

2010-12-10 Thread ian at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46819

--- Comment #3 from ian at gcc dot gnu.org ian at gcc dot gnu.org 2010-12-10 
14:47:17 UTC ---
Author: ian
Date: Fri Dec 10 14:47:12 2010
New Revision: 167689

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167689
Log:
PR bootstrap/46819
* configure.ac: For --disable-libgcj clear libgcj_saved.
* configure: Rebuild.

Modified:
trunk/ChangeLog
trunk/configure
trunk/configure.ac


[Bug middle-end/46674] [4.6 Regression] Weak alias is mistakenly optimized away

2010-12-10 Thread davek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46674

Dave Korn davek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|REOPENED|ASSIGNED
 AssignedTo|unassigned at gcc dot   |davek at gcc dot gnu.org
   |gnu.org |


[Bug tree-optimization/46879] [4.6 Regression] ICE: in separate_decls_in_region_debug_bind, at tree-parloops.c:778 with -flto -ftree-parallelize-loops -gdwarf-3

2010-12-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46879

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-10 
14:59:22 UTC ---
This looks like a lto bug to me.
1765  tree *basep = op;
1766  while (handled_component_p (*basep))
1767basep = TREE_OPERAND (*basep, 0);
1768  if (TREE_CODE (*basep) == VAR_DECL
1769   !auto_var_in_fn_p (*basep, current_function_decl))
1770{
1771  bool volatilep = TREE_THIS_VOLATILE (*basep);
1772  *basep = build2 (MEM_REF, TREE_TYPE (*basep),
1773   build_fold_addr_expr (*basep),
1774   build_int_cst (build_pointer_type
1775  (TREE_TYPE (*basep)), 0));
1776  TREE_THIS_VOLATILE (*basep) = volatilep;
1777}

in output_gimple_stmt is not suitable for the first argument of a GIMPLE_DEBUG
stmt - where the argument must be a DECL.


[Bug target/46878] V850 ICE in in maybe_add_or_update_dep_1, at sched-deps.c:854

2010-12-10 Thread mon...@monami-software.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46878

--- Comment #4 from Masaki MURANAKA mon...@monami-software.com 2010-12-10 
15:02:06 UTC ---
I succeeded to build.
I'm not sure if the patch follows is reasonable... yah, indeed quite ugly.

Does anyone fix this? please,

diff --git a/gcc/config/v850/v850.md b/gcc/config/v850/v850.md
index d488b8b..9c98106 100644
--- a/gcc/config/v850/v850.md
+++ b/gcc/config/v850/v850.md
@@ -955,6 +955,8 @@
   if (GET_CODE (operands[3]) != REG)
operands[3] = copy_to_mode_reg (SImode, operands[3]);
 }
+if (((enum rtx_code) (operands[0])-frame_related))
+   FAIL;
 })


[Bug fortran/46370] [Coarray] [OOP] ALLOCATE: Error allocating CLASS coarrays

2010-12-10 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46370

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2010-12-10 
15:10:48 UTC ---
(In reply to comment #0)

 allocate (t :: a[*])

That's what I wanted to post; not the following:
 allocate (t :: a)

(which is invalid but properly rejected).

The first error is fixed by the following patch. It then stops when checking
the constraints C617 and C1229 in resolve_procedure: of resolve_variable.
(Polymorphic subobject of coindexed object -- the message is bogus: There is
no subobject - coindexed or not; seemingly, probably the _data component is
picked up.)

BTW: In the patch below, one needs to check whether something similar is needed
at more places in that function.

--- a/gcc/fortran/primary.c
+++ b/gcc/fortran/primary.c
@@ -1785,3 +1785,7 @@ gfc_match_varspec (gfc_expr *primary, int equiv_flag,
bool sub_flag,
   m = gfc_match_array_ref (tail-u.ar, equiv_flag ? NULL : sym-as,
-  equiv_flag, sym-as ? sym-as-corank : 0);
+  equiv_flag,
+  sym-ts.type == BT_CLASS
+  ? CLASS_DATA (sym)-as
+? CLASS_DATA (sym)-as-corank : 0
+  : sym-as ? sym-as-corank : 0);
   if (m != MATCH_YES)


[Bug tree-optimization/46879] [4.6 Regression] ICE: in separate_decls_in_region_debug_bind, at tree-parloops.c:778 with -flto -ftree-parallelize-loops -gdwarf-3

2010-12-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46879

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2010-12-10 
15:21:28 UTC ---
(In reply to comment #1)
 This looks like a lto bug to me.
 1765  tree *basep = op;
 1766  while (handled_component_p (*basep))
 1767basep = TREE_OPERAND (*basep, 0);
 1768  if (TREE_CODE (*basep) == VAR_DECL
 1769   !auto_var_in_fn_p (*basep, current_function_decl))
 1770{
 1771  bool volatilep = TREE_THIS_VOLATILE (*basep);
 1772  *basep = build2 (MEM_REF, TREE_TYPE (*basep),
 1773   build_fold_addr_expr (*basep),
 1774   build_int_cst (build_pointer_type
 1775  (TREE_TYPE (*basep)), 0));
 1776  TREE_THIS_VOLATILE (*basep) = volatilep;
 1777}
 
 in output_gimple_stmt is not suitable for the first argument of a GIMPLE_DEBUG
 stmt - where the argument must be a DECL.

Hm, well.  Then the debug machinery has to deal with type mismatches I guess.

But I wonder why we have debug-stmts for global variables anyway?  I thought
they are only used for registers.


[Bug bootstrap/46819] [4.6 Regression] libffi is always built

2010-12-10 Thread ian at airs dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46819

Ian Lance Taylor ian at airs dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #4 from Ian Lance Taylor ian at airs dot com 2010-12-10 15:26:29 
UTC ---
This should be fixed now.


[Bug bootstrap/46876] libgo fails to compile on libtemplate.so

2010-12-10 Thread ian at airs dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46876

Ian Lance Taylor ian at airs dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||ian at airs dot com
 Resolution||DUPLICATE

--- Comment #2 from Ian Lance Taylor ian at airs dot com 2010-12-10 15:29:29 
UTC ---
This should be fixed by revision 167668.

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


[Bug bootstrap/46812] Linux libgo compilation fails when a libnet is already installed

2010-12-10 Thread ian at airs dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46812

Ian Lance Taylor ian at airs dot com changed:

   What|Removed |Added

 CC||3dw4rd at verizon dot net

--- Comment #8 from Ian Lance Taylor ian at airs dot com 2010-12-10 15:29:29 
UTC ---
*** Bug 46876 has been marked as a duplicate of this bug. ***


[Bug tree-optimization/46879] [4.6 Regression] ICE: in separate_decls_in_region_debug_bind, at tree-parloops.c:778 with -flto -ftree-parallelize-loops -gdwarf-3

2010-12-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46879

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-10 
15:32:40 UTC ---
(In reply to comment #2)
 Hm, well.  Then the debug machinery has to deal with type mismatches I guess.

Well, all the debug machinery cares is that the var has the original, declared
type.

 But I wonder why we have debug-stmts for global variables anyway?  I thought
 they are only used for registers.

It is not a global variable, it is a VAR_DECL with DECL_ABSTRACT_ORIGIN
PARM_DECL in bar, i.e. optimized away parameter/automatic variable.  It is a
non-localized var in main, because it is never referenced there, except for
GIMPLE_DEBUG.


[Bug tree-optimization/46886] New: [4.5/4.6 Regression] gfortran.dg/array_constructor_9.f90 FAILs with -ftree-parallelize-loops -fstrict-overflow -fno-tree-ch

2010-12-10 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46886

   Summary: [4.5/4.6 Regression]
gfortran.dg/array_constructor_9.f90 FAILs with
-ftree-parallelize-loops -fstrict-overflow
-fno-tree-ch
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz
  Host: x86_64-pc-linux-gnu
Target: x86_64-pc-linux-gnu


Created attachment 22707
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22707
reduced testcase (hopefully correctly)

Output:
$ gfortran -O -ftree-parallelize-loops=2 -fstrict-overflow -fno-tree-ch
testcase.f90   
$ valgrind -q ./a.out 
==7049== Invalid read of size 4
==7049==at 0x400D33: main (testcase.f90:12)
==7049==  Address 0x6174788 is 0 bytes after a block of size 1,320 alloc'd
==7049==at 0x4C265BF: realloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==7049==by 0x400C1A: main (testcase.f90:12)
==7049== 
==7049== Invalid write of size 4
==7049==at 0x400D37: main (testcase.f90:12)
==7049==  Address 0x6174cf8 is 0 bytes after a block of size 1,320 alloc'd
==7049==at 0x4C2648E: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==7049==by 0x400CDD: main (testcase.f90:12)
==7049== 

Tested revisions: (for the reduced testcase)
r167643 - fail
4.5 r166509 - fail (original testcase passes)
4.4 r166509 - OK


[Bug rtl-optimization/46829] ICE: in spill_failure, at reload1.c:2105 with -fschedule-insns -fsched-pressure and variadic function

2010-12-10 Thread vmakarov at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46829

--- Comment #10 from Vladimir Makarov vmakarov at redhat dot com 2010-12-10 
15:45:33 UTC ---
(In reply to comment #9)
 (In reply to comment #5)
  It should work for x86_64, not necessarily i?86.
 
 Do you mean -fsched-pressure should be able to solve the problem completely
 for x86-64?
 
 Vladimir: Do you have any idea which direction to go in order to solve this
 problem?

Introducing of -fsched-pressure just decreased probability of the bug when 1st
insn scheduling is used.  The patch introducing -fsched-pressure contained some
code in reload to decrease the probability even more.

Unfortunately, it did not eliminated it fully.  This bug can not be fixed in
scheduler (or the solution, like not moving through insn referring for a hard
register, will be too conservative especially for x86_64 and still will not fix
it for x86) because the scheduler can not see all info handled by reload.

IMHO, the right fix should be possibility to split live ranges for explicitly
mentioned hard register.  May be Jeff Law's current work will provide such
feature.

In any case, implementation of live range splitting in reload is too big and
complicated job even for stage #1.  There is no way to implement it at stage
#3.  It is also very unreasonable thing to do because any change in reload is
usually very bug prone.

I am sorry, but I don't see that it can be fixed for gcc4.6 fox x86/x86-64. 
Although it might be fixed for gcc4.7.


[Bug lto/46808] Too verbose diagnostic messages when compiling with LTO

2010-12-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46808

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2010-12-10 
15:54:03 UTC ---
Author: rguenth
Date: Fri Dec 10 15:53:58 2010
New Revision: 167690

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167690
Log:
2010-12-10  Richard Guenther  rguent...@suse.de

PR lto/46808
* lto-symtab.c (lto_symtab_merge_decls_2): Avoid type warnings
after errors.
(lto_symtab_merge_decls_1): Adjust.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/lto-symtab.c


[Bug lto/46808] Too verbose diagnostic messages when compiling with LTO

2010-12-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46808

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2010-12-10 
15:55:09 UTC ---
Fixed.


[Bug c++/45822] [4.6-regression] Qt 4.7.0 build fails

2010-12-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45822

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #9 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-10 
15:55:47 UTC ---
Fixed.


[Bug tree-optimization/46879] [4.6 Regression] ICE: in separate_decls_in_region_debug_bind, at tree-parloops.c:778 with -flto -ftree-parallelize-loops -gdwarf-3

2010-12-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46879

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.12.10 15:58:39
 Ever Confirmed|0   |1

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2010-12-10 
15:58:39 UTC ---
(In reply to comment #3)
 (In reply to comment #2)
  Hm, well.  Then the debug machinery has to deal with type mismatches I 
  guess.
 
 Well, all the debug machinery cares is that the var has the original, declared
 type.
 
  But I wonder why we have debug-stmts for global variables anyway?  I thought
  they are only used for registers.
 
 It is not a global variable, it is a VAR_DECL with DECL_ABSTRACT_ORIGIN
 PARM_DECL in bar, i.e. optimized away parameter/automatic variable.  It is a
 non-localized var in main, because it is never referenced there, except for
 GIMPLE_DEBUG.

Ah, ok.  The fix is then to amend the

1768  if (TREE_CODE (*basep) == VAR_DECL
1769   !auto_var_in_fn_p (*basep, current_function_decl))

check properly.  The easiest check would be  !is_gimple_debug, or
a auto_var_in_fn_p variant without a specific function, thus auto_var_p.


[Bug rtl-optimization/46804] [4.5/4.6 Regression] gfortran.dg/char_cshift_2.f90 FAILs with -fregmove

2010-12-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46804

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-10 
16:40:57 UTC ---
Author: jakub
Date: Fri Dec 10 16:40:51 2010
New Revision: 167695

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167695
Log:
PR rtl-optimization/46804
* regmove.c (optimize_reg_copy_3): Look for REG_EQUAL note
on the setter of src_reg rather than on insn.  If it is
equal to the setter's original SET_SRC, replace it with its
zero or sign extension instead of dropping it.

* gfortran.dg/pr46804.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/pr46804.f90
Modified:
trunk/gcc/ChangeLog
trunk/gcc/regmove.c
trunk/gcc/testsuite/ChangeLog


[Bug target/46887] New: Invalid AIX linker flag '-bnoerok', it has to be '-bernotok'

2010-12-10 Thread michael.haubenwallner at salomon dot at
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46887

   Summary: Invalid AIX linker flag '-bnoerok', it has to be
'-bernotok'
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: michael.haubenwall...@salomon.at


The AIX linker does not understand '-bnoerok', but '-bernotok'.
While there have been more occurences in older releases, there is still one in
current trunk:

libjava/classpath/ltcf-cxx.sh:no_undefined_flag=' ${wl}-bnoerok'

This has to be -bernotok.


[Bug rtl-optimization/46804] [4.5 Regression] gfortran.dg/char_cshift_2.f90 FAILs with -fregmove

2010-12-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46804

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.6.0
Summary|[4.5/4.6 Regression]|[4.5 Regression]
   |gfortran.dg/char_cshift_2.f |gfortran.dg/char_cshift_2.f
   |90 FAILs with -fregmove |90 FAILs with -fregmove
  Known to fail|4.6.0   |

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-10 
16:47:35 UTC ---
Fixed on the trunk so far.


[Bug libstdc++/5627] cstdio header failes to compile on sparc-sun-solaris2.7 with _FILE_OFFSET_BITS == 64

2010-12-10 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=5627

--- Comment #9 from Paolo Carlini paolo.carlini at oracle dot com 2010-12-10 
16:52:26 UTC ---
Rainer?


[Bug libstdc++/46347] Profile-mode executables too large

2010-12-10 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46347

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2010-12-10 
16:54:00 UTC ---
Let's close this.


[Bug middle-end/46885] [4.6 Regression] ICE: in gsi_insert_seq_nodes_after, at gimple-iterator.c:251 with -ftree-parallelize-loops -g

2010-12-10 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46885

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.12.10 16:54:33
 CC||aoliva at gcc dot gnu.org
   Target Milestone|--- |4.6.0
 Ever Confirmed|0   |1

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2010-12-10 16:54:33 
UTC ---
It is caused by revision 160762:

http://gcc.gnu.org/ml/gcc-cvs/2010-06/msg00677.html


[Bug libstdc++/44436] [C++0x] Implement emplace* in associative and unordered containers

2010-12-10 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44436

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

Summary|[C++0x] Implement   |[C++0x] Implement emplace*
   |insert() and emplace* in  |in associative and
   |associative and unordered   |unordered containers
   |containers  |

--- Comment #14 from Paolo Carlini paolo.carlini at oracle dot com 2010-12-10 
16:55:53 UTC ---
The insert* are done.


[Bug rtl-optimization/46888] New: missed optimization of zero_extract with constant inputs

2010-12-10 Thread ams at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46888

   Summary: missed optimization of zero_extract with constant
inputs
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: a...@gcc.gnu.org


The compiler fails to do constant folding for bit fields, at least on ARM
targets, and instead builds the constant at run time.

Test case:

  struct bits
  {
 unsigned a:5;
 unsigned b:5;
 unsigned c:5;
 unsigned d:5;
  };

  struct bits
  f (unsigned int a)
  {
 struct bits bits = {0,0,0,0};
 bits.a = 1;
 bits.b = 2;
 bits.c = 3;
 bits.d = a;
 return bits;
  }

Output, compiled for ARM with -O2 -mcpu=cortex-a8 -mthumb:
movsr2, #1
movsr3, #0
bfi r3, r2, #0, #5
movsr2, #2
bfi r3, r2, #5, #5
movsr2, #3
bfi r3, r2, #10, #5
bfi r3, r0, #15, #5
mov r0, r3
bx  lr


[Bug rtl-optimization/46888] missed optimization of zero_extract with constant inputs

2010-12-10 Thread ams at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46888

--- Comment #1 from Andrew Stubbs ams at gcc dot gnu.org 2010-12-10 17:02:05 
UTC ---
Two different patches have been posted to fix this:

 http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00778.html

 http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00784.html

One, or both should be applied to GCC 4.7, when the time comes.


[Bug target/43751] dsymutil is not called for fortran and, under some circumstances not for other FEs.

2010-12-10 Thread mrs at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43751

m...@gcc.gnu.org mrs at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #19 from mrs at gcc dot gnu.org mrs at gcc dot gnu.org 2010-12-10 
17:17:00 UTC ---
Fixed.  Thanks.


[Bug target/46092] Improve constant handling of thumb2 instructions

2010-12-10 Thread ams at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46092

Andrew Stubbs ams at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #2 from Andrew Stubbs ams at gcc dot gnu.org 2010-12-10 17:23:51 
UTC ---
I've posted a patch to fix this issue (among others):

  http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00652.html


[Bug target/46092] Improve constant handling of thumb2 instructions

2010-12-10 Thread ams at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46092

--- Comment #3 from Andrew Stubbs ams at gcc dot gnu.org 2010-12-10 17:27:04 
UTC ---
Oh, I should say, what it actually does is this:

 subhi   r0, r0, #65280   ; 0xff00
 subhi   r0, r0, #241 ; 0x00f1


[Bug libstdc++/5627] cstdio header failes to compile on sparc-sun-solaris2.7 with _FILE_OFFSET_BITS == 64

2010-12-10 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=5627

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||WONTFIX

--- Comment #10 from Paolo Carlini paolo.carlini at oracle dot com 2010-12-10 
18:05:32 UTC ---
No interest.


[Bug c/46889] New: Missing diagnosis on duplicate struct member with anonymous union

2010-12-10 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46889

   Summary: Missing diagnosis on duplicate struct member with
anonymous union
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com


[...@gnu-35 delta]$ cat foo.c
struct foo {
#ifdef BAD
 int x;
#endif
 union {
  struct {
   unsigned long time_stamp;
  };
  struct {
   int *page;
  };
 };
 int *page;
};

int *
bar (struct foo *x)
{
  return x-page;
}
[...@gnu-35 delta]$ /usr/gcc-4.6/bin/gcc -S -O2 foo.c
[...@gnu-35 delta]$ /usr/gcc-4.6/bin/gcc -S -O2 foo.c -DBAD
foo.c:13:7: error: duplicate member ‘page’
[...@gnu-35 delta]$


[Bug tree-optimization/43023] missing SSA_NAME def for -ftree-loop-distribution in 459.GemsFDTD

2010-12-10 Thread spop at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43023

--- Comment #4 from Sebastian Pop spop at gcc dot gnu.org 2010-12-10 19:16:54 
UTC ---
Author: spop
Date: Fri Dec 10 19:16:48 2010
New Revision: 167697

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167697
Log:
Fix PR43023: fuse_partitions_with_similar_memory_accesses.

2010-12-10  Sebastian Pop  sebastian@amd.com

PR tree-optimization/43023
* tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p):
Removed.
(stores_zero_from_loop): Call stmt_stores_zero.
* tree-data-ref.h (stmt_stores_zero): New.
* tree-loop-distribution.c (generate_memset_zero): Do not return a
boolean.  Call gcc_assert on stride_of_unit_type_p.
(generate_builtin): Call stmt_stores_zero.
(rdg_flag_all_uses): Removed.
(rdg_flag_similar_memory_accesses): Removed.
(build_rdg_partition_for_component): Removed parameter
other_stores.  Removed call to rdg_flag_similar_memory_accesses.
(can_generate_builtin): New.
(similar_memory_accesses): New.
(fuse_partitions_with_similar_memory_accesses): New.
(rdg_build_partitions): Call
fuse_partitions_with_similar_memory_accesses.

* gfortran.dg/ldist-1.f90: Adjust pattern.
* gfortran.dg/ldist-pr43023.f90: New.

Added:
trunk/gcc/testsuite/gfortran.dg/ldist-pr43023.f90
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/ldist-1.f90
trunk/gcc/tree-data-ref.c
trunk/gcc/tree-data-ref.h
trunk/gcc/tree-loop-distribution.c


[Bug tree-optimization/43655] [4.5/4.6 Regression] -ftree-ter causes FAIL: g++.old-deja/g++.law/temps5.C execution test

2010-12-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43655

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org
  Known to work||

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-10 
19:21:02 UTC ---
The problem is that since 4.5, the:
  /* There must be no VDEFs.  */
  if (gimple_vdef (stmt))
return false;

  /* Without alias info we can't move around loads.  */
  if (gimple_references_memory_p (stmt)  !optimize)
return false;
never return false if !optimize (in 4.4 gimple_references_memory_p was just
checking a bit in gimple stmt).
We know at this point that is_gimple_assign (stmt), what's the best way to
replace the latter check to rule out all memory loads and stores if !optimize?


[Bug tree-optimization/43655] [4.5/4.6 Regression] -ftree-ter causes FAIL: g++.old-deja/g++.law/temps5.C execution test

2010-12-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43655

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2010.12.10 19:25:42
 AssignedTo|unassigned at gcc dot   |jakub at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-10 
19:25:42 UTC ---
Created attachment 22708
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22708
gcc46-pr43655.patch

Untested fix.


[Bug c++/46001] [4.6 Regression] diagnostic refers to type '__java_boolean'

2010-12-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46001

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-10 
19:41:52 UTC ---
Author: jakub
Date: Fri Dec 10 19:41:48 2010
New Revision: 167698

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=167698
Log:
PR c++/46001
* decl.c (record_builtin_java_type): Call build_distinct_type_copy
on build_nonstandard_integer_type result for __java_* types.

* g++.dg/diagnostic/bitfld1.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/diagnostic/bitfld1.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/testsuite/ChangeLog


[Bug rtl-optimization/46888] missed optimization of zero_extract with constant inputs

2010-12-10 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46888

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||missed-optimization
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.12.10 19:42:11
Version|unknown |4.6.0
 Ever Confirmed|0   |1
   Severity|normal  |enhancement

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2010-12-10 
19:42:11 UTC ---
Here is a simpler example. Take:
struct b
{
  int t;
  int tt;
};
union a
{
  long long t;
  struct b b;
};
long long f(int i, int t)
{
  long long ii = ((long long)i)  32;
  union a a;
  a.t = 0;
  a.b.t = i;
  a.b.tt = t;
  return a.t;
}

--- CUT ---
For MIPS64r2 (both n64 and n32):
move$2,$0
dins$2,$4,32,32
j$31
dins$2,$5,0,32
--- CUT ---
is produced but the first two instructions can really be done as one shift:
dsll$2,$4,32
j$31
dins$2,$5,0,32


[Bug tree-optimization/43023] missing SSA_NAME def for -ftree-loop-distribution in 459.GemsFDTD

2010-12-10 Thread spop at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43023

--- Comment #5 from Sebastian Pop spop at gcc dot gnu.org 2010-12-10 19:49:00 
UTC ---
Backport patch for 4.5
http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00909.html


[Bug driver/46694] driver does not pass all options to the compiler gnat1

2010-12-10 Thread rolf.ebert.gcc at gmx dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46694

Rolf Ebert rolf.ebert.gcc at gmx dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #1 from Rolf Ebert rolf.ebert.gcc at gmx dot de 2010-12-10 
19:58:42 UTC ---
problem was caused by an invalid patch on my side.

sorry for the noise


[Bug c++/46001] [4.6 Regression] diagnostic refers to type '__java_boolean'

2010-12-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46001

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2010-12-10 
20:08:34 UTC ---
Fixed.


[Bug c++/46736] [c++0x] move constructor is not implicitly deleted when it should be

2010-12-10 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46736

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #3 from Jason Merrill jason at gcc dot gnu.org 2010-12-10 
21:35:57 UTC ---
Fixed.


[Bug fortran/46842] [4.6 Regression] wrong results with MATHMUL(..., TRANSPOSE (func ())) -- 465.tonto test run miscompares

2010-12-10 Thread mikael at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46842

Mikael Morin mikael at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED

--- Comment #20 from Mikael Morin mikael at gcc dot gnu.org 2010-12-10 
21:43:56 UTC ---
Thanks for reducing Tobias. 
I'm looking right now.


[Bug fortran/46842] [4.6 Regression] wrong results with MATHMUL(..., TRANSPOSE (func ())) -- 465.tonto test run miscompares

2010-12-10 Thread mikael at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46842

--- Comment #21 from Mikael Morin mikael at gcc dot gnu.org 2010-12-10 
21:57:06 UTC ---
Does this fix tonto ?


diff --git a/trans-array.c b/trans-array.c
index 52ba831..e312777 100644
--- a/trans-array.c
+++ b/trans-array.c
@@ -5442,6 +5442,10 @@ gfc_conv_expr_descriptor (gfc_se * se, gfc_expr * expr,
gfc_ss * ss)
 }
   else if (expr-expr_type == EXPR_FUNCTION)
 {
+  for (n = 0; n  info-dimen; n++)
+if (info-dim[n] != n)
+  goto descriptor;
+  
   desc = info-descriptor;
   se-string_length = ss-string_length;
 }
@@ -5460,6 +5464,7 @@ gfc_conv_expr_descriptor (gfc_se * se, gfc_expr * expr,
gfc_ss * ss)
   tree to;
   tree base;

+descriptor:
   /* Set the string_length for a character array.  */
   if (expr-ts.type == BT_CHARACTER)
 se-string_length =  gfc_get_expr_charlen (expr);


PS: patch is against ~ 2 months old trunk


[Bug bootstrap/46795] bootstrap with gccgo fails

2010-12-10 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46795

--- Comment #1 from kargl at gcc dot gnu.org 2010-12-10 22:19:14 UTC ---
(In reply to comment #0)
 gmake[3]: Entering directory
 `/usr/home/kargl/gcc/obj4x/i386-unknown-freebsd9.0/libgo'
 gmake[4]: Entering directory
 `/usr/home/kargl/gcc/obj4x/i386-unknown-freebsd9.0/libgo'
 /bin/sh ../../../gcc4x/libgo/mksysinfo.sh
 gmake[4]: *** [sysinfo.go] Error 1
 gmake[4]: Leaving directory
 `/usr/home/kargl/gcc/obj4x/i386-unknown-freebsd9.0/libgo'
 gmake[3]: *** [all-recursive] Error 1
 gmake[3]: Leaving directory
 `/usr/home/kargl/gcc/obj4x/i386-unknown-freebsd9.0/libgo'
 gmake[2]: *** [all] Error 2
 gmake[2]: Leaving directory
 `/usr/home/kargl/gcc/obj4x/i386-unknown-freebsd9.0/libgo'
 gmake[1]: *** [all-target-libgo] Error 2
 gmake[1]: Leaving directory `/usr/home/kargl/gcc/obj4x'
 gmake: *** [all] Error 2

A little debugging shows the build dies in mksysinfo.go at
line 201, which is at

# The registers returned by PTRACE_GETREGS.  This is probably
# GNU/Linux specific.
regs=`grep '^type _user_regs_struct struct' gen-sysinfo.go`

So, yes, building gccgo is linux specific.  

Looking in gen-sysinfo.go, one finds the following

type _reg struct { r_r15 int64; r_r14 int64; r_r13 int64; r_r12 int64; r_r11
int64; r_r10 int64; r_r9 int64; r_r8 int64; r_rdi int64; r_rsi int64; r_rbp
int64; r_rbx int64; r_rdx int64; r_rcx int64; r_rax int64; r_trapno uint32;
r_fs uint16; r_gs uint16; r_err uint32; r_es uint16; r_ds uint16; r_rip int64;
r_cs int64; r_rflags int64; r_rsp int64; r_ss int64; }

which is probably the required list of registers.


Given that building gccgo appears to be restricted to linux, 
why was configure successful?  Should configure have errored
out stating that gccgo is not supported on FreeBSD?


[Bug fortran/46842] [4.6 Regression] wrong results with MATHMUL(..., TRANSPOSE (func ())) -- 465.tonto test run miscompares

2010-12-10 Thread changpeng.fang at amd dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46842

--- Comment #22 from Changpeng Fang changpeng.fang at amd dot com 2010-12-10 
22:20:26 UTC ---
(In reply to comment #21)
 Does this fix tonto ?

The patch fixed the 465.tonto test miscompare when applied to
the current gcc 4.6 trunk!

Thanks,


[Bug c++/46890] New: compile regression from 4.5 when building scummvm's player_v4a.cpp

2010-12-10 Thread matt at use dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46890

   Summary: compile regression from 4.5 when building scummvm's
player_v4a.cpp
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: m...@use.net


using 4.6.0 20101206 (experimental) [trunk revision 167481]:

building the open source project, scummvm (http://scummvm.org) trunk revision :
54858
m...@matt-desktop:~/src/scummvm$ CXX=/usr/lib/gcc-snapshot/bin/g++ ./configure
--enable-all-engines
[...]
m...@matt-desktop:~/src/scummvm$ make
[...]
In file included from ./engines/scumm/player_v4a.h:32:0,
 from engines/scumm/player_v4a.cpp:27:
./sound/mods/tfmx.h:115:2: error: expected ';' after struct definition
./sound/mods/tfmx.h:115:11: error: ISO C++ forbids declaration of '_resource'
with no type [-fpermissive]

[ ... and then several more compile errors that snowball from the first one ...
]

The code in question looks like this:


struct MdatResource {
const byte *mdatAlloc;  /// allocated Block of Memory
const byte *mdatData;   /// Start of mdat-File, might point
before mdatAlloc to correct Offset
uint32 mdatLen;

uint16 headerFlags;
//  uint32 headerUnknown;
//  char textField[6 * 40];

struct Subsong {
uint16 songstart;   /// Index in Trackstep-Table
uint16 songend; /// Last index in
Trackstep-Table
uint16 tempo;
} subsong[kNumSubsongs];

uint32 trackstepOffset; /// Offset in mdat
uint32 sfxTableOffset;

uint32 patternOffset[kMaxPatternOffsets];   /// Offset in
mdat
uint32 macroOffset[kMaxMacroOffsets];   /// Offset in mdat

void boundaryCheck(const void *address, size_t accessLen = 1)
const {
assert(mdatAlloc = address  (const byte *)address +
accessLen = (const byte *)mdatData + mdatLen);
}
} const *_resource;


Configuring with g++-4.5 (4.5.1-7ubuntu2) or g++-4.4 (Ubuntu/Linaro
4.4.4-14ubuntu5) fixes the compilation.


[Bug tree-optimization/45948] [4.6 Regression] ICE: SIGSEGV in find_uses_to_rename_use (tree-ssa-loop-manip.c:1242) with -O -fstrict-overflow -ftree-loop-distribution

2010-12-10 Thread spop at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45948

--- Comment #6 from Sebastian Pop spop at gcc dot gnu.org 2010-12-10 23:51:22 
UTC ---
Patch here:
http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00919.html


[Bug bootstrap/45888] tm.texi generation is not portable, rule is broken

2010-12-10 Thread anhvofrcaus at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45888

--- Comment #31 from Anh Vo anhvofrcaus at gmail dot com 2010-12-11 00:54:08 
UTC ---
(In reply to comment #30)
 (In reply to comment #29)
  gcc/tm.texi and gcc/tmp3-tm.texi did not have same same line ending. In 
  fact,
  gcc/tm.texi contains 'ASCII English text, with very long lines' while
  gcc/tmp3-tm.texi has 'ASCII English text' only when examined with 'file'
  command. In addition, gcc/tm.texi is slightly larger in size (507 KB) than
  gcc/tmp3-tm.texi (493 KB).
 I don't understand this at all.  The \r removal works for gcc/tm.texi,
 but not for gcc/tmp3-tm.texi?  And yet the latter is smaller?  Or does
 the latter have no line endings at all because you somehow untarred the
 source file with MacOs 9 style line endings?
 What size is your $(srcdir)/doc/tm.texi ?
 How many lines do the varyous tm.texi files have?  (wc should tell)
 Could you show the start of these files with od, like shown in
 comment 13?

This problem does not occur in the latest snapshot, gcc-4.6-20101204. In fact,
the build passed this point successfully. However, other problem surfaces. With
Cygwin build, it complained assembly code as shown in error message below.

[...]
make[4]: Leaving directory `/cygdrive/c/Gcc/Build-4.6.x/i686-pc-cygwin/libgcc'
/cygdrive/c/Gcc/Build-4.6.x/./gcc/xgcc -B/cygdrive/c/Gcc/Build-4.6.x/./gcc/
-B/u
sr/local/i686-pc-cygwin/bin/ -B/usr/local/i686-pc-cygwin/lib/ -isystem
/usr/loca
l/i686-pc-cygwin/include -isystem /usr/local/i686-pc-cygwin/sys-include-g
-O
2 -O2 -I../../gcc-4.6-20101204/gcc/../winsup/w32api/include
-I../../gcc-4.6-2010
1204/gcc/../winsup/include
-I../../gcc-4.6-20101204/gcc/../winsup/cygwin/include
 -g -O2 -DIN_GCC   -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes
-Wmi
ssing-prototypes -Wold-style-definition  -isystem ./include   -g  -DIN_LIBGCC2
-
D__GCC_FLOAT_NOT_NEEDED -fno-stack-protector   -I. -I. -I../.././gcc
-I../../../
gcc-4.6-20101204/libgcc -I../../../gcc-4.6-20101204/libgcc/.
-I../../../gcc-4.6-
20101204/libgcc/../gcc -I../../../gcc-4.6-20101204/libgcc/../include
-I../../../
gcc-4.6-20101204/libgcc/config/libbid -DENABLE_DECIMAL_BID_FORMAT -DHAVE_CC_TLS
-DUSE_EMUTLS -o _chkstk_s.o -MT _chkstk_s.o -MD -MP -MF _chkstk_s.dep -DSHARED
-
DL_chkstk -xassembler-with-cpp \
  -c ../../../gcc-4.6-20101204/libgcc/../gcc/config/i386/cygwin.asm
../../../gcc-4.6-20101204/libgcc/../gcc/config/i386/cygwin.asm: Assembler
messag
es:
../../../gcc-4.6-20101204/libgcc/../gcc/config/i386/cygwin.asm:30: Error:
unknow
n pseudo-op: `.cfi_sections'
make[3]: *** [_chkstk_s.o] Error 1
make[3]: Leaving directory `/cygdrive/c/Gcc/Build-4.6.x/i686-pc-cygwin/libgcc'
make[2]: *** [all-stage1-target-libgcc] Error 2
make[2]: Leaving directory `/cygdrive/c/Gcc/Build-4.6.x'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/cygdrive/c/Gcc/Build-4.6.x'
make: *** [all] Error 2

For MinGW build, it complained about lto plugin as shown below.

[...]
make[3]: Entering directory `/c/Gcc/Build-Test/lto-plugin'
/bin/sh ./libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.
-I../../gcc-
4.6-20101204/lto-plugin  -I../../gcc-4.6-20101204/lto-plugin/../include
-DHAVE_C
ONFIG_H  -Wall -Werror -g -fkeep-inline-functions -c -o lto-plugin.lo
../../gcc-
4.6-20101204/lto-plugin/lto-plugin.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../../gcc-4.6-20101204/lto-plugin
-
I../../gcc-4.6-20101204/lto-plugin/../include -DHAVE_CONFIG_H -Wall -Werror -g
-
fkeep-inline-functions -c ../../gcc-4.6-20101204/lto-plugin/lto-plugin.c 
-DDLL_
EXPORT -DPIC -o .libs/lto-plugin.o
cc1.exe: warnings being treated as errors
../../gcc-4.6-20101204/lto-plugin/lto-plugin.c: In function 'exec_lto_wrapper':
../../gcc-4.6-20101204/lto-plugin/lto-plugin.c:556:3: error: implicit
declaratio
n of function 'WIFEXITED'
../../gcc-4.6-20101204/lto-plugin/lto-plugin.c:556:3: error: implicit
declaratio
n of function 'WEXITSTATUS'
make[3]: *** [lto-plugin.lo] Error 1
make[3]: Leaving directory `/c/Gcc/Build-Test/lto-plugin'
make[2]: *** [all-stage1-lto-plugin] Error 2
make[2]: Leaving directory `/c/Gcc/Build-Test'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/c/Gcc/Build-Test'
make: *** [all] Error 2


[Bug debug/46123] [4.5/4.6 Regression] ICE: in output_aranges, at dwarf2out.c:11531 with -feliminate-dwarf2-dups -g

2010-12-10 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46123

--- Comment #12 from Jason Merrill jason at gcc dot gnu.org 2010-12-11 
01:20:14 UTC ---
I can't reproduce this failure with a cross-compiler and the preprocessed
source.  Does it still fail for you?


[Bug bootstrap/45888] tm.texi generation is not portable, rule is broken

2010-12-10 Thread amylaar at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45888

Jorn Wolfgang Rennecke amylaar at gcc dot gnu.org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED

--- Comment #32 from Jorn Wolfgang Rennecke amylaar at gcc dot gnu.org 
2010-12-11 03:50:45 UTC ---
(In reply to comment #31)
 This problem does not occur in the latest snapshot, gcc-4.6-20101204. In fact,
 the build passed this point successfully.

Good.  I'm closing this PR now then.
As we have no details about what exactly happened with the previous
snapshot, my best guess is that something with applying the patch didn't
quite work right at your end, or the extracted snapshot was corrupted to
begin with.

 However, other problem surfaces. With
 Cygwin build, it complained assembly code as shown in error message below.

This is clearly a separate issue.  Please open a new PR for it, unless that
has already been done, and/or the problem has been fixed, in the meantime.

 For MinGW build, it complained about lto plugin as shown below.

That, too, is a separate issue.  You clearly seem to be unlucky with your
snapshots, as this has been fixed just after the snapshot was made:
http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00369.html

r167468 | ktietz | 2010-12-05 09:06:25 +0100 (Sun, 05 Dec 2010) | 9 lines

2010-12-05  Kai Tietz  kai.ti...@onevision.com

* config.h.in: Regenerated.
* configure: Regenerated.
* configure.ac (AC_CHECK_HEADERS): Replaced by AC_HEADER_SYS_WAIT.
* lto-plugin.c (WIFEXITED): Define default.
(WEXITSTATUS): Likeiwse.


[Bug target/46891] New: Can't build libquadmath for i386-elf target

2010-12-10 Thread mon...@monami-software.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46891

   Summary: Can't build libquadmath for i386-elf target
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: blocker
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: mon...@monami-software.com
  Host: i386-elf
Target: i386-elf
 Build: i386-apple-darwin10.5.0


This issue is similar to #46553.


[Bug target/46891] Can't build libquadmath for i386-elf target

2010-12-10 Thread mon...@monami-software.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46891

--- Comment #1 from Masaki MURANAKA mon...@monami-software.com 2010-12-11 
04:27:40 UTC ---
Created attachment 22709
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22709
Add some options to CFLAGS in case building --with-newlib


[Bug middle-end/46892] New: gcc.dg/vect/vect-25.c failures with -fgraphite-identity

2010-12-10 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46892

   Summary: gcc.dg/vect/vect-25.c failures with
-fgraphite-identity
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: howa...@nitro.med.uc.edu


The gcc.dg/vect/vect-25.c testcase fails at -m32 and -m64 on
x86_64-apple-darwin10 when -fgraphite-identity is used.

Executing on host: /sw/src/fink.build/gcc46-4.6.0-1000/darwin_objdir/gcc/xgcc
-B/sw/src/fink.build/gcc46-4.6.0-1000/darwin_objdir/gcc/
/sw/src/fink.build/gcc46-4.6.0-1000/gcc-4.6-20101210/gcc/testsuite/gcc.dg/vect/vect-25.c
  -msse2 -ftree-vectorize -fno-vect-cost-model -O2 -fdump-tree-vect-details 
-lm   -m32 -o ./vect-25.exe(timeout = 300)
PASS: gcc.dg/vect/vect-25.c (test for excess errors)
Setting LD_LIBRARY_PATH to
:/sw/src/fink.build/gcc46-4.6.0-1000/darwin_objdir/gcc::/sw/src/fink.build/gcc46-4.6.0-1000/darwin_objdir/gcc
FAIL: gcc.dg/vect/vect-25.c execution test
FAIL: gcc.dg/vect/vect-25.c scan-tree-dump-times vect vectorized 2 loops 1
PASS: gcc.dg/vect/vect-25.c scan-tree-dump-times vect Vectorizing an unaligned
access 0


[Bug debug/46123] [4.5/4.6 Regression] ICE: in output_aranges, at dwarf2out.c:11531 with -feliminate-dwarf2-dups -g

2010-12-10 Thread davek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46123

--- Comment #13 from Dave Korn davek at gcc dot gnu.org 2010-12-11 04:34:07 
UTC ---
Didn't crop up in my latest testrun (based on r.167484 / 20101206), so whatever
it was seems to have gone away.


[Bug middle-end/46892] gcc.dg/vect/vect-25.c failures with -fgraphite-identity

2010-12-10 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46892

Jack Howarth howarth at nitro dot med.uc.edu changed:

   What|Removed |Added

 Target||x86_64-apple-darwin10
   Host||x86_64-apple-darwin10
  Build||x86_64-apple-darwin10

--- Comment #1 from Jack Howarth howarth at nitro dot med.uc.edu 2010-12-11 
04:35:33 UTC ---
Using built-in specs.
COLLECT_GCC=gcc-4
COLLECT_LTO_WRAPPER=/sw/lib/gcc4.6/libexec/gcc/x86_64-apple-darwin10.5.0/4.6.0/lto-wrapper
Target: x86_64-apple-darwin10.5.0
Configured with: ../gcc-4.6-20101210/configure --prefix=/sw
--prefix=/sw/lib/gcc4.6 --mandir=/sw/share/man --infodir=/sw/lib/gcc4.6/info
--enable-languages=c,c++,fortran,objc,obj-c++,java --with-gmp=/sw
--with-libiconv-prefix=/sw --with-ppl=/sw --with-cloog=/sw --with-mpc=/sw
--with-system-zlib --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib
--program-suffix=-fsf-4.6 --enable-checking=yes --enable-cloog-backend=isl
Thread model: posix
gcc version 4.6.0 20101210 (experimental) (GCC) 

built with the patch...

Index: opts.c
===
--- opts.c  (revision 167318)
+++ opts.c  (working copy)
@@ -462,6 +462,9 @@
 { OPT_LEVELS_1_PLUS, OPT_fcombine_stack_adjustments, NULL, 1 },

 /* -O2 optimizations.  */
+#ifdef HAVE_cloog
+{ OPT_LEVELS_2_PLUS, OPT_fgraphite_identity, NULL, 1 },
+#endif
 { OPT_LEVELS_2_PLUS, OPT_finline_small_functions, NULL, 1 },
 { OPT_LEVELS_2_PLUS, OPT_findirect_inlining, NULL, 1 },
 { OPT_LEVELS_2_PLUS, OPT_fpartial_inlining, NULL, 1 },

to default -fgraphite-identity on in the testsuite at -O2.


[Bug middle-end/46892] gcc.dg/vect/vect-25.c failures with -fgraphite-identity

2010-12-10 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46892

--- Comment #2 from Jack Howarth howarth at nitro dot med.uc.edu 2010-12-11 
04:40:13 UTC ---
Created attachment 22710
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22710
.vect dump file for gcc.dg/vect/vect-25 with -fgraphite-identity


[Bug middle-end/46892] gcc.dg/vect/vect-25.c failures with -fgraphite-identity

2010-12-10 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46892

--- Comment #3 from Jack Howarth howarth at nitro dot med.uc.edu 2010-12-11 
04:40:47 UTC ---
Created attachment 22711
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22711
.vect dump file for gcc.dg/vect/vect-25 with -fno-graphite-identity


[Bug c/46553] Can't compile libiberty for i386-elf target.

2010-12-10 Thread mon...@monami-software.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46553

Masaki MURANAKA mon...@monami-software.com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WORKSFORME

--- Comment #2 from Masaki MURANAKA mon...@monami-software.com 2010-12-11 
04:43:23 UTC ---
This issue is fixed by Green  svn+ssh://gcc.gnu.org/svn/gcc/tr...@166996
So I close this as resolved.


[Bug middle-end/46892] gcc.dg/vect/vect-25.c failures with -fgraphite-identity

2010-12-10 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46892

--- Comment #4 from Jack Howarth howarth at nitro dot med.uc.edu 2010-12-11 
04:52:02 UTC ---
Created attachment 22712
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22712
preprocessed source for gcc.dg/vect/vect-25.c


[Bug debug/46893] New: [4.5/4.6 Regression] ICE: in trunc_int_for_mode, at explow.c:56 with -O -g

2010-12-10 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46893

   Summary: [4.5/4.6 Regression] ICE: in trunc_int_for_mode, at
explow.c:56 with -O -g
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz
  Host: x86_64-pc-linux-gnu
Target: x86_64-pc-linux-gnu


Created attachment 22714
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22714
reduced testcase (from gcc.dg/980526-1.c)

Compiler output:
$ gcc -O -g pr46893.c
pr46893.c: In function 'foo':
pr46893.c:12:1: internal compiler error: in trunc_int_for_mode, at explow.c:56
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

(gdb) bt
#0  fancy_abort (file=0x1103c60 /mnt/svn/gcc-trunk/gcc/explow.c, line=56,
function=0x1103db0 trunc_int_for_mode)
at /mnt/svn/gcc-trunk/gcc/diagnostic.c:892
#1  0x0068c5ef in trunc_int_for_mode (c=value optimized out,
mode=value optimized out)
at /mnt/svn/gcc-trunk/gcc/explow.c:56
#2  0x00671df9 in gen_int_mode (c=value optimized out, mode=value
optimized out)
at /mnt/svn/gcc-trunk/gcc/emit-rtl.c:426
#3  0x008b7a76 in simplify_const_unary_operation (code=value optimized
out, mode=DFmode, op=0x75ccf390, 
op_mode=value optimized out) at
/mnt/svn/gcc-trunk/gcc/simplify-rtx.c:1377
#4  0x008b3c50 in simplify_unary_operation (code=NEG, mode=DFmode,
op=0x75ccf390, op_mode=DFmode)
at /mnt/svn/gcc-trunk/gcc/simplify-rtx.c:522
#5  0x00608246 in cselib_expand_value_rtx_1 (orig=0x75ccf3b0,
evd=value optimized out, 
max_depth=value optimized out) at /mnt/svn/gcc-trunk/gcc/cselib.c:1475
#6  0x0060964f in cselib_expand_value_rtx_cb (orig=value optimized
out, regs_active=value optimized out, 
max_depth=value optimized out, cb=value optimized out, data=value
optimized out)
at /mnt/svn/gcc-trunk/gcc/cselib.c:1226
#7  0x00a7bc22 in vt_expand_loc_callback (x=0x17e1e30, regs=0x17a44c0,
max_depth=8, data=0x7fffd370)
at /mnt/svn/gcc-trunk/gcc/var-tracking.c:7008
#8  0x00607fc2 in cselib_expand_value_rtx_1 (orig=0x17e1e30,
evd=0x7fffd340, max_depth=8)
at /mnt/svn/gcc-trunk/gcc/cselib.c:1379
#9  0x0060964f in cselib_expand_value_rtx_cb (orig=value optimized
out, regs_active=value optimized out, 
max_depth=value optimized out, cb=value optimized out, data=value
optimized out)
at /mnt/svn/gcc-trunk/gcc/cselib.c:1226
#10 0x00a68f8b in vt_expand_loc (loc=value optimized out, vars=value
optimized out)
at /mnt/svn/gcc-trunk/gcc/var-tracking.c:7071
#11 0x00a77e72 in vt_expand_loc (varp=0x17bc340, data=value optimized
out)
at /mnt/svn/gcc-trunk/gcc/var-tracking.c:7065
#12 emit_note_insn_var_location (varp=0x17bc340, data=value optimized out) at
/mnt/svn/gcc-trunk/gcc/var-tracking.c:7182
#13 0x010a6028 in htab_traverse_noresize (htab=value optimized out, 
callback=0xa777e0 emit_note_insn_var_location, info=0x7fffd590) at
/mnt/svn/gcc-trunk/libiberty/hashtab.c:784
#14 0x00a6f74d in emit_notes_for_changes (insn=0x77ee8798,
where=EMIT_NOTE_AFTER_INSN, 
vars=value optimized out) at /mnt/svn/gcc-trunk/gcc/var-tracking.c:7531
#15 0x00a756bd in emit_notes_in_bb () at
/mnt/svn/gcc-trunk/gcc/var-tracking.c:7930
#16 vt_emit_notes () at /mnt/svn/gcc-trunk/gcc/var-tracking.c:7997
#17 0x00a7b713 in variable_tracking_main_1 () at
/mnt/svn/gcc-trunk/gcc/var-tracking.c:8609
#18 variable_tracking_main () at /mnt/svn/gcc-trunk/gcc/var-tracking.c:8623
#19 0x007ec63f in execute_one_pass (pass=0x16366a0) at
/mnt/svn/gcc-trunk/gcc/passes.c:1553
#20 0x007ec905 in execute_pass_list (pass=0x16366a0) at
/mnt/svn/gcc-trunk/gcc/passes.c:1608
#21 0x007ec917 in execute_pass_list (pass=0x16331a0) at
/mnt/svn/gcc-trunk/gcc/passes.c:1609
#22 0x007ec917 in execute_pass_list (pass=0x1633200) at
/mnt/svn/gcc-trunk/gcc/passes.c:1609
#23 0x0092d156 in tree_rest_of_compilation (fndecl=0x75cc3f00) at
/mnt/svn/gcc-trunk/gcc/tree-optimize.c:422
#24 0x00af2962 in cgraph_expand_function (node=0x75cc8160) at
/mnt/svn/gcc-trunk/gcc/cgraphunit.c:1508
#25 0x00af4f3a in cgraph_expand_all_functions () at
/mnt/svn/gcc-trunk/gcc/cgraphunit.c:1567
#26 cgraph_optimize () at /mnt/svn/gcc-trunk/gcc/cgraphunit.c:1827
#27 0x00af54ba in cgraph_finalize_compilation_unit () at
/mnt/svn/gcc-trunk/gcc/cgraphunit.c:1031
#28 0x00508cdc in c_write_global_declarations () at
/mnt/svn/gcc-trunk/gcc/c-decl.c:9845
#29 0x008d69d6 in compile_file (argc=14, argv=0x7fffdb28) at
/mnt/svn/gcc-trunk/gcc/toplev.c:591
#30 do_compile (argc=14, argv=0x7fffdb28) at
/mnt/svn/gcc-trunk/gcc/toplev.c:1874
#31 toplev_main (argc=14, 

[Bug middle-end/46892] gcc.dg/vect/vect-25.c failures with -fgraphite-identity

2010-12-10 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46892

--- Comment #5 from Jack Howarth howarth at nitro dot med.uc.edu 2010-12-11 
04:55:45 UTC ---
Created attachment 22713
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22713
assembly for gcc.dg/vect-25 with -fgraphite-identity at -m32


[Bug middle-end/46892] gcc.dg/vect/vect-25.c failures with -fgraphite-identity

2010-12-10 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46892

--- Comment #6 from Jack Howarth howarth at nitro dot med.uc.edu 2010-12-11 
04:56:18 UTC ---
Created attachment 22715
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22715
assembly for gcc.dg/vect-25 with -fno-graphite-identity at -m32


[Bug other/46677] frontends and tree optimizers use *_TYPE_SIZE

2010-12-10 Thread amylaar at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46677

--- Comment #11 from Jorn Wolfgang Rennecke amylaar at gcc dot gnu.org 
2010-12-11 07:27:53 UTC ---
(In reply to comment #9)
 On Fri, 26 Nov 2010, amylaar at gcc dot gnu.org wrote:

  What about the floating-point types?  Or would we rather have an
  enum type_kind?  Although that might be confused with what we used to
  have for varargs before gimple, i.e. a kind of type.
 
 I'd guess a separate hook; they tend to vary somewhat independently from 
 integer types.  bool would probably also be separate.  So you might have 
 hooks for: general integer types; bool; binary floating-point; decimal 
 floating-point; fixed-point; hook definitions would all have a 
 gcc_unreachable (); default case to catch inappropriate enum values being 
 passed in.  And another hook for ADA_LONG_TYPE_SIZE (defaulting to 
 calling targetm.integer_type_size (itk_long)), I guess.

We don't have any current decimal floating or fixed-point type size macros
to replace.  As discussed elsewhere, the stdint type, wchar type, and ada long
 type sizes are best dealt with by having a hook to define the types in terms
of enum integer_type_kind, and then looking up the size of the type size for
that integer type.

I.e. first, we want to describe the C integer / bool / binary floating
type sizes with three hooks:

DEFHOOK_UNDOC
(integer_type_size,
 ,
 int, (enum integer_type_kind),
 legacy_integer_type_size)

DEFHOOK
(bool_type_size,
 The size, in bits, of the boolean type used by most front ends that have
such\
  a type.  (Java is an exception, because the language defines the type size.)
\
  The default is @code{CHAR_TYPE_SIZE}.,
 int, (void),
 default_bool_type_size)

DEFHOOK_UNDOC
(float_type_size,
 ,
 int, (enum th_float_type),
 legacy_float_type_size)

We should probably make the type name information corresponding to enum
integer_type_kind / enum th_float_type_size available independent of
the type nodes having been initialized, so that the preprocessor can use the
names without trouble.

In another patch, we can define stdint / wchar / ada long  types
in therms of integer_type_kind.
There'll be slight overlap with the previously mentioned patch in that
we also need to move enum integer_type_kind to coretypes.h . 

We should probably make the type name information corresponding to enum
integer_type_kind / enum th_float_type_size available independent of
the type nodes having been initialized, so that the preprocessor can use the
names without trouble.

DEFHOOK
(stdint_type,
 Return the @code{enum integer_type_kind} value corresponding to @var{type}. 
If the type does not exist, return itk_none.,
 enum integer_type_kind, (enum th_stdint type),
 default_stdint_type)

DEFHOOK
(size_type,
 Return the @code{enum integer_type_kind} value corresponding to @var{type}.,
 enum integer_type_kind, (enum th_size_type type),
 default_size_type)

DEFHOOK
(atomic_type,
 Return the @code{enum integer_type_kind} value corresponding to
@code{sig_atomic_t}.,
 enum integer_type_kind, (void),
 default_atomic_type)

DEFHOOK
(wchar_type,
 Return the @code{enum integer_type_kind} value corresponding to @var{type}.,
 enum integer_type_kind (enum th_wchar_type type),
 default_wchar_type)

DEFHOOK
(ada_long_type,
 Return the @code{enum integer_type_kind} value corresponding to the ada
  @code{long} type.  The default is to use the same type as for C.,
 enum integer_type_kind (void),
 default_ada_long_type)

When these two patches are in, we can then make another patch to replace
the macros of the sizes of stdint / wchar / ada long types with using
the above hooks to fist lookup the enum integer_type_kind of the type, and
then its size .

 Yes, you could as a temporary transitional measure, like for other hooks, 
 but certainly I think all definitions of hooks in terms of the old macros 
 should be considered temporary with the aim being to convert all targets 
 and poison the macro names.

Yes, once the above outlined patches to hookize the consumer side are in,
and thus we have defined the interface, we can proceed at will to finish
the process.  Although some definitions seem somewhat tangled, so some or
all of that might have to wait for 4.7, lest we break stuff close to the
release.