[Bug c++/63356] Compilation failure where clang does not have problems

2015-01-11 Thread fiesh at zefix dot tv
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63356

--- Comment #13 from fiesh at zefix dot tv ---
Are there any news on this bug?  At least for us, this keeps production code
from being able to work with any boost 1.55, which is becoming an increasingly
bigger issue.


[Bug target/63321] [SH] Unused T bit result of shll / shlr insns

2015-01-11 Thread olegendo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63321

--- Comment #6 from Oleg Endo olegendo at gcc dot gnu.org ---
The shll/shlr insns effectively perform two operations:
  T = zero_extract single bit 0 / 31 from reg
  reg = reg  1 / reg  1.

The other shift insns as in comment #5 perform only a single operation.  Thus
those two things should be probably handled slightly differently.

With my current patchset for handling single bit zero_extract (PR 64345), code
like

void test4 (unsigned int x, unsigned int* y)
{
  y[0] = (x  0)  1;
  y[1] = (x  1)  1;
  y[2] = (x  2)  1;
  y[3] = (x  3)  1;
}

results in the following insns right after the combine pass:

(insn 7 4 8 2 (set (reg:SI 171 [ D.1733 ])
(and:SI (reg/v:SI 169 [ x ])
(const_int 1 [0x1]))) sh_tmp.cpp:432 115 {*andsi_compact}
 (nil))

...

(insn 10 9 11 2 (parallel [
(set (reg:SI 173 [ D.1733 ])
(zero_extract:SI (reg/v:SI 169 [ x ])
(const_int 1 [0x1])
(const_int 1 [0x1])))
(clobber (reg:SI 147 t))
]) sh_tmp.cpp:433 409 {any_treg_expr_to_reg}
 (expr_list:REG_UNUSED (reg:SI 147 t)
(nil)))

...

(insn 13 12 14 2 (parallel [
(set (reg:SI 175 [ D.1733 ])
(zero_extract:SI (reg/v:SI 169 [ x ])
(const_int 1 [0x1])
(const_int 2 [0x2])))
(clobber (reg:SI 147 t))
]) sh_tmp.cpp:434 409 {any_treg_expr_to_reg}
 (expr_list:REG_UNUSED (reg:SI 147 t)
(nil)))

...

