[Bug c++/60113] Internal compiler error

2014-02-10 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60113

Marc Glisse glisse at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Known to work||4.7.3
 Resolution|--- |FIXED
  Known to fail||4.6.4

--- Comment #7 from Marc Glisse glisse at gcc dot gnu.org ---
Seems to have been fixed a while ago.


[Bug c/60117] simd reduction clause suppresses simd auto-vectorization when -fopenmp is set

2014-02-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60117

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
If the inner loop body is written as
x = a[i__]  x ? a[i__] : x;
then we actually do vectorize with -Ofast -fopenmp-simd, but for some reason
the vectorized loop is optimized away as dead later on.
For vectorization of the original loop, not sure if we can safely transform omp
simd array conditional stores into unconditional read + conditional operation +
unconditional store, or if we should (and why don't we) transform those into
MASK_STORE.


[Bug fortran/55762] Diagnostic: Passing a procedure to LEN should tell that one has passed a procedure

2014-02-10 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55762

--- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr ---
For the record the test uses invalid recursive I/O, hence hangs on darwin (see
pr30617).


[Bug target/60116] [4.8/4.9 Regression] wrong code at -Os on x86_64-linux-gnu in 32-bit mode

2014-02-10 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60116

--- Comment #11 from Uroš Bizjak ubizjak at gmail dot com ---
OK, confirmed using -Os -m32 with

gcc version 4.9.0 20140207 (experimental) [trunk revision 207597] (GCC) 

on CentOS 5.10.

It looks like a fault in the combine pass.

Before combine, we have:

...
(insn 14 11 15 2 (set (reg:SI 101 [ D.1782 ])
(mem/c:SI (symbol_ref:SI (d) [flags 0x2]  var_decl 0x2b47ff9e1ed8d)
[2 d+0 S4 A32])) t.c:18 90 {*movsi_internal}
 (nil))
...

(insn 33 32 34 5 (set (reg:SI 113 [ D.1782 ])
(sign_extend:SI (reg:QI 91 [ D.1785 ]))) t.c:17 148 {extendqisi2}
 (nil))
(insn 34 33 35 5 (set (reg:SI 114 [ D.1782 ])
(not:SI (reg:SI 113 [ D.1782 ]))) t.c:17 510 {*one_cmplsi2_1}
 (expr_list:REG_DEAD (reg:SI 113 [ D.1782 ])
(nil)))
(insn 35 34 37 5 (parallel [
(set (reg:DI 115 [ D.1786 ])
(sign_extend:DI (reg:SI 114 [ D.1782 ])))
(clobber (reg:CC 17 flags))
(clobber (scratch:SI))
]) t.c:17 143 {extendsidi2_1}
 (expr_list:REG_DEAD (reg:SI 114 [ D.1782 ])
(expr_list:REG_UNUSED (reg:CC 17 flags)
(nil
(insn 37 35 38 5 (parallel [
(set (reg:SI 117)
(ior:SI (subreg:SI (reg:DI 115 [ D.1786 ]) 0)
(subreg:SI (reg:DI 115 [ D.1786 ]) 4)))
(clobber (reg:CC 17 flags))
]) t.c:17 420 {*iorsi_1}
 (expr_list:REG_DEAD (reg:DI 115 [ D.1786 ])
(expr_list:REG_UNUSED (reg:CC 17 flags)
(nil
(insn 38 37 39 5 (set (reg:CCZ 17 flags)
(compare:CCZ (reg:SI 117)
(const_int 0 [0]))) t.c:17 3 {*cmpsi_ccno_1}
 (expr_list:REG_DEAD (reg:SI 117)
(nil)))
(insn 39 38 41 5 (set (reg:QI 119)
(ne:QI (reg:CCZ 17 flags)
(const_int 0 [0]))) t.c:17 624 {*setcc_qi}
 (expr_list:REG_DEAD (reg:CCZ 17 flags)
(nil)))
(insn 41 39 83 5 (set (reg:CCZ 17 flags)
(compare:CCZ (reg:SI 101 [ D.1782 ])
(const_int 0 [0]))) t.c:18 3 {*cmpsi_ccno_1}
 (nil))
(insn 83 41 42 5 (set (reg:SI 122 [ D.1787 ])
(zero_extend:SI (reg:QI 119))) 138 {*zero_extendqisi2}
 (expr_list:REG_DEAD (reg:QI 119)
(nil)))
(jump_insn 42 83 43 5 (set (pc)
(if_then_else (eq (reg:CCZ 17 flags)
(const_int 0 [0]))
(label_ref 47)
(pc))) t.c:18 628 {*jcc_1}
 (expr_list:REG_DEAD (reg:CCZ 17 flags)
(int_list:REG_BR_PROB 5000 (nil)))
 - 47)

Please note (insn 41) that sets flags for (jump_insn 42), comparing (reg:SI
101) a.k.a d with zero.

Later, combine mass-deletes everything from (insn 33) to (insn 83) to
substitute (insn 83) with constant load:

...
(insn 14 11 15 2 (set (reg:SI 101 [ D.1782 ])
(mem/c:SI (symbol_ref:SI (d) [flags 0x2]  var_decl 0x2b47ff9e1ed8d)
[2 d+0 S4 A32])) t.c:18 90 {*movsi_internal}
 (nil))
...
(note 33 32 34 5 NOTE_INSN_DELETED)
(note 34 33 35 5 NOTE_INSN_DELETED)
(note 35 34 37 5 NOTE_INSN_DELETED)
(note 37 35 39 5 NOTE_INSN_DELETED)
(note 39 37 41 5 NOTE_INSN_DELETED)
(note 41 39 83 5 NOTE_INSN_DELETED)
(insn 83 41 42 5 (set (reg:SI 122 [ D.1787 ])
(const_int 1 [0x1])) 90 {*movsi_internal}
 (nil))
(jump_insn 42 83 43 5 (set (pc)
(if_then_else (eq (reg:CCZ 17 flags)
(const_int 0 [0]))
(label_ref 47)
(pc))) t.c:18 628 {*jcc_1}
 (expr_list:REG_DEAD (reg:CCZ 17 flags)
(int_list:REG_BR_PROB 5000 (nil)))
 - 47)

Unfortunately unrelated (insn 41) is also killed, so flags are taken from
unrelated operation (that happens to be insn 32, just above insn 33).

Things go downhill from there.

[Bug rtl-optimization/60116] [4.8/4.9 Regression] wrong code at -Os on x86_64-linux-gnu in 32-bit mode

2014-02-10 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60116

Uroš Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

  Component|target  |rtl-optimization

--- Comment #12 from Uroš Bizjak ubizjak at gmail dot com ---
Re-confirmed as rtl-optimization problem.

[Bug rtl-optimization/49847] [4.7/4.8/4.9 Regression] NULL deref in fold_rtx (prev_insn_cc0 == NULL)

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49847

--- Comment #25 from Richard Biener rguenth at gcc dot gnu.org ---
(In reply to Jeffrey A. Law from comment #24)
 This is a mess.
 
 As noted in the other comments, we're considering a cc0-setter as a
 potentially trapping insn.  As a result the cc0-setter and cc0-consumer end
 up in different blocks.

 That's bad on so many levels and fixing it by hacking up fold_rtx like
 this just papers over the fundamental problem (though I must admit from a
 pragmatic standpoint, it's pretty effective).
 
 One could argue that the CFG building code could be tweaked so that a
 cc0-setter is never considered the end of a block.  The downside of that is
 we're lying to the compiler about the true nature of the CFG.  But that
 little white lie may be acceptable.  I haven't looked into how ugly that
 would be to implement.

Well, it re-exposes the original problem of not properly handling EH
with -fnon-call-exception and trapping FP comparisons?  I don't recall
all the issues with the original case I installed the change (at least
we do consider GIMPLE_CONDs as possibly trapping, just we don't allow
a possibly throwing condition in a GIMPLE_COND).

One fix for backends where cc0 setter and consumer
may not be separated is to duplicate the comparison like

 bb
   ...
   g = 0.0; // stmt ending BB with EH edges

 bb
   if (g = 0.0) // redundant compare, but with NOTHROW set
 ...

Or to revert the original change and think of a better fix.

But certainly you can't rely on the IL being

  if (g = 0.0)

instead of (what gimplification forces now)

  bool tem = g = 0.0;

  bb
if (tem != 0)

because with -fnon-call-exceptions writing that literally in C++ and
compiling with -O0 will yield exactly the same issue as you hit it
now (separated cc0 setter / consumer).

So reverting wouldn't be a real fix.  Testcase:

int foo (double x)
{
  try {
  bool cond = x = 0.0;
  if (cond)
return 1;
  return 0;
  }
  catch (...)
{
  return -1;
}
}

Where we shouldn't ICE when reverting the original fix and which at -O0
produces exactly the same issue you face now.

Best it into a runtime testcase that properly catches a trapping compare.

Richard.


[Bug fortran/49636] [F03] ASSOCIATE construct confused with slightly complicated case

2014-02-10 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49636

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-02-10
 CC||pault at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #3 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Confirmed on 4.7, 4.8, and trunk (4.9 r207643). At r207649, compiling the test
gives the following ICE:

pr49636.f90:14:0: internal compiler error: in gfc_get_element_type, at
fortran/trans-types.c:1183
 print '( i_bad=, 3I10)', i(1:3)

It is caused by r207646

Author:pault
Date:Sun Feb 9 20:50:21 2014 UTC (12 hours, 41 minutes ago)
Changed paths:5
Log Message:
2014-02-09  Paul Thomas  pa...@gcc.gnu.org

PR fortran/57522
* resolve.c (resolve_assoc_var): Set the subref_array_pointer
attribute for the 'associate-name' if necessary.
* trans-stmt.c (trans_associate_var): If the 'associate-name'
is a subref_array_pointer, assign the element size of the
associate variable to 'span'.

2014-02-09  Paul Thomas  pa...@gcc.gnu.org

PR fortran/57522
* gfortran.dg/associated_target_5.f03 : New test


[Bug ipa/60120] wrong code (for code with the optimize attribute) at -Os on x86_64-linux-gnu in 32-bit mode

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60120

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-02-10
 Ever confirmed|0   |1

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
This looks like a dup of PR60062 to me - we call fn1 with the argument on the
stack but fn1 expects it in %eax.  Fixed on trunk and thus doesn't reproduce
there.


[Bug ipa/60120] wrong code (for code with the optimize attribute) at -Os on x86_64-linux-gnu in 32-bit mode

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60120

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
dup.

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


[Bug target/60062] [4.7/4.8 Regression] wrong code (for code with the optimize attribute) at -O1 and above on x86_64-linux-gnu in 32-bit mode

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60062

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work|4.8.3   |4.9.0
   Target Milestone|4.9.0   |4.7.4
Summary|[4.7/4.9 Regression] wrong  |[4.7/4.8 Regression] wrong
   |code (for code with the |code (for code with the
   |optimize attribute) at -O1  |optimize attribute) at -O1
   |and above on|and above on
   |x86_64-linux-gnu in 32-bit  |x86_64-linux-gnu in 32-bit
   |mode|mode

--- Comment #7 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed on trunk, latent on the branches (see duplicates).


[Bug target/60062] [4.7/4.8 Regression] wrong code (for code with the optimize attribute) at -O1 and above on x86_64-linux-gnu in 32-bit mode

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60062

--- Comment #8 from Richard Biener rguenth at gcc dot gnu.org ---
*** Bug 60120 has been marked as a duplicate of this bug. ***


[Bug rtl-optimization/60116] [4.8/4.9 Regression] wrong code at -Os on x86_64-linux-gnu in 32-bit mode

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60116

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||wrong-code
   Priority|P3  |P2


[Bug tree-optimization/60115] [4.9 Regression] wrong code at -O3 on x86_64-linux-gnu

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60115

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #11 from Richard Biener rguenth at gcc dot gnu.org ---
Mine then.


[Bug tree-optimization/60115] [4.8/4.9 Regression] wrong code at -O3 on x86_64-linux-gnu

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60115

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
  Known to work||4.8.2
   Target Milestone|4.9.0   |4.8.3
Summary|[4.9 Regression] wrong code |[4.8/4.9 Regression] wrong
   |at -O3 on x86_64-linux-gnu  |code at -O3 on
   ||x86_64-linux-gnu
  Known to fail||4.8.3, 4.9.0


[Bug c++/60131] New: RTL check fail in rhs_regno

2014-02-10 Thread dcb314 at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60131

Bug ID: 60131
   Summary: RTL check fail in rhs_regno
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dcb314 at hotmail dot com

Created attachment 32095
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32095action=edit
gzipped C++ source code

I just compiled the attached code with gcc trunk dated 20140209 on a x86_64
box with flag -O2 and it said

/home/dcb/clang/llvm/lib/Target/R600/SIInstrInfo.cpp: In member function ‘const
llvm::TargetRegister
Class* llvm::SIInstrInfo::getOpRegClass(const llvm::MachineInstr, unsigned
int) const’:
/home/dcb/clang/llvm/lib/Target/R600/SIInstrInfo.cpp:467:1: internal compiler
error: RTL check: expe
cted code 'reg', have 'sign_extend' in rhs_regno, at rtl.h:1125
 }
 ^
0xd530c7 rtl_check_failed_code1(rtx_def const*, rtx_code, char const*, int,
char const*)
../../src/trunk/gcc/rtl.c:773
0x6145f2 rhs_regno
../../src/trunk/gcc/rtl.h:1125
0x167748b rhs_regno
../../src/trunk/gcc/ree.c:388
0x167748b combine_reaching_defs
../../src/trunk/gcc/ree.c:703
0x16781e2 find_and_remove_re
../../src/trunk/gcc/ree.c:997
0x16781e2 rest_of_handle_ree
../../src/trunk/gcc/ree.c:1068
0x16781e2 execute
../../src/trunk/gcc/ree.c:1107
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.

The gcc trunk has been bootstrapped with --enable-check=rtl switched on.

[Bug rtl-optimization/60131] [4.9 Regression] RTL check fail in rhs_regno

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60131

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||law at gcc dot gnu.org
   Target Milestone|--- |4.9.0
Summary|RTL check fail in rhs_regno |[4.9 Regression] RTL check
   ||fail in rhs_regno

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
ree - Jeff.


[Bug libgomp/60107] libgomp.c/pr58392.c etc. FAIL

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60107

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
Does solaris properly align its stack on the entry of main?
0xb5aedf64 + 0x10 isn't aligned for paddd.


[Bug fortran/60128] [4.8/4.9 Regression] Wrong ouput using en edit descriptor

2014-02-10 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60128

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

   What|Removed |Added

 CC||jb at gcc dot gnu.org,
   ||jvdelisle at gcc dot gnu.org

--- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr ---
This likely due to r185433. This fixed by the following patch

--- ../_clean/libgfortran/io/write_float.def2014-01-21 08:30:57.0
+0100
+++ libgfortran/io/write_float.def2014-02-10 10:23:13.0 +0100
@@ -1215,8 +1211,8 @@ determine_en_precision (st_parameter_dt 
 nbefore = 3 - nbefore;
 }
   int prec = f-u.real.d + nbefore;
-  if (dtp-u.p.current_unit-round_status != ROUND_UNSPECIFIED
-   dtp-u.p.current_unit-round_status != ROUND_PROCDEFINED)
+  /* if (dtp-u.p.current_unit-round_status != ROUND_UNSPECIFIED
+   dtp-u.p.current_unit-round_status != ROUND_PROCDEFINED) */
 prec += 2 * len + 4;
   return prec;
 }

For the following extended test

write(*,(en15.2)) -.4
write(*,(rp,en15.2)) -.4
write(*,(rc,en15.2)) -.4
write(*,(rz,en15.2)) -.4
write(*,(rd,en15.2)) -.4
write(*,(en15.2)) -.6
write(*,(en15.1)) -.4
end

before the patch, the output is

-444.40E-03
-444.40E-03
-444.44E-03
-444.44E-03
-444.45E-03
-444.50E-03
 -444.0E-03

after the patch, it is

-444.44E-03
-444.44E-03
-444.44E-03
-444.44E-03
-444.45E-03
-444.46E-03
 -444.4E-03

Regtesting in progress. Note that the block

-  if (dtp-u.p.current_unit-round_status != ROUND_UNSPECIFIED
-   dtp-u.p.current_unit-round_status != ROUND_PROCDEFINED)

appears in several places in libgfortran/io/write_float.def and I fail to see
the logic.


[Bug libgomp/60107] libgomp.c/pr58392.c etc. FAIL

2014-02-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60107

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org ---
Well, this isn't about main alignment (and, after all, main realigns the stack
anyway), but about stack alignment upon entering pthread_create callbacks.
If the Solaris libraries don't maintain 16-byte stack alignment, then either
you could arrange to compile parts of libgomp with -mincoming-stack-boundary=2
(or -mstackrealign) on Solaris/i?86 32-bit.  Or just make sure the default on
Solaris is -mincoming-stack-boundary=2 or whatever the libraries do guarantee.


[Bug c/60129] Imprecise column numbers in NOTEs on discarding const qualifiers from pointer target type

2014-02-10 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60129

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-02-10
 CC||manu at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
(In reply to Chengnian Sun from comment #0)
 Regarding the column numbers in the warnings, I am not sure whether they are
 expected as designed, as based on the warning message the user can still be
 able to infer which parameter such a warning is about. 

Most of the warnings in GCC were implemented before column numbers were
available. Even now that there are, some of the location information necessary
to print accurate column numbers is not available at the point of warning. GCC
just needs more contributors willing to work on these issues.

[Bug c++/60132] New: C++11: lack of is_trivially_copy_constructible

2014-02-10 Thread piotr.wyderski at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60132

Bug ID: 60132
   Summary: C++11: lack of is_trivially_copy_constructible
   Product: gcc
   Version: 4.8.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: piotr.wyderski at gmail dot com

The C++11 standard defines the content of type_traits
to contain, among other things, 

template class T struct is_trivially_copy_constructible;

GCC 4.8.2 does not provide this class.
There was a related renaming mess in
the late phase of the new standard definition
process (has_trivlal_destructorT etc.), so
IMHO this file needs a careful inspection to
check its conformance to the final version.

The bug has been found on Linux/x64 if this
fact is of any imnportance.


[Bug fortran/60128] [4.8/4.9 Regression] Wrong ouput using en edit descriptor

2014-02-10 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60128

--- Comment #3 from Dominique d'Humieres dominiq at lps dot ens.fr ---
With the patch in comment 2, the test gfortran.dg/edit_real_1.f90 fails for the
outputs #5, 6, and 13

 5 12.873E+03z
 6 12.344E-06z
 13999.999E+00z

instead of the expected outputs

 5 12.874E+03z
 6 12.345E-06z
 13  1.000E+03z


[Bug tree-optimization/60115] [4.8/4.9 Regression] wrong code at -O3 on x86_64-linux-gnu

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60115

--- Comment #12 from Richard Biener rguenth at gcc dot gnu.org ---
The issue is that tree_could_trap_p, while handling

case ARRAY_REF:
  base = TREE_OPERAND (expr, 0);
  if (tree_could_trap_p (base))
return true;
  if (TREE_THIS_NOTRAP (expr))
return false;
  return !in_array_bounds_p (expr);

doesn't handle out-of-bound accesses via MEM_REF at all.

case MEM_REF:
  if (TREE_CODE (TREE_OPERAND (expr, 0)) == ADDR_EXPR)
return false;

I have a fix.


[Bug regression/60133] New: [4.8 / 4.9 Regression] wrong multiarch name on aarch64-linux-gnu

2014-02-10 Thread doko at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60133

Bug ID: 60133
   Summary: [4.8 / 4.9 Regression] wrong multiarch name on
aarch64-linux-gnu
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: blocker
  Priority: P3
 Component: regression
  Assignee: unassigned at gcc dot gnu.org
  Reporter: doko at gcc dot gnu.org

Despite pinging this patch didn't see any review.  The rather creative way to
rename the libdir using a multilib configuration makes the 4.8 branch and trunk
unusable on aarch64-linux-gnu on Debian and Ubuntu.

patch and last ping at http://gcc.gnu.org/ml/gcc-patches/2014-01/msg02049.html


[Bug target/60074] g++.dg/vect/pr33426-ivdep-[34].cc FAIL on SPARC

2014-02-10 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60074

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #2 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
Author: ebotcazou
Date: Mon Feb 10 11:09:21 2014
New Revision: 207652

URL: http://gcc.gnu.org/viewcvs?rev=207652root=gccview=rev
Log:
* g++.dg/vect/pr33426-ivdep-3.cc: Require vect_int_mult as well.
* g++.dg/vect/pr33426-ivdep-4.cc: Likewise.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/vect/pr33426-ivdep-3.cc
trunk/gcc/testsuite/g++.dg/vect/pr33426-ivdep-4.cc


[Bug fortran/60128] [4.8/4.9 Regression] Wrong ouput using en edit descriptor

2014-02-10 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60128

--- Comment #4 from Dominique d'Humieres dominiq at lps dot ens.fr ---
The regression reported in comment 3 disappears with the following patch

--- ../_clean/libgfortran/io/write_float.def2014-01-21 08:30:57.0
+0100
+++ libgfortran/io/write_float.def2014-02-10 11:35:55.0 +0100

@@ -326,7 +322,7 @@ output_float (st_parameter_dt *dtp, cons
  for IEEE 754, this ought to be round to nearest, ties to
  even, corresponding to the Fortran ROUND='NEAREST'.  */
   case ROUND_PROCDEFINED: 
-  case ROUND_UNSPECIFIED:
+  /* case ROUND_UNSPECIFIED: */
   case ROUND_ZERO: /* Do nothing and truncation occurs.  */
 goto skip;
   case ROUND_UP:
@@ -338,6 +334,7 @@ output_float (st_parameter_dt *dtp, cons
   goto skip;
 goto updown;
   case ROUND_NEAREST:
+  case ROUND_UNSPECIFIED:
 /* Round compatible unless there is a tie. A tie is a 5 with
all trailing zero's.  */
 i = nafter + nbefore;
@@ -1215,8 +1212,8 @@ determine_en_precision (st_parameter_dt 
 nbefore = 3 - nbefore;
 }
   int prec = f-u.real.d + nbefore;
-  if (dtp-u.p.current_unit-round_status != ROUND_UNSPECIFIED
-   dtp-u.p.current_unit-round_status != ROUND_PROCDEFINED)
+  /* if (dtp-u.p.current_unit-round_status != ROUND_UNSPECIFIED
+   dtp-u.p.current_unit-round_status != ROUND_PROCDEFINED) */
 prec += 2 * len + 4;
   return prec;
 }

From the comment

  /* For processor defined and unspecified rounding we use
 snprintf to print the exact number of digits needed, and thus
 let snprintf handle the rounding.  On system claiming support
 for IEEE 754, this ought to be round to nearest, ties to
 even, corresponding to the Fortran ROUND='NEAREST'.  */
  case ROUND_PROCDEFINED:
  case ROUND_UNSPECIFIED:
  case ROUND_ZERO: /* Do nothing and truncation occurs.  */

I think it is wrong to handle ROUND_PROCDEFINED and ROUND_UNSPECIFIED as
ROUND_ZERO.


[Bug regression/60133] [4.8/4.9 Regression] wrong multiarch name on aarch64-linux-gnu

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60133

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.8.3
Summary|[4.8 / 4.9 Regression]  |[4.8/4.9 Regression] wrong
   |wrong multiarch name on |multiarch name on
   |aarch64-linux-gnu   |aarch64-linux-gnu


[Bug debug/59992] [4.9 Regression] Compilation of insn-recog.c too slow due to var-tracking

2014-02-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59992

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org ---
Untested hack to generate somewhat smaller recog_* functions by dynamically
lowering the threshold if we'd see too big functions.  With this patch we get
149 recog_* functions instead of 122, and largest number of lines in one
function decreases from more than 2 to about 9000.

--- genrecog.c.jj2014-01-03 11:40:29.0 +0100
+++ genrecog.c2014-02-10 12:21:32.547199720 +0100
@@ -1504,15 +1504,26 @@ simplify_tests (struct decision_head *he
that is generated.  */

 static int
-break_out_subroutines (struct decision_head *head, int initial)
+break_out_subroutines (struct decision_head *head, int initial, int threshold)
 {
-  int size = 0;
+  int size = 0, t;
   struct decision *sub;

-  for (sub = head-first; sub; sub = sub-next)
-size += 1 + break_out_subroutines (sub-success, 0);
+  if (head-first  head-first-subroutine_number)
+return 1;
+
+  for (t = SUBROUTINE_THRESHOLD;
+   t  SUBROUTINE_THRESHOLD / 2;
+   t -= SUBROUTINE_THRESHOLD / 10)
+{
+  size = 0;
+  for (sub = head-first; sub; sub = sub-next)
+size += 1 + break_out_subroutines (sub-success, 0, t);
+  if (size  SUBROUTINE_THRESHOLD * 5)
+break;
+}

-  if (size  SUBROUTINE_THRESHOLD  ! initial)
+  if (size  threshold  ! initial)
 {
   head-first-subroutine_number = ++next_subroutine_number;
   size = 1;
@@ -2486,7 +2497,7 @@ process_tree (struct decision_head *head
   factor_tests (head);

   next_subroutine_number = 0;
-  break_out_subroutines (head, 1);
+  break_out_subroutines (head, 1, SUBROUTINE_THRESHOLD);
   find_afterward (head, NULL);

   /* We run this after find_afterward, because find_afterward needs


[Bug debug/59992] [4.9 Regression] Compilation of insn-recog.c too slow due to var-tracking

2014-02-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59992

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 32096
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32096action=edit
insn-recog.ii.bz2

Preprocessed source for
-fpreprocessed insn-recog.ii -m32 -mtune=generic -march=pentiumpro -O2
-fno-exceptions -fno-rtti -fasynchronous-unwind-tables -fno-common
With --enable-checking=yes,rtl x86_64 compiler without -g it still takes 10
minutes to compile.


[Bug go/60134] New: runtime_unmarkspan panics with unaligned pointer

2014-02-10 Thread vogt at linux dot vnet.ibm.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60134

Bug ID: 60134
   Summary: runtime_unmarkspan panics with unaligned pointer
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: go
  Assignee: ian at airs dot com
  Reporter: vogt at linux dot vnet.ibm.com

(using git commit id e63988cca99cbbf6e5c459379309fe3359fe7c09)

The test case convert.go fails with a panic in a panic on System/z:

-- snip --
fatal error: markspan: unaligned pointer

goroutine 1 [running]:
runtime_dopanic
../../../libgo/runtime/panic.c:77
runtime_throw
../../../libgo/runtime/panic.c:115
runtime_unmarkspan
../../../libgo/runtime/mgc0.c:2452
__go_free
../../../libgo/runtime/malloc.goc:240
__go_panic
../../../libgo/runtime/go-panic.c:106
runtime_panicstring
../../../libgo/runtime/panic.c:134
__go_map_index
../../../libgo/runtime/go-map-index.c:92
reflect.canonicalize
../../../libgo/go/reflect/type.go:1782
reflect.toType
../../../libgo/go/reflect/type.go:1791
reflect.TypeOf
../../../libgo/go/reflect/type.go:1026
fmt..import
../../../libgo/go/fmt/print.go:643
__go_init_main
/home/vogt/src/git/gcc/gcc/testsuite/go.test/test/convert.go:9
runtime_main
../../../libgo/runtime/proc.c:555
kickoff
../../../libgo/runtime/proc.c:232
-- snip --

It turns out that mgc0.c:runtime_unmarkspan() is called with a pointer that
should be 16 byte aligned (wordsPerBitmapWord) but is actually only 8 byte
aligned.  The original pointer points to the stack variable Defer d in
proc.c:runtime_main().  I guess the code should somehow enforce that Defer d
is aligned to mgc0.c:wordsPerBitmapWord bytes, although I'm not sure about the
right way to fix this.

Note: Even though adding __attribute__ ((align(16))) for d fixes the problem
for me, the test case still fails, but that is another issue that may or may
not be platform specific.  In any case I'll look into that and open another bug
report if necessary.


[Bug debug/59992] [4.9 Regression] Compilation of insn-recog.c too slow due to var-tracking

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59992

--- Comment #6 from Richard Biener rguenth at gcc dot gnu.org ---
I think the issue for that is probably

 ./cc1plus -quiet t.ii -O2 -ftime-report -m32 -Wdisabled-optimization
../../gcc/config/i386/sync.md: In function ‘int recog_102(rtx, rtx, int*)’:
../../gcc/config/i386/sync.md:518:1: warning: const/copy propagation disabled:
34779 basic blocks and 85328 registers [-Wdisabled-optimization]
../../gcc/config/i386/sync.md:518:1: warning: PRE disabled: 34779 basic blocks
and 85328 registers [-Wdisabled-optimization]
../../gcc/config/i386/sync.md:518:1: warning: const/copy propagation disabled:
34779 basic blocks and 85328 registers [-Wdisabled-optimization]
../../gcc/config/i386/sync.md:518:1: warning: const/copy propagation disabled:
34536 basic blocks and 85329 registers [-Wdisabled-optimization]
...

so we hit the self-imposed limits in cprop/gcse which then likely makes
the compiler (the insn-recog part) very slow?

As other parts of the compiler don't turn themselves off because of DF
memory use at least the comment before this limit seems odd to me.
(the compile still uses 1.7GB of ram for me).

One issue is definitely the explicitely represented maximum set in lcm.c
compute_available (and others - but that's used by both gcse and cprop).

[Bug debug/59992] [4.9 Regression] Compilation of insn-recog.c too slow due to var-tracking

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59992

--- Comment #7 from Richard Biener rguenth at gcc dot gnu.org ---
Bumping to --param max-gcse-memory=400 * 1024 * 1024 fixes that and we get
(as expected from non-RTL checking -ftime-report)

 CPROP   :   4.82 ( 3%) usr   0.57 ( 8%) sys   5.61 ( 3%) wall 
112174 kB ( 4%) ggc
 PRE :  26.88 (16%) usr   0.78 (10%) sys  27.69 (16%) wall 
  4241 kB ( 0%) ggc
 TOTAL : 169.50 7.48   177.36   
3130446 kB


[Bug tree-optimization/60115] [4.8 Regression] wrong code at -O3 on x86_64-linux-gnu

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60115

--- Comment #14 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Mon Feb 10 13:51:23 2014
New Revision: 207656

URL: http://gcc.gnu.org/viewcvs?rev=207656root=gccview=rev
Log:
2014-02-10  Richard Biener  rguent...@suse.de

PR tree-optimization/60115
* tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
MEM_REF handling.  Properly verify that the accesses are not
out of the objects bound.

* gcc.dg/torture/pr60115.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr60115.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-eh.c


[Bug tree-optimization/60115] [4.8 Regression] wrong code at -O3 on x86_64-linux-gnu

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60115

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.9.0
Summary|[4.8/4.9 Regression] wrong  |[4.8 Regression] wrong code
   |code at -O3 on  |at -O3 on x86_64-linux-gnu
   |x86_64-linux-gnu|
  Known to fail|4.9.0   |

--- Comment #13 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed on trunk sofar.


[Bug c/60101] [4.7/4.8/4.9 Regression] Long compile times when mixed complex floating point datatypes are used in lengthy expressions

2014-02-10 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60101

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |mpolacek at gcc dot 
gnu.org

--- Comment #2 from Marek Polacek mpolacek at gcc dot gnu.org ---
Let me have a look.


[Bug rtl-optimization/60131] [4.9 Regression] RTL check fail in rhs_regno

2014-02-10 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60131

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

 CC||law at redhat dot com
   Assignee|unassigned at gcc dot gnu.org  |law at redhat dot com

--- Comment #2 from Jeffrey A. Law law at redhat dot com ---
Mine.  Fix ought to be trivial.


[Bug tree-optimization/59903] [4.8 Regression] ICE on valid code at -O3 on x86_64-linux-gnu (affecting trunk and 4.8.x)

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59903

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed.


[Bug tree-optimization/60115] [4.8 Regression] wrong code at -O3 on x86_64-linux-gnu

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60115

--- Comment #15 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Mon Feb 10 15:20:30 2014
New Revision: 207659

URL: http://gcc.gnu.org/viewcvs?rev=207659root=gccview=rev
Log:
2014-02-10  Richard Biener  rguent...@suse.de

Backport from mainline
2014-01-30  Richard Biener  rguent...@suse.de

PR tree-optimization/59903
* tree-vect-loop.c (vect_transform_loop): Guard multiple-types
check properly.

* gcc.dg/torture/pr59903.c: New testcase.

2014-02-10  Richard Biener  rguent...@suse.de

PR tree-optimization/60115
* tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
MEM_REF handling.  Properly verify that the accesses are not
out of the objects bound.

* gcc.dg/torture/pr60115.c: New testcase.

Added:
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/torture/pr59903.c
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/torture/pr60115.c
Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog
branches/gcc-4_8-branch/gcc/tree-eh.c
branches/gcc-4_8-branch/gcc/tree-vect-loop.c


[Bug tree-optimization/59903] [4.8 Regression] ICE on valid code at -O3 on x86_64-linux-gnu (affecting trunk and 4.8.x)

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59903

--- Comment #5 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Mon Feb 10 15:20:30 2014
New Revision: 207659

URL: http://gcc.gnu.org/viewcvs?rev=207659root=gccview=rev
Log:
2014-02-10  Richard Biener  rguent...@suse.de

Backport from mainline
2014-01-30  Richard Biener  rguent...@suse.de

PR tree-optimization/59903
* tree-vect-loop.c (vect_transform_loop): Guard multiple-types
check properly.

* gcc.dg/torture/pr59903.c: New testcase.

2014-02-10  Richard Biener  rguent...@suse.de

PR tree-optimization/60115
* tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
MEM_REF handling.  Properly verify that the accesses are not
out of the objects bound.

* gcc.dg/torture/pr60115.c: New testcase.

Added:
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/torture/pr59903.c
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/torture/pr60115.c
Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog
branches/gcc-4_8-branch/gcc/tree-eh.c
branches/gcc-4_8-branch/gcc/tree-vect-loop.c


[Bug middle-end/59990] [4.7/4.8 regression] incorrect memcpy optimization

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59990

--- Comment #15 from Richard Biener rguenth at gcc dot gnu.org ---
Backporting this to 4.8 regresses

//-m32
FAIL: gcc.target/i386/pr49168-1.c scan-assembler movdqu[\t ]*%xmm[0-9]+,[^,]*

flt128_va:
.LFB0:
.cfi_startproc
movl4(%esp), %eax
movdqa  20(%esp), %xmm0
movlps  %xmm0, (%eax)
movhps  %xmm0, 8(%eax)
ret

expanding from

flt128_va (void * mem, __float128 d)
{
  uint128_t _2;

;;   basic block 2, loop depth 0
;;pred:   ENTRY
  _2 = VIEW_CONVERT_EXPRuint128_t(d_5(D));
  MEM[(char * {ref-all})mem_3(D)] = _2;
  return;

which doesn't end up using a UNSPEC_STOREU insn as on trunk but

(insn 8 7 0 2 (set (mem:V2SF (plus:SI (reg/v/f:SI 60 [ mem ])
(const_int 8 [0x8])) [0 MEM[(char * {ref-all})mem_3(D)]+8 S8
A8])
(vec_select:V2SF (subreg:V4SF (reg/v:TF 61 [ d ]) 0)
(parallel [
(const_int 2 [0x2])
(const_int 3 [0x3])
])))
/space/rguenther/src/svn/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr49168-1.c:10
-1
 (nil))


[Bug middle-end/59990] [4.7/4.8 regression] incorrect memcpy optimization

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59990

--- Comment #16 from Richard Biener rguenth at gcc dot gnu.org ---
seems to be TARGET_SSE_TYPELESS_STORES tuning dependent (and that was changed
on trunk for generic).


[Bug tree-optimization/60115] [4.8 Regression] wrong code at -O3 on x86_64-linux-gnu

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60115

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #16 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed.


[Bug fortran/60060] [4.9 Regression] lto1: internal compiler error: in add_AT_specification, at dwarf2out.c:4096

2014-02-10 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60060

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
wrapup_global_declarations looks like it's a no-op in LTO (DECL_DEFER_OUTPUT
is always false).  I am testing the following which avoids (re-)outputting
debuginfo for local statics.

Index: gcc/lto/lto-lang.c
===
--- gcc/lto/lto-lang.c  (revision 207658)
+++ gcc/lto/lto-lang.c  (working copy)
@@ -1082,17 +1082,11 @@ lto_write_globals (void)
   if (flag_wpa)
 return;

-  /* Record the global variables.  */
-  vectree lto_global_var_decls = vNULL;
+  /* Output debug info for global variables.  */
   varpool_node *vnode;
   FOR_EACH_DEFINED_VARIABLE (vnode)
-lto_global_var_decls.safe_push (vnode-decl);
-
-  tree *vec = lto_global_var_decls.address ();
-  int len = lto_global_var_decls.length ();
-  wrapup_global_declarations (vec, len);
-  emit_debug_global_declarations (vec, len);
-  lto_global_var_decls.release ();
+if (!decl_function_context (vnode-decl))
+  debug_hooks-global_decl (vnode-decl);
 }

 static tree


[Bug rtl-optimization/60131] [4.9 Regression] RTL check fail in rhs_regno

2014-02-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60131

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
Reduced testcase for -O2:

struct A { short a; };
int **b;
unsigned long c;

bool foo ();
unsigned bar (unsigned i);
extern void baz () __attribute__((noreturn));

int *
test (unsigned x, struct A *y)
{
  unsigned v;
  if (foo () || y[x].a == -1)
{
  c = bar (x);
  return 0;
}
  v = y[x].a;
  if (v = 23)
baz ();
  return b[v];
}


[Bug preprocessor/56824] [4.8 regression] pragma GCC diagnostic push/pop fail with GCC diagnostic ignored -Waggregate-return

2014-02-10 Thread magnus.reftel at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56824

--- Comment #12 from Magnus Reftel magnus.reftel at gmail dot com ---
Works fine on trunk (tested version 96c7d4b1727c5f9ddcbb02fb69f727a0f2f3572e).


[Bug middle-end/52306] [4.8/4.9 regression] ICE in cselib_record_set, at cselib.c:2158

2014-02-10 Thread law at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52306

--- Comment #29 from Jeffrey A. Law law at gcc dot gnu.org ---
Author: law
Date: Mon Feb 10 16:25:44 2014
New Revision: 207662

URL: http://gcc.gnu.org/viewcvs?rev=207662root=gccview=rev
Log:
PR middle-end/52306
* reload1.c (emit_input_reload_insns): Do not create invalid RTL
when changing the SET_DEST of a prior insn to avoid an input
reload.

PR middle-end-52306
* gcc.c-torture/compile/pr52306.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr52306.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/reload1.c
trunk/gcc/testsuite/ChangeLog


[Bug middle-end/52306] [4.8 regression] ICE in cselib_record_set, at cselib.c:2158

2014-02-10 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52306

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

Summary|[4.8/4.9 regression] ICE in |[4.8 regression] ICE in
   |cselib_record_set, at   |cselib_record_set, at
   |cselib.c:2158   |cselib.c:2158

--- Comment #30 from Jeffrey A. Law law at redhat dot com ---
Fixed on the trunk.


[Bug c++/60135] New: add option to warn if ctor/conversion declared implicit

2014-02-10 Thread mw_triad at users dot sourceforge.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60135

Bug ID: 60135
   Summary: add option to warn if ctor/conversion declared
implicit
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mw_triad at users dot sourceforge.net

explicit is a great tool for avoiding mistakes in the use of a class.
Unfortunately, programmers must remember to use it, and there is not presently
a mechanism to diagnose failure to do so.

I would like to request that g++ add (1) a warning if a constructor or
conversion operator is not declared explicit, and (2) some mechanism (e.g. an
attribute) to silence this warning for a particular declaration, i.e. to
annotate that a constructor or conversion operator is intended to be implicit.
This would help to prevent forgetting to make such explicit when implicit
behavior is not desired.


[Bug rtl-optimization/60116] [4.8/4.9 Regression] wrong code at -Os on x86_64-linux-gnu in 32-bit mode

2014-02-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60116

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #13 from Jakub Jelinek jakub at gcc dot gnu.org ---
So, what happens is that we have:
(insn 39 38 41 5 (set (reg:QI 119)
(const_int 1 [0x1])) pr60116.c:17 93 {*movqi_internal}
 (expr_list:REG_DEAD (reg:CCZ 17 flags)
(nil)))

(insn 41 39 83 5 (set (reg:CCZ 17 flags)
(compare:CCZ (reg:SI 101 [ D.1460 ])
(const_int 0 [0]))) pr60116.c:18 3 {*cmpsi_ccno_1}
 (nil))

(insn 83 41 42 5 (set (reg:SI 122 [ D.1465 ])
(zero_extend:SI (reg:QI 119))) 138 {*zero_extendqisi2}
 (expr_list:REG_DEAD (reg:QI 119)
(nil)))

(the REG_DEAD on flags on the first insn supposedly comes from earlier
combining.
try_combine is then called on i3=insn83 and i2=insn39 and manages to combine
insn 83 into (set (reg:SI 122) (const_int 1 [0x1])).
The problem is when distribute_notes attempts to distribute the REG_DEAD
(reg:CCZ 17 flags) note from elim_i2=insn39 to i3=insn83.


[Bug target/59691] cilk-plus run failures on non-sse processors

2014-02-10 Thread bviyer at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59691

--- Comment #10 from bviyer at gcc dot gnu.org ---
Author: bviyer
Date: Mon Feb 10 16:56:54 2014
New Revision: 207664

URL: http://gcc.gnu.org/viewcvs?rev=207664root=gccview=rev
Log:
Fix for PR target/59691.
+2014-02-10  Balaji V. Iyer  balaji.v.i...@intel.com
+
+   PR target/59691
+   * runtime/config/x86/os-unix-sysdep.c (__builtin_cpu_supports): New
+   function.
+   (restore_x86_fp_state): Added a check if the cpu supports the
+   instruction before emitting it.
+   (sysdep_save_fp_ctrl_state): Likewise.
+


Modified:
trunk/libcilkrts/ChangeLog
trunk/libcilkrts/runtime/config/x86/os-unix-sysdep.c


[Bug c++/59248] [4.8 regression] pointless -Wconversion warning with sizeof, take 2

2014-02-10 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59248

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |NEW
 CC||jason at gcc dot gnu.org
  Known to work||4.9.0

--- Comment #3 from Jason Merrill jason at gcc dot gnu.org ---
Works better with pre-4.9.


[Bug rtl-optimization/60116] [4.8/4.9 Regression] wrong code at -Os on x86_64-linux-gnu in 32-bit mode

2014-02-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60116

--- Comment #14 from Jakub Jelinek jakub at gcc dot gnu.org ---
And the place where we first change insn 39 is when simplifying the comparison
that feeds it, in simplify_set:
  /* If we are setting CC0 or if the source is a COMPARE, look for the use of
 the comparison result and try to simplify it unless we already have used
 undobuf.other_insn.  */
...
6292  rtx pat = PATTERN (other_insn);
6293  undobuf.other_insn = other_insn;
6294  SUBST (*cc_use, tmp);

So, is it a bug that we've kept REG_DEAD flags there in this case, or just
distribute_notes shouldn't perform:
  /* If the register is being set at TEM, see if that is all
 TEM is doing.  If so, delete TEM.  Otherwise, make this
 into a REG_UNUSED note instead. Don't delete sets to
 global register vars.  */
  if ((REGNO (XEXP (note, 0)) = FIRST_PSEUDO_REGISTER
   || !global_regs[REGNO (XEXP (note, 0))])
   reg_set_p (XEXP (note, 0), PATTERN (tem)))
...
  SET_INSN_DELETED (tem);
Dunno how that could ever be safe if from_insn is the former i2 and i3 is a
different insn and tem has bigger luid than from_insn.  This code seems to be
in there even in 3.2.  Anyway, can somebody more familiar with this have a
look?


[Bug c/60101] [4.7/4.8/4.9 Regression] Long compile times when mixed complex floating point datatypes are used in lengthy expressions

2014-02-10 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60101

--- Comment #4 from Marek Polacek mpolacek at gcc dot gnu.org ---
Aha, checking=release is where the difference is evident.


[Bug c/60101] [4.7/4.8/4.9 Regression] Long compile times when mixed complex floating point datatypes are used in lengthy expressions

2014-02-10 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60101

--- Comment #3 from Marek Polacek mpolacek at gcc dot gnu.org ---
The difference I see is not that dramatic.

float.c
real10m5.540s
user10m0.678s
sys0m0.172s

double.c:
real7m54.983s
user7m50.344s
sys0m0.384s


[Bug target/59691] cilk-plus run failures on non-sse processors

2014-02-10 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59691

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #11 from Jeffrey A. Law law at redhat dot com ---
Fixed on trunk.


[Bug c/60114] Incorrect column number for -pedantic and -Wconversion

2014-02-10 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60114

--- Comment #6 from Marek Polacek mpolacek at gcc dot gnu.org ---
Patch posted: http://gcc.gnu.org/ml/gcc-patches/2014-02/msg00592.html, it
will probably need to wait for GCC 5.0.


[Bug c/60114] Incorrect column number for -pedantic and -Wconversion

2014-02-10 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60114

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||diagnostic
   Target Milestone|4.9.0   |---


[Bug c/60101] [4.7/4.8/4.9 Regression] Long compile times when mixed complex floating point datatypes are used in lengthy expressions

2014-02-10 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60101

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org ---
Started (expectably) with r146472 aka PR16202.


[Bug middle-end/60080] gcc.dg/vect/vect-nop-move.c FAILs

2014-02-10 Thread edlinger at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60080

--- Comment #3 from edlinger at gcc dot gnu.org ---
Author: edlinger
Date: Mon Feb 10 18:19:01 2014
New Revision: 207668

URL: http://gcc.gnu.org/viewcvs?rev=207668root=gccview=rev
Log:
2014-02-10  Bernd Edlinger  bernd.edlin...@hotmail.de

PR middle-end/60080
* cfgexpand.c (expand_asm_operands): Attach source location to
ASM_INPUT rtx objects.
* print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/cfgexpand.c
trunk/gcc/print-rtl.c


[Bug rtl-optimization/60116] [4.8/4.9 Regression] wrong code at -Os on x86_64-linux-gnu in 32-bit mode

2014-02-10 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60116

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |ebotcazou at gcc dot 
gnu.org

--- Comment #15 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
Will do.


[Bug c++/60132] C++11: lack of is_trivially_copy_constructible

2014-02-10 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60132

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org ---
Yes, this is known and documented:
http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2011


[Bug libstdc++/59603] std::random_shuffle tries to swap element with itself

2014-02-10 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59603

--- Comment #5 from Jonathan Wakely redi at gcc dot gnu.org ---
Even if swapping an object with itself is well-defined it's a waste of time, so
we shouldn't do it.

There's a discussion happening now with the C++ library working group to
resolve whether self-move-assignment is user error or supposed to be allowed
(i.e. whether the debug mode assertion is ok or not)


[Bug rtl-optimization/60131] [4.9 Regression] RTL check fail in rhs_regno

2014-02-10 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60131

--- Comment #4 from Jeffrey A. Law law at redhat dot com ---
The problem here is we first have the following candidate and defining insn:

gdb) p debug_rtx (cand-insn)
(insn 24 23 25 6 (set (reg:DI 0 ax [orig:100 D.2269 ] [100])
(zero_extend:DI (reg/v:SI 0 ax [orig:91 v ] [91]))) j.c:22 133
{*zero_extendsidi2}
 (nil))
$13 = void
(gdb) p debug_rtx (curr_insn)
(insn 33 32 35 7 (set (reg/v:SI 0 ax [orig:91 v ] [91])
(sign_extend:SI (reg:HI 0 ax [orig:88 D.2271 ] [88]))) j.c:19 146
{extendhisi2}
 (nil))

We eliminate insn 24 by changing insn 33 into:

(insn 33 32 35 7 (set (reg:DI 0 ax)
(zero_extend:DI (sign_extend:SI (reg:HI 0 ax [orig:88 D.2271 ] [88]
j.c:19 -1
 (nil))


Later we call combine_reaching_defs to see if we can eliminate insn 33.  It now
has an unexpected form and we trigger the checking fault.


[Bug c++/60113] Internal compiler error

2014-02-10 Thread dartmetrash at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60113

--- Comment #8 from lmat dartmetrash at gmail dot com ---
After I uploaded all these files, I thought, I probably should have compressed
that -- I bet the ratio would have been really good...

Unfortunately, ubuntu repos don't hold 4.7, etc. (sigh). I'll upgrade my
compiler. Thanks for looking!


[Bug fortran/60060] [4.9 Regression] lto1: internal compiler error: in add_AT_specification, at dwarf2out.c:4096

2014-02-10 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60060

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

   What|Removed |Added

 CC||iains at gcc dot gnu.org

--- Comment #5 from Dominique d'Humieres dominiq at lps dot ens.fr ---
The ICE is gone with the patch in comment 4 without regression. However on
darwin I still get the warnings reported in comment 0. Although this could be
hidden with the suitable dg-prune-output, I'ld prefer to see this fixed also.


[Bug c/60136] New: indexing an 8-element array with a long long results in bad results

2014-02-10 Thread daniel.hussey at nist dot gov
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60136

Bug ID: 60136
   Summary: indexing an 8-element array with a long long results
in bad results
   Product: gcc
   Version: 4.5.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: daniel.hussey at nist dot gov

My compile command is: gcc program.c -o test -L. -lcfitsio -lm 
I was indexing an 8-element double array with a long long integer.  When
converting the result to a string (sprintf of printf) the result was garbage. 
When used in computation, the correct value was used.


[Bug c/60101] [4.7/4.8/4.9 Regression] Long compile times when mixed complex floating point datatypes are used in lengthy expressions

2014-02-10 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60101

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|NEW
   Assignee|mpolacek at gcc dot gnu.org|unassigned at gcc dot 
gnu.org

--- Comment #6 from Marek Polacek mpolacek at gcc dot gnu.org ---
Unassigning for now.


[Bug fortran/60060] [4.9 Regression] lto1: internal compiler error: in add_AT_specification, at dwarf2out.c:4096

2014-02-10 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60060

--- Comment #6 from Tobias Burnus burnus at gcc dot gnu.org ---
(In reply to Dominique d'Humieres from comment #0)
 warning: invalid DWARF generated by the compiler: DIE 0x01f0 has
 multiple  AT_calling_convention attributes in
 '/var/folders/8q/sh_swgz96r7f5vnn08f7fxr0gn/T//ccLHCwpM.ltrans0.ltrans.
 o'.

(In reply to Dominique d'Humieres from comment #5)
 The ICE is gone with the patch in comment 4 without regression. However on
 darwin I still get the warnings reported in comment 0.

The calling convention should be (except on sh, cf. sh/sh.c's
TARGET_DWARF_CALLING_CONVENTION) be always DW_CC_normal - which is not emitted
as DWARF symbol. The only exception is Fortran's MAIN__ function, which is set
to DW_CC_program.

I wonder whether you see twice DW_CC_program or some other DW_CC_*. You could
try readelf to find out which AT_calling_convention are generated.


[Bug c/60136] indexing an 8-element array with a long long results in bad results

2014-02-10 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60136

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2014-02-10
 CC||mpolacek at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Marek Polacek mpolacek at gcc dot gnu.org ---
Please provide a testcase.
http://gcc.gnu.org/bugs/


[Bug target/60137] New: Code fails with -mcpu=power8 -O3 -mno-vsx

2014-02-10 Thread meissner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60137

Bug ID: 60137
   Summary: Code fails with -mcpu=power8 -O3 -mno-vsx
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: meissner at gcc dot gnu.org

Created attachment 32097
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32097action=edit
Program to show the problem

If you disable VSX but enable vectorization and power8 code generation, the
compiler returns a cannot split insn error:

foo.c: In function ‘init_reg_sets_1’:
foo.c:10:1: error: could not split insn
 }
 ^
(insn:TI 730 812 622 (set (reg:V16QI 6 6 [orig:378 vect_patt_115.53 ] [378])
(mem/c:V16QI (reg:DI 9 9) [0  S16 A128])) 1080 {*altivec_movv16qi}
 (expr_list:REG_DEAD (reg:DI 9 9)
(nil)))
foo.c:10:1: internal compiler error: in final_scan_insn, at final.c:2963
0x8ef868 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
/home/meissner/fsf-src/trunk/gcc/rtl-error.c:109
0x6ed23d final_scan_insn(rtx_def*, _IO_FILE*, int, int, int*)
/home/meissner/fsf-src/trunk/gcc/final.c:2963
0x6ed661 final(rtx_def*, _IO_FILE*, int)
/home/meissner/fsf-src/trunk/gcc/final.c:2024
0x6ed889 rest_of_handle_final
/home/meissner/fsf-src/trunk/gcc/final.c:4438
0x6ed889 execute
/home/meissner/fsf-src/trunk/gcc/final.c:4513
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.

[Bug target/60137] Code fails with -mcpu=power8 -O3 -mno-vsx

2014-02-10 Thread meissner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60137

Michael Meissner meissner at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2014-02-10
 Ever confirmed|0   |1

--- Comment #1 from Michael Meissner meissner at gcc dot gnu.org ---
Note, it will work if you use either -mcpu=power7 -mno-vsx or -mcpu=power8
-mno-vsx -mno-altivec.


[Bug target/60138] New: superh single/double precision fpu mode setting is backwards and unusable

2014-02-10 Thread bugdal at aerifal dot cx
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60138

Bug ID: 60138
   Summary: superh single/double precision fpu mode setting is
backwards and unusable
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: bugdal at aerifal dot cx

The sh target switches between single and double precision fpu modes (needed
for operating on floats and doubles, respectively) via loading the fpscr from a
global variable array __fpscr_values[2]. At times in the past this array has
been provided by libgcc; it seems it's currently expected that libc provides
it.

Each time gcc needs to perform a floating point operation and does not know the
current mode, it loads the full fpscr value, clobbering any non-default
rounding mode (set by fesetround), exception flags (set by floating point
operations), and other state. This makes it impossible to implement working
fenv.h API on sh; while glibc implements these functions, they don't work,
because gcc immediately clobbers the fpscr before performing the next floating
point operation.

It should be noted that __fpscr_values is non-const, and in fact I've found
some software that writes non-default bits into this array so that it can use
non-default settings (particular, flush-denormals-to-zero mode) without them
getting clobbered (since gcc will happily reload whatever you put in this
array). I suspect the original intent was that the fenv.h functions could also
do this. However, that's utterly broken since __fpscr_values is global and
floating point environment is supposed to be thread-local.

To fix this, the ridiculous hack of loading the value for fpscr from
__fpscr_values and directly writing to the fpscr should be removed, and
replaced with a read-modify-write cycle (read old fpscr, set/mask precision
bit, and write back to fpscr). Naturally this will hurt performance but the
current code is simply non-working and needs to be fixed.

One could move __fpscr_values to TLS, but given that TLS access does not seem
to perform that well on sh, I suspect that's slower than the read-modify-write
cycle on fpscr.


[Bug fortran/49636] [F03] ASSOCIATE construct confused with slightly complicated case

2014-02-10 Thread pault at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49636

Paul Thomas pault at gcc dot gnu.org changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |pault at gcc dot gnu.org

--- Comment #4 from Paul Thomas pault at gcc dot gnu.org ---
Created attachment 32098
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32098action=edit
A fix for this problem

I am sure that this trick will fix pr57019 too.  This latter is claimed to be a
regression but I am sure that it never worked :-)  Nonetheless, I will take
advantage of the regression label!

I will work on it tomorrow night.

By the way, this patch regtests OK on trunk.  I have to make sure that
substrings of character arrays work OK with ASSOCIATE.

Thanks for the heads-up Dominique!

Cheers

Paul


[Bug c/60103] Spurious -Wsequence-point warning with -O1

2014-02-10 Thread mpolacek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60103

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-02-10
 CC||mpolacek at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #3 from Marek Polacek mpolacek at gcc dot gnu.org ---
I think the warning isn't spurious and should be output even with -O0.  But the
fact that we output the warning with -O is IMHO pure coincidence, we do it only
because we fold away the useless || 0.  So the bug is probably in
verify_sequence_points.

Note that C11 still has the notion of sequence point; it's C++11 where it was
renamed to sequenced after/before.


[Bug target/57936] ICE in rs6000_secondary_reload_inner:15144, type = load

2014-02-10 Thread amodra at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57936

--- Comment #2 from Alan Modra amodra at gmail dot com ---
No, cancel comment #1, I was fooled by version skew between the unpatched and
the patched compiler.  The testcase doesn't ICE on recent versions of gcc.


[Bug c++/59598] very simple code using file open for read

2014-02-10 Thread denis.v.koles...@safe-mail.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

--- Comment #51 from Denis Kolesnik denis.v.koles...@safe-mail.net ---
I will set as unconfirmed each time it will be changed, because I have no
ability to download from internet the version 4.6.1 from MinGW official
source(and the version I have now on my DVD could be contaminated with a
virus). Maybe you are right and there is no bug. 

I could make diplomacy even if there is a bug but not in key questions of my
politic views.

You also should acknowledge your mistakes. I do if I'm wrong, why you do not do
the same? It does not makes you bad, just shows you, that you should work on
yourself as I do and I do a lot of mistakes, which I acknowledge.

Sorry also for uncensored words, but if you will demand I will search something
that is unspoken now...

There is a version 4.6.1 from google, I will try it now and if there is no bug
I resolve this as invalid, but again not to forget about my key views.


[Bug target/59927] [4.9 Regression] ICE sorry, unimplemented: ms_abi attribute requires -maccumulate-outgoing-args or subtarget optimization implying it

2014-02-10 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59927

--- Comment #8 from Richard Henderson rth at gcc dot gnu.org ---
(In reply to Kai Tietz from comment #7)
 One side-note I have about this patch.  Due this allow drap-register for
 x64, we seem to need to enable eax_live for this target, too.
 
 See in ix86_expand_prologue the lines
 ...
 if (!TARGET_64BIT_MS_ABI)
   eax_live = ix86_eax_live_at_start_p ();
 ...


In theory it shouldn't matter.  Unlike the unix 64-bit abi, EAX is
never live for any w64 abi.  On the other hand, removing the condition
shouldn't hurt either, making the code less confusing.


[Bug c++/59598] very simple code using file open for read

2014-02-10 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #52 from Andrew Pinski pinskia at gcc dot gnu.org ---
I think you will find that you need to open the file in binary mode and that
might help you out.  And that the char is 8bit characters so the you need to
look up the encoding format for UTF-8.


[Bug c++/59598] very simple code using file open for read

2014-02-10 Thread denis.v.koles...@safe-mail.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

Denis Kolesnik denis.v.koles...@safe-mail.net changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |---

--- Comment #53 from Denis Kolesnik denis.v.koles...@safe-mail.net ---
I will try to not such google services, because I'm not sure that my conditions
will be respected and I will search guaranties.

But while a character is 8bit what does it change? All russian letters, that
are used in current russian language are coded in the similar maner?!


[Bug c++/59598] very simple code using file open for read

2014-02-10 Thread denis.v.koles...@safe-mail.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

--- Comment #54 from Denis Kolesnik denis.v.koles...@safe-mail.net ---
please do not close this issue untill I will have the abilitz to prove whether
it is a bug or not.


[Bug rtl-optimization/42863] [4.7/4.8/4.9 Regression] with auto increments

2014-02-10 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42863

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||law at redhat dot com
 Resolution|--- |FIXED

--- Comment #9 from Jeffrey A. Law law at redhat dot com ---
AFAICT the current trunk generates code that is as good as or better than
gcc-4.4.

The redundant moves/tests are gone.  And the load of dst out of the stack is
deferred until we know we need it.   There's a tiny bit of register shuffling
in one arm of a conditional, but it's offset by avoid it in another
conditional.

Overall, the trunk code is IMHO as good as or better than gcc-4.4. 

There are no plans to identify what changes caused the improved code
generation.  Obviously with no plans to identify the changes, there are no
plans to backport the changes to older release branches.


[Bug c++/59598] very simple code using file open for read

2014-02-10 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59598

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #55 from Andrew Pinski pinskia at gcc dot gnu.org ---
Seriously this bug report is out of hand.  First let me say this: what do you
think GCC is doing wrong?  If you want report a new bug as this bug is full of
many different bugs in your code; don't reopen this bug.  Please when you open
a new one explain what you think GCC is doing wrong and provide all the needed
data files (which you are missing right now).

Second the library functions like fopen and fgetc are not provided by GCC but
by your libc vendor (in the case of mingw, mingw and to some extend even
Microsoft).  So if this code is not working due to fopen/fgetc then it is not a
bug in GCC.

Note I see at least one bug in your code, fgetc returns an int type and EOF is
-1 in int as 0xff is a valid character (not in UTF-8 though).  It might be the
cause of the bug in the first place.


[Bug c/60139] New: Imprecise column number for -pedantic on non-computable initializer element

2014-02-10 Thread chengniansun at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60139

Bug ID: 60139
   Summary: Imprecise column number for -pedantic on
non-computable initializer element
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: chengniansun at gmail dot com

I have two questions regarding the warnings by gcc on array initializers. 
1) the column numbers in the warnings by -pedantic are not precise. 
2) the warning message says the warning is enabled by default, but in fact the
warning is only enabled with -pedantic. When I use the command 
$gcc-trunk -c -std=c89 non-constant-initializers.c
then no warning is emitted.



$: cat non-constant-initializers.c 
void fn() {
  int a1;
  int *p1 = a1;
  int** array[5] = 
  {p1, 
(void*)0, (void*)0, (void*)0, p1};

}
$: gcc-trunk -c -std=c89 -pedantic non-constant-initializers.c 
non-constant-initializers.c: In function ‘fn’:
non-constant-initializers.c:5:3: warning: initializer element is not computable
at load time [enabled by default]
   {p1, 
   ^
non-constant-initializers.c:6:9: warning: initializer element is not computable
at load time [enabled by default]
 (void*)0, (void*)0, (void*)0, p1};
 ^
$: gcc-trunk -c -std=c89 non-constant-initializers.c 
$: 
$:

[Bug lto/59468] [4.9 Regression] ICE on invalid C++ code with LTO in gimple_get_virt_method_for_binfo, at gimple-fold.c:3224

2014-02-10 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59468

--- Comment #9 from Jan Hubicka hubicka at gcc dot gnu.org ---
The ICE is already fixed by my reorg of gimple_get_virt_method_for_vtable.
I am experimenting with patch that adds a warning.

Honza


[Bug inline-asm/60140] New: Cross compiler i386 atom fails - divtf3.c

2014-02-10 Thread shenhan at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60140

Bug ID: 60140
   Summary: Cross compiler i386 atom fails - divtf3.c
   Product: gcc
   Version: 4.8.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: inline-asm
  Assignee: unassigned at gcc dot gnu.org
  Reporter: shenhan at google dot com
CC: llozano at google dot com, wmi at google dot com

Created attachment 32099
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=32099action=edit
test case

Note - this only fails for google/gcc-4_8 branch.

Compilation failure while build cross compiler for i386 atom. 

To reproduce - 
  configure:
 ~/gcc.git/configure --disable-bootstrap --enable-languages='c,c++'
--disable-multilib --disable-libatomic --disable-libmudflap
--disable-libssp --enable-libgomp --enable-__cxa_atexit
--enable-checking=release --disable-libquadmath --disable-libitm
--enable-esp --with-arch=atom --with-tune=atom --enable-frame-pointer
  Build - 
 make -j40
  Compile a testcase - 
 ./gcc/xgcc -B./gcc -O2 -fpic -c -m32 ./divtf3.pp.c
  Output - 
 /divtf3.pp.c:64:1194: error: ‘asm’ operand has impossible constraints

Note divtf3.pp.c is actually a preprocessed file from libgcc/soft-fp/divtf3.c.

[Bug target/57936] ICE in rs6000_secondary_reload_inner:15144, type = load

2014-02-10 Thread amodra at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57936

--- Comment #3 from Alan Modra amodra at gmail dot com ---
The testcase doesn't ICE since 206639.  That wasn't an rs6000 patch so we
probably still have the underlying issue in the rs6000 backend.


[Bug rtl-optimization/60141] New: ICE in i386.c distance_non_agu_define_in_bb

2014-02-10 Thread shenhan at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60141

Bug ID: 60141
   Summary: ICE in i386.c distance_non_agu_define_in_bb
   Product: gcc
   Version: 4.8.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: shenhan at google dot com
CC: llozano at google dot com, tejohnson at google dot com

This only fails for google/gcc-4_8

To reproduce - 
  configure:
 ~/gcc.git/configure --disable-bootstrap --enable-languages='c,c++'
--disable-multilib --disable-libatomic --disable-libmudflap
--disable-libssp --enable-libgomp --enable-__cxa_atexit
--enable-checking=release --disable-libquadmath --disable-libitm
--enable-esp --with-arch=atom --with-tune=atom --enable-frame-pointer
  Build - 
 make -j40
  Compile a testcase - 
   ./gcc/xgcc -B./gcc -g -O2 -fpic -c -m32 ~/SROA.pp.cpp
  Output - 
   SROA.cpp: In member function ‘void
{anonymous}::AllocaPartitioning::UseBuilder::operator()()’:
SROA.cpp:873:3: internal compiler error: Segmentation fault
0x8d0baf crash_signal
../../../gcc.git/gcc/toplev.c:346
0xa798c8 distance_non_agu_define_in_bb
../../../gcc.git/gcc/config/i386/i386.c:17506
0xa79cad distance_non_agu_define
../../../gcc.git/gcc/config/i386/i386.c:17564
0xa79cad ix86_lea_outperforms
../../../gcc.git/gcc/config/i386/i386.c:17730
0xb8e6ca output_89
../../../gcc.git/gcc/config/i386/i386.md:2152
0x72a5c3 final_scan_insn(rtx_def*, _IO_FILE*, int, int, int*)
../../../gcc.git/gcc/final.c:2895
0x72ae84 final(rtx_def*, _IO_FILE*, int)
../../../gcc.git/gcc/final.c:1986
0x72b46d rest_of_handle_final
../../../gcc.git/gcc/final.c:4432
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.

Debugging shows that in distance_non_agu_define_in_bb (i386.c),
BLOCK_FOR_INSN(start) returns zero, which caused this ICE.

A preliminary bisecting in google/gcc-4_8 shows that the follow CL introduces 
this ICE. (So I cc'ed Teresa Johnson)


commit 907fca49eae2da51a328eb192c691cc24f69e6af
Author: tejohnson tejohnson@138bc75d-0d04-0410-961f-82ee72b054a4
Date:   Mon Dec 2 18:28:19 2013 +

Backport the last few fixes for -freorder-blocks-and-partition from
trunk to google/4_8: r204985, r205057 and r205243


r204985 | tejohnson | 2013-11-18 14:38:51 -0800 (Mon, 18 Nov 2013) | 15
lines

This patch fixes an lto profiledbootstrap failure with
-freorder-blocks-and-partition enabled. Currently compgotos
is the only pass that goes into cfglayout mode after bb reordering,
which is undesireable (and in the case of
-freorder-blocks-and-partition
can cause illegal partitioning) because of the optimizations performed
on the cfg when going into cfglayout mode. Moved compgoto before
bb reordering to avoid these problems.

2013-11-18  Teresa Johnson  tejohn...@google.com

* gcc/cfgrtl.c (cfg_layout_initialize): Assert if we
try to go into cfglayout after bb reordering.
* gcc/passes.def: Move compgotos before bb reordering
since it goes into cfglayout.



r205057 | tmsriram | 2013-11-19 14:12:21 -0800 (Tue, 19 Nov 2013) | 7
lines

Emit a label for the split cold function part.  Label name is formed by
suffixing the original function name with cold.

Patch tested for bootstrap on all default languages on x86_64 and
regression testsuite checked for parity with RUNTESTFLAGS -m32 and m64.

2013-11-19  Sriraman Tallam  tmsri...@google.com

* final.c (final_scan_insn): Emit a label for the split
cold function part.  Label name is formed by suffixing
the original function name with cold.

2013-11-19  Sriraman Tallam  tmsri...@google.com

* gcc.dg/tree-prof/cold_partition_label.c: New testcase.



r205243 | tejohnson | 2013-11-21 20:16:47 -0800 (Thu, 21 Nov 2013) | 6
lines

2013-11-21  Teresa Johnson  tejohn...@google.com

* cfgcleanup.c (outgoing_edges_match): Walk up past note instructions
not understood by old_insns_match_p.




git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/google/gcc-4_8@205594
138bc75d-0d04-0410-961f-82ee72b054a4

[Bug target/59927] [4.9 Regression] ICE sorry, unimplemented: ms_abi attribute requires -maccumulate-outgoing-args or subtarget optimization implying it

2014-02-10 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59927

--- Comment #9 from Richard Henderson rth at gcc dot gnu.org ---
Author: rth
Date: Tue Feb 11 01:12:38 2014
New Revision: 207677

URL: http://gcc.gnu.org/viewcvs?rev=207677root=gccview=rev
Log:
PR target/59927

* calls.c (expand_call): Don't double-push for reg_parm_stack_space.
* config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
ms-abi vs -mno-accumulate-outgoing-args.
(ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
* config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
respect to ms-abi.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/calls.c
trunk/gcc/config/i386/i386.c
trunk/gcc/config/i386/i386.h


[Bug target/40454] [4.7/4.8/4.9 regression] zlib is about 20% slower when compiled with GCC 4.4.1

2014-02-10 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40454

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||law at redhat dot com
 Resolution|--- |WONTFIX

--- Comment #21 from Jeffrey A. Law law at redhat dot com ---
Without an in-depth analysis from someone with real hardware there's simply
nothing we're going to be able to do here. 

Sadly we don't have good tools in the m68k world like valgrind, oprofile, etc
which would allow for a good in-depth analysis of what's going on.  And I've
found performance testing within the anarym emulator to be too variable to be
of any value.

I'm closing as WONTFIX as that's the sad, unfortunate reality.