(insn 16 15 17 2 (parallel [
(set (reg:SI 177 [ D.1733 ])
(zero_extract:SI (reg/v:SI 169 [ x ])
(const_int 1 [0x1])
(const_int 3 [0x3])))
(clobber (reg:SI 147 t))
]) sh_tmp.cpp:435 409 {any_treg_expr_to_reg}
 (expr_list:REG_UNUSED (reg:SI 147 t)
(expr_list:REG_DEAD (reg/v:SI 169 [ x ])
(nil

Those pseudo-insns are then split into tst/bld/movt/movrt sequences in the
split1 pass.  If a special shll/shlr pass is done right after combine and
before split1, it's possible to identify potential good shll/shlr sequences
rather easily and rewrite the code to use shll/shlr instead.


[Bug target/58256] gcc for h8300 internal compiler error: in maybe_record_trace_start

2015-01-11 Thread gang.chen.5i5j at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58256

--- Comment #13 from Chen Gang gang.chen.5i5j at gmail dot com ---
For gcc version 5.0.0 20150109 (experimental) (GCC), can not find this issue
again. So at present, we can close it.


[Bug libstdc++/64560] New: [5 Regression] building libstdc++ with -fno-rtti fails in new cxx11-shim-facets.cc file

2015-01-11 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64560

Bug ID: 64560
   Summary: [5 Regression] building libstdc++ with -fno-rtti fails
in new cxx11-shim-facets.cc file
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: redi at gcc dot gnu.org

Someone on IRC pointed out that the build fails when configuring with
--enable-cxx-flags=-fno-rtti 

In file included from
/home/jwakely/src/gcc/libstdc++-v3/src/c++11/cow-shim_facets.cc:35:0:
/home/jwakely/src/gcc/libstdc++-v3/src/c++11/cxx11-shim_facets.cc: In member
function ‘const std::locale::facet* std::locale::facet::_M_cow_shim(const
std::locale::id*) const’:
/home/jwakely/src/gcc/libstdc++-v3/src/c++11/cxx11-shim_facets.cc:772:51:
error: ‘dynamic_cast’ not permitted with -fno-rtti
 if (auto* p = dynamic_castconst __shim*(this))
   ^

[Bug libstdc++/64560] [5 Regression] building libstdc++ with -fno-rtti fails in new cxx11-shim-facets.cc file

2015-01-11 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64560

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2015-01-11
   Assignee|unassigned at gcc dot gnu.org  |redi at gcc dot gnu.org
 Ever confirmed|0   |1


[Bug target/58256] gcc for h8300 internal compiler error: in maybe_record_trace_start

2015-01-11 Thread gang.chen.5i5j at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58256

Chen Gang gang.chen.5i5j at gmail dot com changed:

   What|Removed |Added

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

--- Comment #14 from Chen Gang gang.chen.5i5j at gmail dot com ---
For gcc version 5.0.0 20150109 (experimental) (GCC), can not find this issue
again. So at present, we can mark it as FIXED


[Bug libgcj/34574] wait() call hangs in _Jv_CondWait taking the monitor with it causing the application to hang

2015-01-11 Thread pashev.igor at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=34574

--- Comment #4 from Igor Pashev pashev.igor at gmail dot com ---
I can reploduce it with Debian/amd64 and gcc4.9:

Thread 3 (Thread 0x7f43f8764700 (LWP 16318)):
#0  __lll_lock_wait () at
../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1  0x7f445d4f74b9 in _L_lock_909 () from
/lib/x86_64-linux-gnu/libpthread.so.0
#2  0x7f445d4f72e0 in __GI___pthread_mutex_lock (mutex=0x7f4461280ea0) at
../nptl/pthread_mutex_lock.c:79
#3  0x7f445ef93684 in _Jv_MutexLock(_Jv_Mutex_t*) () from
/usr/lib/x86_64-linux-gnu/libgcj.so.15
#4  0x7f445ef8851c in _Jv_MonitorEnter () from
/usr/lib/x86_64-linux-gnu/libgcj.so.15
#5  0x004030fd in JvSynchronize::JvSynchronize (this=0x7f43f8763de0,
o=@0x6057e0: 0x7f44612cbc60) at /usr/include/c++/4.9/gcj/cni.h:99
#6  0x00402f25 in env_test::foo () at TestJVSynchronise19thDec.cc:18
#7  0x00402ef3 in env_test.run()void () at env_test.java:8
#8  0x00402430 in WorkerThread.run()void () at ThreadPool.java:154
#9  0x7f445ef8c16b in _Jv_ThreadRun(java::lang::Thread*) () from
/usr/lib/x86_64-linux-gnu/libgcj.so.15
#10 0x7f445ef93ff7 in ?? () from /usr/lib/x86_64-linux-gnu/libgcj.so.15
#11 0x7f445f7bb748 in ?? () from /usr/lib/x86_64-linux-gnu/libgcj.so.15
#12 0x7f445d4f50a4 in start_thread (arg=0x7f43f8764700) at
pthread_create.c:309
#13 0x7f445cc02ccd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 2 (Thread 0x7f43f7f63700 (LWP 16319)):
#0  __lll_lock_wait () at
../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1  0x7f445d4f74b9 in _L_lock_909 () from
/lib/x86_64-linux-gnu/libpthread.so.0
#2  0x7f445d4f72e0 in __GI___pthread_mutex_lock (mutex=0x7f4461280ea0) at
../nptl/pthread_mutex_lock.c:79
#3  0x7f445ef93684 in _Jv_MutexLock(_Jv_Mutex_t*) () from
/usr/lib/x86_64-linux-gnu/libgcj.so.15
#4  0x7f445ef8851c in _Jv_MonitorEnter () from
/usr/lib/x86_64-linux-gnu/libgcj.so.15
#5  0x004030fd in JvSynchronize::JvSynchronize (this=0x7f43f7f62de0,
o=@0x6057e0: 0x7f44612cbc60) at /usr/include/c++/4.9/gcj/cni.h:99
#6  0x00402f25 in env_test::foo () at TestJVSynchronise19thDec.cc:18
#7  0x00402ef3 in env_test.run()void () at env_test.java:8
#8  0x00402430 in WorkerThread.run()void () at ThreadPool.java:154
#9  0x7f445ef8c16b in _Jv_ThreadRun(java::lang::Thread*) () from
/usr/lib/x86_64-linux-gnu/libgcj.so.15
#10 0x7f445ef93ff7 in ?? () from /usr/lib/x86_64-linux-gnu/libgcj.so.15
#11 0x7f445f7bb748 in ?? () from /usr/lib/x86_64-linux-gnu/libgcj.so.15
#12 0x7f445d4f50a4 in start_thread (arg=0x7f43f7f63700) at
pthread_create.c:309
#13 0x7f445cc02ccd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 1 (Thread 0x7f44612ef740 (LWP 16118)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x7f445ef9380b in _Jv_CondWait(_Jv_ConditionVariable_t*, _Jv_Mutex_t*,
long long, int) () from /usr/lib/x86_64-linux-gnu/libgcj.so.15
#2  0x7f445ef88ab5 in void java::lang::Object::wait(long long, int) () from
/usr/lib/x86_64-linux-gnu/libgcj.so.15
#3  0x00402bd5 in Done.waitDone()void () at ThreadPool.java:213
#4  0x00402a2e in ThreadPool.complete()void () at ThreadPool.java:100
#5  0x0040305f in main (argc=1, argv=0x7fff5fac12e8) at
TestJVSynchronise19thDec.cc:39


[Bug ipa/64559] ICE at -Os on x86_64-linux-gnu in remove_unreachable_nodes, at ipa.c:582

2015-01-11 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64559

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-01-11
 CC||hubicka at gcc dot gnu.org,
   ||jakub at gcc dot gnu.org
   Target Milestone|--- |5.0
 Ever confirmed|0   |1

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org ---
Started with r219108.


[Bug fortran/37131] inline matmul for small matrix sizes

2015-01-11 Thread tkoenig at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=37131

Thomas Koenig tkoenig at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #17 from Thomas Koenig tkoenig at gcc dot gnu.org ---
I'm currently working on that.  Basically, it means adding a flexible
scalarizer in the front end passes.

I think I have some idea on how to go about this.


[Bug libstdc++/64560] [5 Regression] building libstdc++ with -fno-rtti fails in new cxx11-shim-facets.cc file

2015-01-11 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64560

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org ---
--- a/libstdc++-v3/src/c++11/cxx11-shim_facets.cc
+++ b/libstdc++-v3/src/c++11/cxx11-shim_facets.cc
@@ -768,9 +768,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   {
 using namespace __facet_shims;

+#if __cpp_rtti
 // If this is already a shim just use its underlying facet.
 if (auto* p = dynamic_castconst __shim*(this))
   return p-_M_get();
+#endif

 if (which == numpunctchar::id)
   return new numpunct_shimchar{this};


[Bug fortran/58023] [F03] ICE on invalid with bad PPC declaration

2015-01-11 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58023

--- Comment #6 from janus at gcc dot gnu.org ---
Author: janus
Date: Sun Jan 11 19:13:24 2015
New Revision: 219439

URL: https://gcc.gnu.org/viewcvs?rev=219439root=gccview=rev
Log:
2015-01-11  Janus Weil  ja...@gcc.gnu.org

PR fortran/58023
* resolve.c (resolve_fl_derived0): Set error flag if problems with the
interface of a procedure-pointer component were detected.

2015-01-11  Janus Weil  ja...@gcc.gnu.org

PR fortran/58023
* gfortran.dg/proc_ptr_comp_42.f90: New.

Added:
trunk/gcc/testsuite/gfortran.dg/proc_ptr_comp_42.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/testsuite/ChangeLog


[Bug fortran/58023] [F03] ICE on invalid with bad PPC declaration

2015-01-11 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58023

--- Comment #7 from janus at gcc dot gnu.org ---
I have finally committed the patch in comment 2 (sorry that it took so long).

The ICE on comment 0 is still there, but for consistency one should do a bit
more than shown in comment 5. Will take care of that next.


[Bug fortran/64508] [F03] interface check missing for procedure pointer component as actual argument

2015-01-11 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64508

--- Comment #2 from janus at gcc dot gnu.org ---
Author: janus
Date: Sun Jan 11 17:31:22 2015
New Revision: 219431

URL: https://gcc.gnu.org/viewcvs?rev=219431root=gccview=rev
Log:
2015-01-11  Janus Weil  ja...@gcc.gnu.org

PR fortran/64508
* interface.c (compare_parameter): Interface check for
procedure-pointer component as actual argument.

2015-01-11  Janus Weil  ja...@gcc.gnu.org

PR fortran/64508
* gfortran.dg/proc_ptr_comp_41.f90: New.

Added:
trunk/gcc/testsuite/gfortran.dg/proc_ptr_comp_41.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/interface.c
trunk/gcc/testsuite/ChangeLog


[Bug target/63724] [AArch64] Inefficient immediate expansion and hoisting.

2015-01-11 Thread yroux at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63724

--- Comment #4 from Yvan Roux yroux at gcc dot gnu.org ---
Author: yroux
Date: Sun Jan 11 18:36:42 2015
New Revision: 219433

URL: https://gcc.gnu.org/viewcvs?rev=219433root=gccview=rev
Log:
gcc/
2015-01-11  Yvan Roux  yvan.r...@linaro.org

Backport from trunk r217362, r217546.
2014-11-14  Ramana Radhakrishnan  ramana.radhakrish...@arm.com

PR target/63724
* config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out
numerical immediate handling to...
(aarch64_internal_mov_immediate): ...this. New.
(aarch64_rtx_costs): Use aarch64_internal_mov_immediate.
(aarch64_mov_operand_p): Relax predicate.
* config/aarch64/aarch64.md (movmode:GPI): Do not expand CONST_INTs.
(*movsi_aarch64): Turn into define_insn_and_split and new alternative
for 'n'.
(*movdi_aarch64): Likewise.

2014-11-11  James Greenhalgh  james.greenha...@arm.com

* config/aarch64/aarch64-simd.md
(aarch64_simd_bslmode_internal): Remove float cases, canonicalize.
(aarch64_simd_bslmode): Add gen_lowpart expressions where we
are punning between float vectors and integer vectors.

gcc/testsuite
2015-01-11  Yvan Roux  yvan.r...@linaro.org

Backport from trunk r217362.
2014-11-11  James Greenhalgh  james.greenha...@arm.com

* gcc.target/aarch64/vbslq_f64_1.c: New.
* gcc.target/aarch64/vbslq_f64_2.c: Likewise.
* gcc.target/aarch64/vbslq_u64_1.c: Likewise.
* gcc.target/aarch64/vbslq_u64_2.c: Likewise.


Added:
   
branches/linaro/gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/vbslq_f64_1.c
   
branches/linaro/gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/vbslq_f64_2.c
   
branches/linaro/gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/vbslq_u64_1.c
   
branches/linaro/gcc-4_9-branch/gcc/testsuite/gcc.target/aarch64/vbslq_u64_2.c
Modified:
branches/linaro/gcc-4_9-branch/gcc/ChangeLog.linaro
branches/linaro/gcc-4_9-branch/gcc/config/aarch64/aarch64-simd.md
branches/linaro/gcc-4_9-branch/gcc/config/aarch64/aarch64.c
branches/linaro/gcc-4_9-branch/gcc/config/aarch64/aarch64.md
branches/linaro/gcc-4_9-branch/gcc/testsuite/ChangeLog.linaro


[Bug fortran/64508] [F03] interface check missing for procedure pointer component as actual argument

2015-01-11 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64508

janus at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #4 from janus at gcc dot gnu.org ---
Actually closing.


[Bug fortran/64508] [F03] interface check missing for procedure pointer component as actual argument

2015-01-11 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64508

--- Comment #3 from janus at gcc dot gnu.org ---
Fixed with r219431. Closing.


[Bug tree-optimization/64563] New: ICE with -Wall -Wextra at -Os and above on x86_64-linux-gnu

2015-01-11 Thread su at cs dot ucdavis.edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64563

Bug ID: 64563
   Summary: ICE with -Wall -Wextra at -Os and above on
x86_64-linux-gnu
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: su at cs dot ucdavis.edu

The following code causes an ICE when compiled using the current gcc trunk with
-Wall -Wextra at -Os and above on x86_64-linux-gnu in both 32-bit and 64-bit
modes. 

It is a regression from 4.9.x.

$ gcc-trunk -v
Using built-in specs.
COLLECT_GCC=gcc-trunk
COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-unknown-linux-gnu/5.0.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-trunk/configure --prefix=/usr/local/gcc-trunk
--enable-languages=c,c++ --disable-werror --enable-multilib
Thread model: posix
gcc version 5.0.0 20150111 (experimental) [trunk revision 219429] (GCC) 

$ 
$ gcc-trunk -Os -c small.c
$ gcc-4.9 -Wall -Wextra -Os -c small.c
small.c: In function ‘fn1’:
small.c:7:14: warning: comparison between signed and unsigned integer
expressions [-Wsign-compare]
   d = b = (a != (e | 4294967288UL));
  ^
$ 
$ gcc-trunk -Wall -Wextra -Os -c small.c
small.c: In function ‘fn1’:
small.c:7:14: warning: comparison between signed and unsigned integer
expressions [-Wsign-compare]
   d = b = (a != (e | 4294967288UL));
  ^
small.c:5:1: internal compiler error: Segmentation fault
 fn1 ()
 ^
0xa9896f crash_signal
../../gcc-trunk/gcc/toplev.c:372
0xce9a44 contains_struct_check(tree_node const*, tree_node_structure_enum, char
const*, int, char const*)
../../gcc-trunk/gcc/tree.h:3128
0xce9a44 vrp_val_is_min
../../gcc-trunk/gcc/tree-vrp.c:241
0xcf0094 vrp_evaluate_conditional
../../gcc-trunk/gcc/tree-vrp.c:7550
0xd06454 fold_predicate_in
../../gcc-trunk/gcc/tree-vrp.c:9958
0xd06454 vrp_fold_stmt
../../gcc-trunk/gcc/tree-vrp.c:10001
0xc2c3d3 substitute_and_fold_dom_walker::before_dom_children(basic_block_def*)
../../gcc-trunk/gcc/tree-ssa-propagate.c:1148
0x10ad7e7 dom_walker::walk(basic_block_def*)
../../gcc-trunk/gcc/domwalk.c:188
0xc2bcf0 substitute_and_fold(tree_node* (*)(tree_node*), bool
(*)(gimple_stmt_iterator*), bool)
../../gcc-trunk/gcc/tree-ssa-propagate.c:1236
0xd033f4 vrp_finalize
../../gcc-trunk/gcc/tree-vrp.c:10189
0xd033f4 execute_vrp
../../gcc-trunk/gcc/tree-vrp.c:10305
0xd033f4 execute
../../gcc-trunk/gcc/tree-vrp.c:10384
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.
$ 





int a, b, c, d, f;
unsigned int e;

void
fn1 ()
{
  d = b = (a != (e | 4294967288UL));
  if (!d)
c = f || b;
}

[Bug libgcj/51615] Condition Variable queue state corruption and infinite loop

2015-01-11 Thread pashev.igor at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51615

--- Comment #3 from Igor Pashev pashev.igor at gmail dot com ---
I managed to work around this issue by disabling multithreaded compilation in
ECJ:


---
ecj-3.10.1.orig/src/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/Main.java
+++
ecj-3.10.1/src/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/Main.java
@@ -4106,7 +4106,7 @@ public void performCompilation() {
this.batchCompiler.remainingIterations =
this.maxRepetition-this.currentRepetition/*remaining iterations including this
one*/;
// temporary code to allow the compiler to revert to a single thread
String setting = System.getProperty(jdt.compiler.useSingleThread);
//$NON-NLS-1$
-   this.batchCompiler.useSingleThread = setting != null 
setting.equals(true); //$NON-NLS-1$
+   this.batchCompiler.useSingleThread = setting == null ||
setting.equals(true); //$NON-NLS-1$

if (this.compilerOptions.complianceLevel = ClassFileConstants.JDK1_6
 this.compilerOptions.processAnnotations) {


The I recompiled eclipse-ecj.jar on a system without this issue (Debian Linux
amd64), copied this jar to my system and rebuilt ecj.




P. S. I think Debian Linux/amd64 is also affected, see Bug 51615, but
multithreaded compilation works there.


[Bug fortran/63733] [4.8/4.9/5 Regression] [OOP] wrong resolution for OPERATOR generics

2015-01-11 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63733

--- Comment #8 from janus at gcc dot gnu.org ---
Author: janus
Date: Sun Jan 11 22:00:06 2015
New Revision: 219440

URL: https://gcc.gnu.org/viewcvs?rev=219440root=gccview=rev
Log:
2015-01-11  Janus Weil  ja...@gcc.gnu.org

PR fortran/63733
* interface.c (gfc_extend_expr): Look for type-bound operators before
non-typebound ones.

2015-01-11  Janus Weil  ja...@gcc.gnu.org

PR fortran/63733
* gfortran.dg/typebound_operator_20.f90: New.

Added:
trunk/gcc/testsuite/gfortran.dg/typebound_operator_20.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/interface.c
trunk/gcc/testsuite/ChangeLog


[Bug middle-end/64491] [5 Regression] incorrect warning: loop exit may only be reached after undefined behavior

2015-01-11 Thread joona.kiiski at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64491

--- Comment #5 from joona.kiiski at gmail dot com ---
Thanks for confirming the problem, Joost!

* The original reporter stated that also 4.9 branch is affected, but I
haven't tested this myself. No idea about 4.8 branch.

* Latest gcc stable releases (4.7.4, 4.8.4, 4.9.2) compile Stockfish
without this warning, so I assume that they are not affected.

* For Stockfish, the generated code is correct (despite the wrong analysis
by GCC). However I'm aware that GCC can do some aggressive optimizations in
this area, so in other cases, who knows...


On Sat, Jan 10, 2015 at 4:49 PM, Joost.VandeVondele at mat dot ethz.ch 
gcc-bugzi...@gcc.gnu.org wrote:

 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64491

 Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch changed:

What|Removed |Added

 
  Status|WAITING |NEW
Last reconfirmed|2015-01-04 00:00:00 |2015-1-10
  CC||Joost.VandeVondele at mat
 dot ethz
||.ch
 Summary|warning: loop exit may only |[5 Regression] incorrect
|be reached after undefined  |warning: loop exit may
 only
|behavior|be reached after undefined
||behavior
   Known to fail||5.0

 --- Comment #4 from Joost VandeVondele Joost.VandeVondele at mat dot
 ethz.ch ---
 The incorrect warning is confirmed.

 I wonder if this incorrect analysis could lead to wrong code generation.

 --
 You are receiving this mail because:
 You are on the CC list for the bug.



[Bug bootstrap/64561] [5 Regression] HAVE_LD_PIE_COPYRELOC is defined to 1 for broken linker

2015-01-11 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64561

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

   What|Removed |Added

 CC||ubizjak at gmail dot com
   Target Milestone|--- |5.0


[Bug c++/64562] New: Member functions with r-value reference for *this and deduced return type incorrectly rejected as ambiguous

2015-01-11 Thread sneves at dei dot uc.pt
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64562

Bug ID: 64562
   Summary: Member functions with r-value reference for *this and
deduced return type incorrectly rejected as ambiguous
   Product: gcc
   Version: 4.9.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: sneves at dei dot uc.pt

Consider the following program:

#include iostream

#define RETURN_TYPE auto

namespace {

struct S {
  RETURN_TYPE operator--()  {
return 1;
  }

  RETURN_TYPE operator--() const  {
return 2;
  }

  RETURN_TYPE operator--()  {
return 3;
  }

  RETURN_TYPE operator--() const  {
return 4;
  }
};

const S callme() { return {}; }

auto f1() {
  return --S();
}

auto f2() {
  return --callme();
}

auto f3() {
  S s;
  return --s;
}

auto f4() {
  const S s {};
  return --s;
}

}

int main() {
  std::cout  f1()   ;
  std::cout  f2()   ;
  std::cout  f3()   ;
  std::cout  f4()  std::endl;
}

The expected output would be 1 2 3 4. When RETURN_TYPE is defined to be
int, this is the result obtained. GCC (versions ranging from 4.8.2 to the
latest build), however, rejects this code when RETURN_TYPE is defined to be
auto or decltype(auto).


[Bug bootstrap/64561] New: [5 Regression] HAVE_LD_PIE_COPYRELOC is defined to 1 for broken linker

2015-01-11 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64561

Bug ID: 64561
   Summary: [5 Regression] HAVE_LD_PIE_COPYRELOC is defined to 1
for broken linker
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
  Assignee: unassigned at gcc dot gnu.org
  Reporter: hjl.tools at gmail dot com

When GCC is configured with linker without the bug fix for

https://sourceware.org/bugzilla/show_bug.cgi?id=17827

it may define HAVE_LD_PIE_COPYRELOC to 1 and generate GCC
which will fail to generate working executable as show in
the bug report above.  The fix is to incorporate the updated
testcase in

https://sourceware.org/ml/binutils-cvs/2015-01/msg00117.html

into the linker feature check.


[Bug ipa/63470] [5 Regression] internal compiler error: in estimate_edge_growth, at ipa-inline.h:308

2015-01-11 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63470

--- Comment #10 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Author: trippels
Date: Mon Jan 12 07:48:50 2015
New Revision: 219445

URL: https://gcc.gnu.org/viewcvs?rev=219445root=gccview=rev
Log:
ipa/63470 add testcase

2015-01-11  Markus Trippelsdorf  mar...@trippelsdorf.de

PR ipa/63470
* ipa/pr63470.C: New testcase.

Added:
trunk/gcc/testsuite/g++.dg/ipa/pr63470.C
Modified:
trunk/gcc/testsuite/ChangeLog


[Bug ipa/63470] [5 Regression] internal compiler error: in estimate_edge_growth, at ipa-inline.h:308

2015-01-11 Thread Joost.VandeVondele at mat dot ethz.ch
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63470

--- Comment #8 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 
---
Possibly fixed by (?) :

https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00640.html


[Bug ipa/63470] [5 Regression] internal compiler error: in estimate_edge_growth, at ipa-inline.h:308

2015-01-11 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63470

--- Comment #9 from Jan Hubicka hubicka at gcc dot gnu.org ---
The ICE still reproduces for me even though at different place now.  I am
looking ito it.


[Bug lto/64043] [5 Regression] ICE (segfault) with LTO: in tree_check/tree.h:2758 get_binfo_at_offset/tree.c:11914

2015-01-11 Thread izamyatin at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64043

--- Comment #16 from Igor Zamyatin izamyatin at gmail dot com ---
Hi, Honza!

I still see that performance degradations for spec2006 tests. Could you please
check those on your side?


[Bug middle-end/64491] [5 Regression] incorrect warning: loop exit may only be reached after undefined behavior

2015-01-11 Thread Joost.VandeVondele at mat dot ethz.ch
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64491

Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch changed:

   What|Removed |Added

  Known to work||4.9.2, 4.9.3

--- Comment #6 from Joost VandeVondele Joost.VandeVondele at mat dot ethz.ch 
---
In my testing current 4.9 branch doesn't warn about this.


[Bug ipa/63470] [5 Regression] internal compiler error: in estimate_edge_growth, at ipa-inline.h:308

2015-01-11 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63470

--- Comment #11 from Markus Trippelsdorf trippels at gcc dot gnu.org ---
Oh, well. I will revert the addition of the testcase.


[Bug target/64368] [5 Regression] Several libstdc++ test failures on darwin and others after r218964.

2015-01-11 Thread izamyatin at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64368

Igor Zamyatin izamyatin at gmail dot com changed:

   What|Removed |Added

 CC||izamyatin at gmail dot com

--- Comment #13 from Igor Zamyatin izamyatin at gmail dot com ---
Hi! 

Any plans on fixing this?


[Bug ipa/63470] [5 Regression] internal compiler error: in estimate_edge_growth, at ipa-inline.h:308

2015-01-11 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63470

--- Comment #12 from Jan Hubicka hubicka at gcc dot gnu.org ---
The other bug is double ajdusting of call_stmt_size when the call is turned
direct. Fixed thus:

Index: ipa-prop.c
===
--- ipa-prop.c  (revision 219430)
+++ ipa-prop.c  (working copy)
@@ -2736,6 +2736,7 @@
   converting indirect call in %s to direct call to %s\n,
   ie-caller-name (), callee-name ());
 }
+  struct cgraph_edge *orig = ie;
   if (!speculative)
 ie = ie-make_direct (callee);
   else
@@ -2750,11 +2751,16 @@
   ie = ie-make_speculative
 (callee, ie-count * 8 / 10, ie-frequency * 8 / 10);
 }
-  es = inline_edge_summary (ie);
-  es-call_stmt_size -= (eni_size_weights.indirect_call_cost
-- eni_size_weights.call_cost);
-  es-call_stmt_time -= (eni_time_weights.indirect_call_cost
-- eni_time_weights.call_cost);
+  /* If we resolved speuclative edge the cost is already up to date
+ for direct call (adjusted by inline_edge_duplication_hook).  */
+  if (ie == orig)
+{
+  es = inline_edge_summary (ie);
+  es-call_stmt_size -= (eni_size_weights.indirect_call_cost
+- eni_size_weights.call_cost);
+  es-call_stmt_time -= (eni_time_weights.indirect_call_cost
+- eni_time_weights.call_cost);
+}

   return ie;
 }
Index: ipa-inline-analysis.c
===
--- ipa-inline-analysis.c   (revision 219430)
+++ ipa-inline-analysis.c   (working copy)
@@ -1312,6 +1312,14 @@
   info-predicate = NULL;
   edge_set_predicate (dst, srcinfo-predicate);
   info-param = srcinfo-param.copy ();
+  if (!dst-indirect_unknown_callee  src-indirect_unknown_callee)
+{
+  gcc_checking_assert (src-caller == dst-caller);
+  info-call_stmt_size -= (eni_size_weights.indirect_call_cost
+  - eni_size_weights.call_cost);
+  info-call_stmt_time -= (eni_time_weights.indirect_call_cost
+  - eni_time_weights.call_cost);
+}
 }