[Bug lto/69133] [6 Regression] LTO segfault in lto_get_decl_name_mapping() on 483.xalancbmk with -flto-partition=none

2016-01-05 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69133

Markus Trippelsdorf  changed:

   What|Removed |Added

   Keywords|ice-on-valid-code   |ice-on-invalid-code

--- Comment #4 from Markus Trippelsdorf  ---
(In reply to Andrew Pinski from comment #3)
> (In reply to Markus Trippelsdorf from comment #2)
> 
> The code included here is undefined due to ODR violations.

Yes, that is why I used "ice-on-invalid-code" keyword, that you wrongly
changed.

[Bug target/65421] inefficient code returning float aggregates on powepc64le

2016-01-05 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65421

--- Comment #3 from Martin Sebor  ---
See also bug 69143.

[Bug bootstrap/69134] building a mips-cross compiler with in-tree mpfr-2.4.2 fails

2016-01-05 Thread paul.hua.gm at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69134

Paul Hua  changed:

   What|Removed |Added

 CC||paul.hua.gm at gmail dot com

--- Comment #1 from Paul Hua  ---
Try this patch for mpfr-2.4.2.

--- mpfr-longlong.h.bak 2016-01-06 11:13:03.474846621 +0800
+++ mpfr-longlong.h 2016-01-06 11:44:38.839800251 +0800
@@ -1011,7 +1011,7 @@
 #endif /* __m88000__ */

 #if defined (__mips) && W_TYPE_SIZE == 32
-#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
+#if __GNUC__ < 4
 #define umul_ppmm(w1, w0, u, v) \
   __asm__ ("multu %2,%3" : "=l" (w0), "=h" (w1) : "d" (u), "d" (v))
 #else
@@ -1024,7 +1024,7 @@
 #endif /* __mips */

 #if (defined (__mips) && __mips >= 3) && W_TYPE_SIZE == 64
-#if __GNUC__ > 2 || __GNUC_MINOR__ >= 7
+#if __GNUC__ < 4
 #define umul_ppmm(w1, w0, u, v) \
   __asm__ ("dmultu %2,%3" : "=l" (w0), "=h" (w1) : "d" (u), "d" (v))
 #else

[Bug target/69153] --with-advance-toolchain configure option does not correctly set configure variable target_header_dir

2016-01-05 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69153

--- Comment #2 from Peter Bergner  ---
(In reply to Andrew Pinski from comment #1)
> You are leaking a target specific configure option to the configure script. 
> This seems wrong.  Can't you set target_header_dir in config.gcc instead?

As the code is now, no, since config.gcc is included before the code that sets
$target_header_dir and that code unconditionally sets it, but I suppose we
could modify things such that the setting of $target_header_dir first tests
whether it's set or not before setting it, giving us the ability to set it in
config.gcc.  How about the following change that does that?

Index: gcc/configure.ac
===
--- gcc/configure.ac(revision 231201)
+++ gcc/configure.ac(working copy)
@@ -1401,6 +1401,7 @@
 . ${srcdir}/config.host

 target_gtfiles=
+target_header_dir=

 # Collect target-machine-specific information.
 . ${srcdir}/config.gcc
@@ -1997,20 +1998,22 @@
 SYSTEM_HEADER_DIR=$build_system_header_dir
 fi

-if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
-  if test "x$with_headers" != x; then
-target_header_dir=$with_headers
-  elif test "x$with_sysroot" = x; then
-target_header_dir="${test_exec_prefix}/${target_noncanonical}/sys-include"
-  elif test "x$with_build_sysroot" != "x"; then
-target_header_dir="${with_build_sysroot}${native_system_header_dir}"
-  elif test "x$with_sysroot" = xyes; then
-   
target_header_dir="${test_exec_prefix}/${target_noncanonical}/sys-root${native_system_header_dir}"
+if test "x$target_header_dir" == x; then
+  if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
+if test "x$with_headers" != x; then
+  target_header_dir=$with_headers
+elif test "x$with_sysroot" = x; then
+ 
target_header_dir="${test_exec_prefix}/${target_noncanonical}/sys-include"
+elif test "x$with_build_sysroot" != "x"; then
+  target_header_dir="${with_build_sysroot}${native_system_header_dir}"
+elif test "x$with_sysroot" = xyes; then
+ 
target_header_dir="${test_exec_prefix}/${target_noncanonical}/sys-root${native_system_header_dir}"
+else
+  target_header_dir="${with_sysroot}${native_system_header_dir}"
+fi
   else
-target_header_dir="${with_sysroot}${native_system_header_dir}"
+target_header_dir=${native_system_header_dir}
   fi
-else
-  target_header_dir=${native_system_header_dir}
 fi

 # If this is a cross-compiler that does not
Index: gcc/config.gcc
===
--- gcc/config.gcc  (revision 231201)
+++ gcc/config.gcc  (working copy)
@@ -4162,6 +4162,7 @@
-d "/opt/$with_advance_toolchain/bin/." -a \
-d "/opt/$with_advance_toolchain/include/."; then

+   target_header_dir=`find /opt/$with_advance_toolchain/
-path '*/include/features.h' | sed -e 's#/features.h##'`
tm_file="$tm_file ./advance-toolchain.h"
(at="/opt/$with_advance_toolchain"
 echo "/* Use Advance Toolchain $at */"

[Bug libstdc++/69116] [4.9/5/6 Regression] compile error when including valarray

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69116

--- Comment #3 from Andrew Pinski  ---
(In reply to TC from comment #2) 
> Deduction for this operator<< function template succeeds: `T` is deduced to
> be `x` from the left operand; the right operand is a non-deduced context
> because the supplied argument names a function template. Then substitution
> takes place, and we instantiate valarray (whose definition is needed to
> decide if it can be constructed from std::endl), which triggers a hard error
> because you can't return or take an abstract type by value. This is not
> diagnosed in GCC 4.7.3, likely due to PR51184.

Hmm, there is a SFINAE issue here then.
We should reduce this further.  A simple reduction based on the description
works still:
template struct foo {
T f();
void g(T);
};
template void operator<<(const T&, const foo&) {}
template void operator<<(const T&, void (*)(void)) {}

void endl(int);
void endl(void);

struct x
{
  virtual void flush() = 0;
};

void bar(x& os)
{
  os << endl;
}

--- CUT ---

Also I had confused end and endl earlier which is why I had messed up.

[Bug libstdc++/69116] [4.9/5/6 Regression] compile error when including valarray

2016-01-05 Thread rs2740 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69116

--- Comment #2 from TC  ---
I don't think this has anything to do with `end`. Consider the following code:

#include 

template struct foo {
T f();
void g(T);
};
template void operator<<(const T&, const foo&) {}

struct x : public std::ostream
{
  virtual void flush() = 0;
};

void bar(x& os)
{
  os << std::endl;
}

I don't have access to 4.8.0, but this compiles on 4.7.3 and fails on 4.8.1+.
(In the  case, std::operator<<(const T&, const valarray&) is
picked up by ADL.)

Deduction for this operator<< function template succeeds: `T` is deduced to be
`x` from the left operand; the right operand is a non-deduced context because
the supplied argument names a function template. Then substitution takes place,
and we instantiate valarray (whose definition is needed to decide if it can
be constructed from std::endl), which triggers a hard error because you can't
return or take an abstract type by value. This is not diagnosed in GCC 4.7.3,
likely due to PR51184.

[Bug middle-end/46555] [4.9/5/6 Regression] PHI RTL expansion leads to CSiBE regression

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46555

--- Comment #3 from Andrew Pinski  ---
I am going to try to work on this so it can be in for stage 1 of 7.

[Bug tree-optimization/68398] [6 Regression] coremark regression due to r229685

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68398

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |6.0
Summary|coremark regression due to  |[6 Regression] coremark
   |r229685 |regression due to r229685

[Bug libstdc++/69116] [4.9/5/6 Regression] compile error when including valarray

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69116

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |4.9.4

[Bug middle-end/47466] c++ __builtin_expect() regression

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47466

Andrew Pinski  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
  Known to work||5.0
 Resolution|--- |FIXED
   Target Milestone|--- |5.0

--- Comment #3 from Andrew Pinski  ---
This is fixed now.  I don't know what fixed it.

[Bug c/69126] [6 regression] _Pragma does not apply if part of a macro

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69126

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |6.0

[Bug fortran/69128] [4.9/5/6 Regression] OpenMP workshare problem with SUM()

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69128

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |4.9.4

[Bug target/69129] [6 Regression] ICE in get_attr_got, at config/mips/mips.md:694 on mips-linux-gnu

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69129

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
  Component|bootstrap   |target
   Target Milestone|--- |6.0

[Bug c++/69131] [4.9/5/6 Regression] default constructor of union incorrectly deleted

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69131

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |4.9.4

[Bug lto/69133] [6 Regression] LTO segfault in lto_get_decl_name_mapping() on 483.xalancbmk with -flto-partition=none

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69133

Andrew Pinski  changed:

   What|Removed |Added

   Keywords|ice-on-invalid-code |ice-on-valid-code
   Target Milestone|--- |6.0

[Bug lto/69133] [6 Regression] LTO segfault in lto_get_decl_name_mapping() on 483.xalancbmk with -flto-partition=none

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69133

--- Comment #3 from Andrew Pinski  ---
(In reply to Markus Trippelsdorf from comment #2)

The code included here is undefined due to ODR violations.

[Bug lto/69136] [6 Regression] ICE in lto_symtab_prevailing_virtual_decl, at lto/lto-symtab.c:991

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69136

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-01-06
   Target Milestone|--- |6.0
 Ever confirmed|0   |1

--- Comment #2 from Andrew Pinski  ---
Confirmed.

[Bug lto/69137] [6 Regression] ICE in odr_type_p, at ipa-utils.h:257

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69137

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #2 from Andrew Pinski  ---
-flto -std=gnu++0x -g

is enough to reproduce the bug.

[Bug lto/69082] Final link fails on ARM using lto

2016-01-05 Thread tulipawn at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69082

--- Comment #5 from PeteVine  ---
I got "lucky" with a single cpp file from dosbox:

COLLECT_GCC_OPTIONS='-D' 'HAVE_CONFIG_H' '-I' '.' '-I' '../..' '-I'
'../../include' '-I' '/usr/include/SDL' '-D' '_GNU_SOURCE=1' '-D' '_REENTRANT'
'-mcpu=cortex-a5' '-O3' '-flto' '-ffat-lto-objects' '-fipa-pta'
'-flto-partition=none' '-fprofile-generate' '-ftest-coverage' '-save-temps'
'-v' '-MT' 'core_normal.o' '-MD' '-MP' '-MF' '.deps/core_normal.Tpo' '-c' '-o'
'core_normal.o' '-shared-libgcc' '-mfloat-abi=hard' '-mfpu=vfpv3-d16' '-mthumb'
'-mtls-dialect=gnu'
 /usr/lib/gcc/arm-linux-gnueabihf/4.9/cc1plus -fpreprocessed core_normal.ii
-quiet -dumpbase core_normal.cpp -mcpu=cortex-a5 -mfloat-abi=hard
-mfpu=vfpv3-d16 -mthumb -mtls-dialect=gnu -auxbase-strip core_normal.o -O3
-version -flto -ffat-lto-objects -fipa-pta -flto-partition=none
-fprofile-generate -ftest-coverage -fstack-protector -Wformat -Wformat-security
-o core_normal.s
GNU C++ (Ubuntu/Linaro 4.9.3-8ubuntu2~14.04) version 4.9.3
(arm-linux-gnueabihf)
compiled by GNU C version 4.9.3, GMP version 5.1.3, MPFR version 3.1.3,
MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=94 --param ggc-min-heapsize=121377
GNU C++ (Ubuntu/Linaro 4.9.3-8ubuntu2~14.04) version 4.9.3
(arm-linux-gnueabihf)
compiled by GNU C version 4.9.3, GMP version 5.1.3, MPFR version 3.1.3,
MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=94 --param ggc-min-heapsize=121377
Compiler executable checksum: bd33a447d9f1fad5ef83ff3cc53feb50
COLLECT_GCC_OPTIONS='-D' 'HAVE_CONFIG_H' '-I' '.' '-I' '../..' '-I'
'../../include' '-I' '/usr/include/SDL' '-D' '_GNU_SOURCE=1' '-D' '_REENTRANT'
'-mcpu=cortex-a5' '-O3' '-flto' '-ffat-lto-objects' '-fipa-pta'
'-flto-partition=none' '-fprofile-generate' '-ftest-coverage' '-save-temps'
'-v' '-MT' 'core_normal.o' '-MD' '-MP' '-MF' '.deps/core_normal.Tpo' '-c' '-o'
'core_normal.o' '-shared-libgcc' '-mfloat-abi=hard' '-mfpu=vfpv3-d16' '-mthumb'
'-mtls-dialect=gnu'
 as -v -I . -I ../.. -I ../../include -I /usr/include/SDL -mcpu=cortex-a5
-mfloat-abi=hard -mfpu=vfpv3-d16 -meabi=5 -o core_normal.o core_normal.s
GNU assembler version 2.24 (arm-linux-gnueabihf) using BFD version (GNU
Binutils for Ubuntu) 2.24
core_normal.s: Assembler messages:
core_normal.s:51755: Error: offset out of range
core_normal.s:51758: Error: offset out of range

[Bug lto/69082] Final link fails on ARM using lto

2016-01-05 Thread tulipawn at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69082

--- Comment #4 from PeteVine  ---
Created attachment 37233
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37233&action=edit
Preprocessed source

[Bug target/69146] [5 Regression] ICE in extract_insn, at recog.c:2343 on powerpc64le-linux-gnu

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69146

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |5.4

[Bug sanitizer/69147] [5 Regression] Several hundred asan failures with 5.3.1 on x86_64-apple-darwin15

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69147

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |5.4

[Bug c++/69125] [6 regression] Please don't print "‘visibility’ attribute ignored" when setting hidden visibility for anonymous namespace classes

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69125

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||diagnostic
   Target Milestone|--- |6.0

[Bug rtl-optimization/69124] [5/6 Regression] wrong code in thumb mode on arm-linux-gnueabihf

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69124

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |5.4

[Bug c/23087] Misleading warning, "... differ in signedness"

2016-01-05 Thread Keith.S.Thompson at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=23087

Keith Thompson  changed:

   What|Removed |Added

Version|4.0.0   |5.3.0

--- Comment #13 from Keith Thompson  ---
This problem still exists in gcc 5.3.0.

Here's a perhaps clearer example that doesn't depend on string literals,
and that demonstrates the problem both when plain char is signed
and when it's unsigned.

$ cat tmp.c
#include 
void foo(void) {
char *pc = 0;
#if CHAR_MIN < 0
/* plain char is signed but incompatible with signed char */
signed char *psc = pc;
#else
/* plain char is unsigned but incompatible with unsigned char */
unsigned char *puc = pc;
#endif
}
$ gcc --version
gcc (GCC) 5.3.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ gcc -std=c11 -pedantic-errors -c tmp.c
tmp.c: In function 'foo':
tmp.c:6:24: error: pointer targets in initialization differ in signedness
[-Wpointer-sign]
 signed char *psc = pc;
^
$ gcc -std=c11 -pedantic-errors -c -funsigned-char tmp.c
tmp.c: In function 'foo':
tmp.c:9:26: error: pointer targets in initialization differ in signedness
[-Wpointer-sign]
 unsigned char *puc = pc;
  ^
$

[Bug libstdc++/69116] [4.9/5/6 Regression] compile error when including valarray

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69116

--- Comment #1 from Andrew Pinski  ---
It is trying to instantiate one of the std::end with valarray
Like:
  template
inline const _Tp*
end(const valarray<_Tp>& __va)
{ return std::__addressof(__va[0]) + __va.size(); }

This does not look right.

[Bug rtl-optimization/69102] [4.9/5/6 Regression] ICE: in move_op_ascend, at sel-sched.c:6138 with -fselective-scheduling2

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69102

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |4.9.4

[Bug target/69135] [5/6 Regression][ARM] instruction cannot be conditional -- `vcvtpne.s32.f32 s0,s0'

2016-01-05 Thread cctsai57 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69135

--- Comment #4 from cctsai57  ---
Following
gcc/testsuite/gcc.target/arm/{lceil-vcvt_1.c,lfloor-vcvt_1.c,lround-vcvt_1.c},
suggest:

/* { dg-do compile } */
/* { dg-require-effective-target arm_v8_vfp_ok } */
/* { dg-options "-O2 -march=armv8-a -ffast-math" } */
/* { dg-add-options arm_v8_vfp } */

int global;

void
lceil_float (float x, int b)
{
  if (b) global = __builtin_lceilf (x);
  /* { dg-final { scan-assembler-times "vcvtp.s32.f32\ts\[0-9\]+, s\[0-9\]+" 1
} } */
}

void
lceil_double (double x, int b)
{
  if (b) global = __builtin_lceil (x);
  /* { dg-final { scan-assembler-times "vcvtp.s32.f64\ts\[0-9\]+, d\[0-9\]+" 1
} } */
}

void
lfloor_float (float x, int b)
{
  if (b) global =  __builtin_lfloorf (x);
  /* { dg-final { scan-assembler-times "vcvtm.s32.f32\ts\[0-9\]+, s\[0-9\]+" 1
} } */
}

void
lfloor_double (double x, int b)
{
  if (b) global = __builtin_lfloor (x);
  /* { dg-final { scan-assembler-times "vcvtm.s32.f64\ts\[0-9\]+, d\[0-9\]+" 1
} } */
}

void
lround_float (float x, int b)
{
  if (b) global = __builtin_lroundf (x);
  /* { dg-final { scan-assembler-times "vcvta.s32.f32\ts\[0-9\]+, s\[0-9\]+" 1
} } */
}

void
lround_double (double x, int b)
{
  if (b) global = __builtin_lround (x);
  /* { dg-final { scan-assembler-times "vcvta.s32.f64\ts\[0-9\]+, d\[0-9\]+" 1
} } */
}

[Bug c++/69098] [6.0 regression] Member function pointer template flagged with 'is not a function template'

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69098

Andrew Pinski  changed:

   What|Removed |Added

URL|http://melpon.org/wandbox/p |
   |ermlink/DShqHOBBMDx3X0H2|
   Target Milestone|--- |6.0

[Bug target/69071] [6 Regression] ICE: in decompose, at rtl.h:2107 with -g

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69071

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |6.0

[Bug tree-optimization/69068] [6 Regression] ICE in bb_contains_loop_phi_nodes, at graphite-isl-ast-to-gimple.c:1279

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69068

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |6.0

[Bug tree-optimization/69067] [6 Regression] ICE in get_def_bb_for_const, at graphite-isl-ast-to-gimple.c:1995

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69067

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |6.0

[Bug rtl-optimization/69052] [6 Regression] Performance regression after r229402.

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69052

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||missed-optimization
 Target||x86_64-linux-gnu
   Target Milestone|--- |6.0

[Bug target/69053] [6 Regression] ICE in build_vector_from_val

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69053

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |6.0

[Bug ipa/69044] [6 regression] [CHKP] internal compiler error: in duplicate_thunk_for_node

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69044

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
 Target||x86_64-linux-gnu
   Target Milestone|--- |6.0

[Bug tree-optimization/69042] [6 regression] Missed optimization in ivopts

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69042

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-01-06
 Ever confirmed|0   |1

--- Comment #1 from Andrew Pinski  ---
Confirmed, even on aarch64 too.  Replacing the asm with:
 
asm("":::"x0","x1","x2","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","x16","x17","x18","x19","x20","x21","x22","x23","x24","x25","x26","x27","x28","x30");


Shows the problem there.

[Bug testsuite/68886] FAIL: gcc.c-torture/execute/stkalign.c execution test

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68886

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-01-06
Summary|[6 regression] FAIL:|FAIL:
   |gcc.c-torture/execute/stkal |gcc.c-torture/execute/stkal
   |ign.c execution test|ign.c execution test
 Ever confirmed|0   |1

--- Comment #2 from Andrew Pinski  ---
If the stack size is just happens to be a multiple of 64 and the incoming stack
to test was 64 byte aligned, then the testcase will always fail.

This is what is happening on PowerPC and HPPA.  It is just on accident it
passes.

The testcase should either be removed or changed.  Changing the alignment to
128 or 256 might allow more targets to pass but not always pass on every target
so removing it will be best.

This is a new test and so it can't be a regression.

[Bug tree-optimization/69042] [6 regression] Missed optimization in ivopts

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69042

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||missed-optimization
   Target Milestone|--- |6.0

[Bug c++/68767] [6 regression] spurious warning: null argument where non-null required

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68767

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |6.0

[Bug c++/68525] [6 Regression] bogus use of deleted function error on a template with a flexible array member

2016-01-05 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68525

Martin Sebor  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |INVALID

--- Comment #2 from Martin Sebor  ---
Actually, I see that 5.1 accepts the code in C++ 98 mode but rejects it in C++
11 mode.  Clang behaves the same way.  Probably due to a change to the
standard.

In hindsight I agree that the test case is invalid.  I even made that point
recently in a review of a patch submitted to make it valid (forgetting I had
previously raised this bug):
https://gcc.gnu.org/ml/gcc-patches/2016-01/msg00055.html

Unfortunately, there is a bug here that makes GCC accept the following
(equivalent and also invalid) code:

cat x.cpp && ~/bin/gcc-5.1.0/bin/g++ x.cpp -c -std=c++11
template 
struct A {
int n;
T a[];
A (): n (), a () { }
};

struct B { B (int); };

A ab;

A few days ago I submitted bug 69127 for a similar problem with zero-length
arrays.  I suppose that bug could be used to fix this problem as well, even
though it's about flexible array members.

Let me close this bug as INVALID.

[Bug bootstrap/69129] [6 Regression] ICE in get_attr_got, at config/mips/mips.md:694 on mips-linux-gnu

2016-01-05 Thread sje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69129

Steve Ellcey  changed:

   What|Removed |Added

 CC||sje at gcc dot gnu.org

--- Comment #1 from Steve Ellcey  ---
I could not reproduce this with todays (Jan 5, 2016) top-of-tree.  I built
mips-linux-gnu and mipsel-linux-gnu with Fortran and the library built just
fine.  I also tried the test case that was included and that also compiled.
I got some warnings, but no ICE.

I was building a cross compiler running on x86 linux (ubuntu 12.04) and I tried
mips-linux-gnu and mipsel-linux-gnu targets.

[Bug tree-optimization/69036] g++ hangs compiling tree-ssa-loop-ivopts.c at -O3

2016-01-05 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69036

H.J. Lu  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #1 from H.J. Lu  ---
Dup

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

[Bug bootstrap/69123] [6 Regression] --with-build-config='bootstrap-O3 bootstrap-debug' miscompiled stage 2

2016-01-05 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69123

--- Comment #13 from H.J. Lu  ---
*** Bug 69036 has been marked as a duplicate of this bug. ***

[Bug bootstrap/69123] [6 Regression] --with-build-config='bootstrap-O3 bootstrap-debug' miscompiled stage 2

2016-01-05 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69123

--- Comment #12 from H.J. Lu  ---
(In reply to H.J. Lu from comment #10)
> This change makes it to compile:
> 
> diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
> index 07eea84..43a85b7 100644
> --- a/gcc/var-tracking.c
> +++ b/gcc/var-tracking.c
> @@ -4968,7 +4968,7 @@ dataflow_set_different (dataflow_set *old_set,
> dataflow_set *new_set)
>if (old_set->vars == new_set->vars)
>  return false;
>  
> -  if (shared_hash_htab (old_set->vars)->elements ()
> +  if (0 && shared_hash_htab (old_set->vars)->elements ()
>!= shared_hash_htab (new_set->vars)->elements ())
>  return true;

This patch bootstraps GCC using -O3 without any regressions.

[Bug bootstrap/69123] [6 Regression] --with-build-config='bootstrap-O3 bootstrap-debug' miscompiled stage 2

2016-01-05 Thread gary at intrepid dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69123

Gary Funck  changed:

   What|Removed |Added

 CC||gary at intrepid dot com

--- Comment #11 from Gary Funck  ---
Might be a duplicate of a bug I reported, PR69036

[Bug middle-end/68743] [6 Regression] FAIL: gfortran.dg/aint_anint_1.f90 -O0 execution test

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68743

Andrew Pinski  changed:

   What|Removed |Added

   Host|hppa*-*-hpux*   |
   Target Milestone|--- |6.0
  Build|hppa*-*-hpux*   |

[Bug tree-optimization/67781] [5/6 Regression] wrong code generated on big-endian with -O1 -fexpensive-optimizations

2016-01-05 Thread mikpelinux at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67781

--- Comment #13 from Mikael Pettersson  ---
Patch passed bootstrap and regtest on sparc64-linux.  No regressions.

[Bug target/69153] --with-advance-toolchain configure option does not correctly set configure variable target_header_dir

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69153

--- Comment #1 from Andrew Pinski  ---
You are leaking a target specific configure option to the configure script. 
This seems wrong.  Can't you set target_header_dir in config.gcc instead?

[Bug c++/68525] [6 Regression] bogus use of deleted function error on a template with a flexible array member

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68525

Andrew Pinski  changed:

   What|Removed |Added

   Keywords|rejects-valid   |
   Last reconfirmed|2015-11-25 00:00:00 |2016-1-5
   Target Milestone|--- |6.0
  Known to fail||4.8.4, 6.0

--- Comment #1 from Andrew Pinski  ---
Fails with the same message in GCC 4.8.4 but passes with GCC 5.3.0.

Though I don't think this is valid code.  Changing "T a[];" to "T a[1];" will
cause it to be rejected with the same message.  

Basically GCC decides for B::B(), T::T() (aka A::A()) needs to exists and
works.  That is what the error message is saying. it is not really mysterious
either.

[Bug target/69153] --with-advance-toolchain configure option does not correctly set configure variable target_header_dir

2016-01-05 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69153

Peter Bergner  changed:

   What|Removed |Added

 Target||powerpc*-linux
 CC||meissner at gcc dot gnu.org,
   ||tuliom at linux dot 
vnet.ibm.com,
   ||wschmidt at gcc dot gnu.org
   Target Milestone|--- |6.0

[Bug c++/68049] [5/6 Regression] template instantiation involving may_alias defines symbol twice

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68049

Andrew Pinski  changed:

   What|Removed |Added

   Last reconfirmed|2015-12-08 00:00:00 |2016-1-5
   Target Milestone|--- |5.4

[Bug target/69153] New: --with-advance-toolchain configure option does not correctly set configure variable target_header_dir

2016-01-05 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69153

Bug ID: 69153
   Summary: --with-advance-toolchain configure option does not
correctly set configure variable target_header_dir
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: bergner at gcc dot gnu.org
  Target Milestone: ---

The --with-advance-toolchain configure option is supposed to build a GCC that
uses the header files, libraries and dynamic linker from the specified Advance
Toolchain (AT) release, rather than the system files.

In testing a new configure fragment for a new builtin that requires a specific
GLIBC version, I noticed that the configure testing was using the system header
files instead of the AT's header files.  This was due to $target_header_dir not
being set correctly.  The following code which sets it doesn't handle
--with-advance-toolchain at all:

if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
  if test "x$with_headers" != x; then
target_header_dir=$with_headers
  elif test "x$with_sysroot" = x; then
target_header_dir="${test_exec_prefix}/${target_noncanonical}/sys-include"
  elif test "x$with_build_sysroot" != "x"; then
target_header_dir="${with_build_sysroot}${native_system_header_dir}"
  elif test "x$with_sysroot" = xyes; then
   
target_header_dir="${test_exec_prefix}/${target_noncanonical}/sys-root${native_system_header_dir}"
  else
target_header_dir="${with_sysroot}${native_system_header_dir}"
  fi
else
  target_header_dir=${native_system_header_dir}
fi

I'm testing the following patch to fix this:

Index: configure.ac
===
--- configure.ac(revision 231201)
+++ configure.ac(working copy)
@@ -1997,7 +1997,9 @@
 SYSTEM_HEADER_DIR=$build_system_header_dir 
 fi

-if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
+if test "x$with_advance_toolchain" != x; then
+  target_header_dir=`find /opt/$with_advance_toolchain/ -path
'*/include/features.h' | sed -e 's#/features.h##'`
+elif test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
   if test "x$with_headers" != x; then
 target_header_dir=$with_headers
   elif test "x$with_sysroot" = x; then

[Bug tree-optimization/69108] [6 Regression] ICE in gather_scalar_reductions with -ftree-parallelize-loops=2

2016-01-05 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69108

--- Comment #2 from vries at gcc dot gnu.org ---
Created attachment 37232
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37232&action=edit
tentative patch

[Bug tree-optimization/67755] [5/6 Regression] Bad edge probability/block freqency for tree jump threading

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67755

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |5.4
Summary|[5 Regression] Bad edge |[5/6 Regression] Bad edge
   |probability/block freqency  |probability/block freqency
   |for tree jump threading |for tree jump threading

[Bug c++/66944] ICE on static thread_local member in class template

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66944

Andrew Pinski  changed:

   What|Removed |Added

Summary|[6 regression] ICE on   |ICE on static thread_local
   |static thread_local member  |member in class template
   |in class template   |
   Severity|major   |normal

--- Comment #2 from Andrew Pinski  ---
>Today's trunk crashes with the following ICE so making this a regression:

Except the previous versions also ICEd.
That is what:
bug.cc:14: confused by earlier errors, bailing out

Is about really.

[Bug target/62254] [4.9/5/6 Regression] gcc-4.9 ICEs on linux kernel zlib for armv3

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62254

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |4.9.4

[Bug rtl-optimization/49358] [4.9/5/6 Regression] RA regressed for SSE 2 operand math

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49358

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |6.0
Summary|optimization regression in  |[4.9/5/6 Regression] RA
   |4.7.0, 4.6.1 from 4.5.4 |regressed for SSE 2 operand
   ||math

[Bug middle-end/46555] [4.9/5/6 Regression] PHI RTL expansion leads to CSiBE regression

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46555

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||missed-optimization
   Last reconfirmed|2010-11-19 10:55:11 |2016-1-5
   Target Milestone|--- |7.0
Summary|PHI RTL expansion leads to  |[4.9/5/6 Regression] PHI
   |CSiBE regression|RTL expansion leads to
   ||CSiBE regression

--- Comment #2 from Andrew Pinski  ---
  :

  # _6 = PHI <-1(17), 0(15), -1(10)>
:


It is not as bad on the trunk now but I don't think it has been fixed.

[Bug libstdc++/69152] _GLIBCXX_BITSET_BITS_PER_WORD is wrong for x32

2016-01-05 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69152

--- Comment #1 from Marc Glisse  ---
This macro is about the typedef _WordT in bitset (currently "long", so
__SIZEOF_LONG__ is exactly what we want), not about the compiler notion of
"word". Using "long" for that typedef is suboptimal on x32, but also on win64.
I think there is already a PR asking to change it, but since it would break the
ABI...

[Bug target/45390] CPU2006 434.zeusmp: gcc 4.6 7% regression from gcc 4.5

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45390

Andrew Pinski  changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution|--- |INVALID

--- Comment #2 from Andrew Pinski  ---
No word in over 6 months so closing.

[Bug target/45389] CPU2006 cactusADM: gcc 4.6 15% regression from 4.5

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45389

Andrew Pinski  changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #2 from Andrew Pinski  ---
No word on this one in 6 months so closing.

[Bug c++/69098] [6.0 regression] Member function pointer template flagged with 'is not a function template'

2016-01-05 Thread hir...@trash-mail.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69098

--- Comment #3 from hir...@trash-mail.com ---
Your testcase is really quite a bit smaller still – impressive skills! :)

Thanks for confirming and since 5.1.0 works for you, on Wandbox and
additionally your testcase doesn’t fail locally, I guess I might just have
looked at the wrong one of my two installations when I queried the version,
perhaps I forgot to prepend '.\' or something like that.

[Bug target/67973] All the tests for -gstabs* fail on x86_64-apple-darwin14 with Xcode 7

2016-01-05 Thread mrs at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67973

--- Comment #17 from mrs at gcc dot gnu.org  ---
A back port is Ok.

[Bug c++/69139] [4.9/5/6 Regression] deduction failure with trailing return type in function template argument

2016-01-05 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69139

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |6.0

[Bug target/1078] Problems with attributes documentation

2016-01-05 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=1078

--- Comment #12 from sandra at gcc dot gnu.org ---
Author: sandra
Date: Tue Jan  5 20:51:48 2016
New Revision: 232092

URL: https://gcc.gnu.org/viewcvs?rev=232092&root=gcc&view=rev
Log:
2016-01-05  Sandra Loosemore 

PR 1078
gcc/
* doc/extend.texi (RL78 Variable Attributes): New section.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/doc/extend.texi

[Bug libstdc++/69152] New: _GLIBCXX_BITSET_BITS_PER_WORD is wrong for x32

2016-01-05 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69152

Bug ID: 69152
   Summary: _GLIBCXX_BITSET_BITS_PER_WORD is wrong for x32
   Product: gcc
   Version: 5.3.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: hjl.tools at gmail dot com
  Target Milestone: ---
Target: x32

The size of word on x32 is 8 byte and the size of long is 4 byte.
include/std/bitset has

#define _GLIBCXX_BITSET_BITS_PER_WORD  (__CHAR_BIT__ * __SIZEOF_LONG__)

which is incorrect for x32.

[Bug c/69104] invalid atomic memory order not diagnosed

2016-01-05 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69104

--- Comment #8 from Marek Polacek  ---
Author: mpolacek
Date: Tue Jan  5 20:24:02 2016
New Revision: 232090

URL: https://gcc.gnu.org/viewcvs?rev=232090&root=gcc&view=rev
Log:
PR c/69104
* builtins.c (get_memmodel): Use expansion point location rather than
the input location.  Call warning_at rather than warning.
(expand_builtin_atomic_compare_exchange): Likewise.
(expand_builtin_atomic_load): Likewise.
(expand_builtin_atomic_store): Likewise.
(expand_builtin_atomic_clear): Likewise.

* gcc.dg/atomic-invalid-2.c: New.

Added:
trunk/gcc/testsuite/gcc.dg/atomic-invalid-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/builtins.c
trunk/gcc/testsuite/ChangeLog

[Bug target/69148] [5/6 Regression] ICE (floating point exception) on s390x-linux-gnu

2016-01-05 Thread krebbel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69148

Andreas Krebbel  changed:

   What|Removed |Added

 CC||vmakarov at redhat dot com

--- Comment #5 from Andreas Krebbel  ---
I think the problem comes with the hard coded operand indexes in
curr_insn_transform when trying to reuse the existing insn for the secondary
memory load.

  if (use_sec_mem_p)
{
  rtx new_reg, src, dest, rld;
  machine_mode sec_mode, rld_mode;

  lra_assert (sec_mem_p);
  lra_assert (curr_static_id->operand[0].type == OP_OUT
  && curr_static_id->operand[1].type == OP_IN);
  dest = *curr_id->operand_loc[0];
  src = *curr_id->operand_loc[1];
...

This does not work for parallels consisting of more than one set. 
(insn 15 14 24 2 (parallel [
(set (reg:CCZ 33 %cc)
(compare:CCZ (subreg:SI (reg:SF 69 [ D.1498 ]) 0)
(const_int 0 [0])))
(set (reg:SI 60 [ D.1497 ])
(subreg:SI (reg:SF 69 [ D.1498 ]) 0))
]) t.c:13 839 {*tstsi_extimm}
 (expr_list:REG_DEAD (reg:SF 69 [ D.1498 ])
(expr_list:REG_UNUSED (reg:CCZ 33 %cc)
(nil

The first set is dead so single_set returns just the second set for
curr_insn_set. Since the operands in the second set are NOT numbered 0 and 1
this code doesn't do the right thing.

Can we just use the "old" code in such a case? So emitting both the spill insns
before and after the original insn instead of trying to reuse the insn? In the
original PR55433 this was supposed to fix an infinite loop in reload. So I'm
not sure if that might bring back that problem then?!

[Bug rtl-optimization/68991] -O3 generates misaligned xorv4si3

2016-01-05 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68991

--- Comment #19 from hjl at gcc dot gnu.org  ---
Author: hjl
Date: Tue Jan  5 20:19:16 2016
New Revision: 232088

URL: https://gcc.gnu.org/viewcvs?rev=232088&root=gcc&view=rev
Log:
Use vector_operand on SSE with 16b memory operand

Add vector_operand, which is vector_memory_operand or register_operand,
and use it, instead of nonimmediate_operand, in SSE patterns with 16-byte
memory operand.

gcc/

PR target/68991
* config/i386/i386.c (ix86_expand_vector_logical_operator):
Replace nonimmediate_operand with vector_operand.
* config/i386/predicates.md (vector_operand): New predicate.
(general_vector_operand): Replace nonimmediate_operand with
vector_operand.
* config/i386/sse.md: Replace nonimmediate_operand with
vector_operand and m constraint with Bm constraint on SSE
patterns with 16-byte memory operand.
* config/i386/subst.md (round_nimm_predicate): Replace
nonimmediate_operand with vector_operand.
(round_saeonly_nimm_predicate): Likewise.
(round_saeonly_nimm_scalar_predicate): New.

gcc/testsuite/

PR target/68991
* gcc.target/i386/pr68991.c: New test.

Added:
trunk/gcc/testsuite/gcc.target/i386/pr68991.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/config/i386/predicates.md
trunk/gcc/config/i386/sse.md
trunk/gcc/config/i386/subst.md
trunk/gcc/testsuite/ChangeLog

[Bug rtl-optimization/68991] -O3 generates misaligned xorv4si3

2016-01-05 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68991

--- Comment #18 from hjl at gcc dot gnu.org  ---
Author: hjl
Date: Tue Jan  5 20:17:26 2016
New Revision: 232087

URL: https://gcc.gnu.org/viewcvs?rev=232087&root=gcc&view=rev
Log:
Add vector_memory_operand and "Bm" constraint

SSE vector arithmetic and logic instructions only accept aligned memory
operand.  This patch adds vector_memory_operand and "Bm" constraint for
aligned SSE memory operand.  They are applied to SSE plusminus and
any_logic patterns.

gcc/

PR target/68991
* config/i386/constraints.md (Bm): New constraint.
* config/i386/predicates.md (vector_memory_operand): New
predicate.
* config/i386/sse.md: Replace xm with xBm in plusminus and
any_logic patterns.

gcc/testsuite/

PR target/68991
* g++.dg/pr68991-1.C: New test.
* g++.dg/pr68991-2.C: Likewise.

Added:
trunk/gcc/testsuite/g++.dg/pr68991-1.C
trunk/gcc/testsuite/g++.dg/pr68991-2.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/constraints.md
trunk/gcc/config/i386/predicates.md
trunk/gcc/config/i386/sse.md
trunk/gcc/testsuite/ChangeLog

[Bug target/1078] Problems with attributes documentation

2016-01-05 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=1078

--- Comment #11 from sandra at gcc dot gnu.org ---
Author: sandra
Date: Tue Jan  5 19:45:43 2016
New Revision: 232085

URL: https://gcc.gnu.org/viewcvs?rev=232085&root=gcc&view=rev
Log:
2016-01-05  Sandra Loosemore 

PR 1078
gcc/
* doc/extend.texi (V850 Function Attributes): New section.
(V850 Variable Attributes): New section.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/doc/extend.texi


[Bug testsuite/68232] gcc.dg/ifcvt-4.c fails on some arm configurations

2016-01-05 Thread pthaugen at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68232

--- Comment #6 from Pat Haugen  ---
(In reply to James Greenhalgh from comment #5)
> "Fixed" with the testsuite skips. Feel free to add any other target triplets
> for which this test is unreliable.

I was going to modify the powerpc64le triplet to just powerpc*-*-* since it
also fails for powerpc64 (big endian) and powerpc-ibm-aix, but looking at
gcc/config/rs6000/rs6000.h, it has BRANCH_COST defined to a non-zero value:

#define BRANCH_COST(speed_p, predictable_p) 3


So there must be something more than just "doesn't work for targets with branch
cost == 0". I'm still happy to make the change if there are other reasons, but
didn't want to do so without hearing first.

[Bug other/60465] [4.9/5 Regression] Compiling glibc-2.17,2.18 with gcc-4.8.2 and binutils-2.23.2,2.24 results in segfaults in _start / elf_get_dynamic_info

2016-01-05 Thread vapier at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60465

--- Comment #40 from Mike Frysinger  ---
(In reply to Jeffrey A. Law from comment #39)

we should at least do gcc-5.  i'm guessing there won't be another 4.9.

[Bug c++/66460] ICE using __func__ in constexpr function.

2016-01-05 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66460

Markus Trippelsdorf  changed:

   What|Removed |Added

 CC||hauf.johannes at gmail dot com

--- Comment #6 from Markus Trippelsdorf  ---
*** Bug 69149 has been marked as a duplicate of this bug. ***

[Bug c++/69149] Segmentation fault during compile of libre office with debug

2016-01-05 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69149

Markus Trippelsdorf  changed:

   What|Removed |Added

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

--- Comment #4 from Markus Trippelsdorf  ---
dup.

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

[Bug fortran/68009] [6 Regression] prototype for gfortran_runtime_error with inline matmul

2016-01-05 Thread jvdelisle at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68009

Jerry DeLisle  changed:

   What|Removed |Added

 CC||jvdelisle at gcc dot gnu.org

--- Comment #4 from Jerry DeLisle  ---
I will poke at this unless Thomas wants to take it.

[Bug target/69140] stack alignment + O1 breaks with Microsoft ABI

2016-01-05 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69140

Eric Botcazou  changed:

   What|Removed |Added

 CC||uros at gcc dot gnu.org

--- Comment #11 from Eric Botcazou  ---
> Yes, forced stack alignment on x86_64 was introduced after 5.2, in r228728
> for pr66697. Also, I can confirm that adding -fno-omit-frame-pointer allows
> Wine to compile normally.

I see, thanks.  Uros, would you mind having a look?  I don't know this stuff.

[Bug target/69140] stack alignment + O1 breaks with Microsoft ABI

2016-01-05 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69140

--- Comment #10 from Eric Botcazou  ---
Created attachment 37231
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37231&action=edit
Reduced testcase

To be compiled with -O2 -mincoming-stack-boundary=3

[Bug c++/69149] Segmentation fault during compile of libre office with debug

2016-01-05 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69149

Markus Trippelsdorf  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-01-05
 CC||trippels at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #3 from Markus Trippelsdorf  ---
This is what creduce came up with:

markus@x4 tmp % cat deb.ii
template  struct A { typedef __underlying_type(_Tp) type; };
namespace o3tl {
template  struct typed_flags;
template ::type> struct is_typed_flags {
  class Wrap {
  public:
constexpr operator E() {}
  };
};
}
template 
constexpr typename o3tl::typed_flags::Wrap operator|(E, E) {
  __PRETTY_FUNCTION__;
}
enum SfxSlotMode { NONE, PROPGET };
namespace o3tl {
template <>
struct typed_flags : is_typed_flags {};
class {
public:
  short nGroupId;
} a{(short)(NONE | PROPGET)};
}

markus@x4 tmp % g++ deb.ii
deb.ii:22:20:   in constexpr expansion of
‘operator|((SfxSlotMode)0u, (SfxSlotMode)1u)’
deb.ii:22:28: internal compiler error: Segmentation fault
 } a{(short)(NONE | PROPGET)};
^

0xcc988f crash_signal
../../gcc/gcc/toplev.c:334
0x7f1334c6230f ???
   
/home/markus/glibc/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0xa48714 bool vec_safe_reserve(vec*&, unsigned int, bool)
../../gcc/gcc/vec.h:553
0xa48714 tree_node** vec_safe_push(vec*&, tree_node* const&)
../../gcc/gcc/vec.h:647
0xa48714 add_local_decl(function*, tree_node*)
../../gcc/gcc/function.c:6791
0xd3c416 remap_decls
../../gcc/gcc/tree-inline.c:611
0xd3d290 remap_block
../../gcc/gcc/tree-inline.c:679
0xd4373e copy_bind_expr
../../gcc/gcc/tree-inline.c:752

[Bug fortran/65996] [5/6 Regression] gfortran ICE with -dH

2016-01-05 Thread jvdelisle at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65996

Jerry DeLisle  changed:

   What|Removed |Added

 CC||jvdelisle at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |jvdelisle at gcc dot 
gnu.org

--- Comment #11 from Jerry DeLisle  ---
I will work this one.

[Bug target/69140] stack alignment + O1 breaks with Microsoft ABI

2016-01-05 Thread bucaneer at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69140

--- Comment #9 from Justas L  ---
Yes, forced stack alignment on x86_64 was introduced after 5.2, in r228728 for
pr66697. Also, I can confirm that adding -fno-omit-frame-pointer allows Wine to
compile normally.

[Bug bootstrap/69123] [6 Regression] --with-build-config='bootstrap-O3 bootstrap-debug' miscompiled stage 2

2016-01-05 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69123

--- Comment #10 from H.J. Lu  ---
This change makes it to compile:

diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index 07eea84..43a85b7 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -4968,7 +4968,7 @@ dataflow_set_different (dataflow_set *old_set,
dataflow_set *new_set)
   if (old_set->vars == new_set->vars)
 return false;

-  if (shared_hash_htab (old_set->vars)->elements ()
+  if (0 && shared_hash_htab (old_set->vars)->elements ()
   != shared_hash_htab (new_set->vars)->elements ())
 return true;

[Bug target/1078] Problems with attributes documentation

2016-01-05 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=1078

--- Comment #10 from sandra at gcc dot gnu.org ---
Author: sandra
Date: Tue Jan  5 18:04:01 2016
New Revision: 232081

URL: https://gcc.gnu.org/viewcvs?rev=232081&root=gcc&view=rev
Log:
2016-01-05  Sandra Loosemore 

PR 1078
gcc/
* doc/extend.texi (MicroBlaze Function Attributes): Document
interrupt_handler and fast_interrupt attributes.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/doc/extend.texi

[Bug rtl-optimization/69124] [5/6 Regression] wrong code in thumb mode on arm-linux-gnueabihf

2016-01-05 Thread mikpelinux at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69124

--- Comment #11 from Mikael Pettersson  ---
(In reply to ktkachov from comment #9)
> So I did a bisection between 4.9 and 5.
> The offending commit is r217624:
> Author: vmakarov 
> Date:   Sun Nov 16 05:00:30 2014 +
> 
> 2014-11-15  Vladimir Makarov  
> 
>   * lra-remat.c (cand_transf_func): Process regno for
>   rematerialization too.
>   * lra.c (lra): Switch on rematerialization pass.
> 
> i.e. when the LRA rematiralisation pass was turned on.

Strange, my bisect identified r217588 as the culprit, although it also talks
about lra materialization:

2014-11-14  Vladimir Makarov  

   * lra-int.h (lra_create_live_ranges): Add parameter.
   * lra-lives.c (temp_bitmap): Move higher.
   (initiate_live_solver): Move temp_bitmap initialization into
   lra_live_ranges_init.
   (finish_live_solver): Move temp_bitmap clearing into
   live_ranges_finish.
   (process_bb_lives): Add parameter.  Use it to control live info
   update and dead insn elimination.  Pass it to mark_regno_live and
   mark_regno_dead.
   (lra_create_live_ranges): Add parameter.  Pass it to
   process_bb_lives.
   (lra_live_ranges_init, lra_live_ranges_finish): See changes in
   initiate_live_solver and finish_live_solver.
   * lra-remat.c (do_remat): Process insn non-operand hard regs too.
   Use temp_bitmap to update avail_cands.
   * lra.c (lra): Pass new parameter to lra_create_live_ranges.  Move
   check with lra_need_for_spill_p after live range pass.  Switch on
   rematerialization pass.

[Bug bootstrap/69123] [6 Regression] --with-build-config='bootstrap-O3 bootstrap-debug' miscompiled stage 2

2016-01-05 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69123

--- Comment #9 from H.J. Lu  ---
(insn:TI 248 289 246 8 (set (reg:V2DI 21 xmm0 [130])
(mem/c:V2DI (plus:DI (reg/f:DI 7 sp)
(const_int 16 [0x10])) [9 %sfp+-32 S16 A128])) /tmp/x.ii:24
1215 {*movv2di_internal}
 (nil))
...
(insn:TI 250 118 120 9 (set (mem/c:DI (plus:DI (reg/f:DI 7 sp)
(const_int 16 [0x10])) [9 %sfp+-32 S8 A128])
(reg/v/f:DI 0 ax [orig:120 base ] [120])) /tmp/x.ii:33 85
{*movdi_internal}
 (nil))

seem to confuse canonicalize_values_star and lead to infinite loop.

[Bug other/60465] [4.9/5 Regression] Compiling glibc-2.17,2.18 with gcc-4.8.2 and binutils-2.23.2,2.24 results in segfaults in _start / elf_get_dynamic_info

2016-01-05 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60465

Jeffrey A. Law  changed:

   What|Removed |Added

Summary|[4.9/5/6 Regression]|[4.9/5 Regression]
   |Compiling glibc-2.17,2.18   |Compiling glibc-2.17,2.18
   |with gcc-4.8.2 and  |with gcc-4.8.2 and
   |binutils-2.23.2,2.24|binutils-2.23.2,2.24
   |results in segfaults in |results in segfaults in
   |_start /|_start /
   |elf_get_dynamic_info|elf_get_dynamic_info

--- Comment #39 from Jeffrey A. Law  ---
Fixed on the trunk.  Patch is backportable to the active release branches, but
I'm not sure it's worth the effort.

[Bug other/60465] [4.9/5/6 Regression] Compiling glibc-2.17,2.18 with gcc-4.8.2 and binutils-2.23.2,2.24 results in segfaults in _start / elf_get_dynamic_info

2016-01-05 Thread law at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60465

--- Comment #38 from Jeffrey A. Law  ---
Author: law
Date: Tue Jan  5 17:57:05 2016
New Revision: 232080

URL: https://gcc.gnu.org/viewcvs?rev=232080&root=gcc&view=rev
Log:
[PATCH v2] ia64: don't use dynamic relocations for local symbols
PR other/60465
* config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
for local symbolic operands.
* config/ia64/predicates.md (local_symbolic_operand64): New
predicate.

PR other/60465
* gcc.target/ia64/pr60465-gprel64.c: New test.
* gcc.target/ia64/pr60465-gprel64-c37.c: New test.

Added:
trunk/gcc/testsuite/gcc.target/ia64/pr60465-gprel64-c37.c
trunk/gcc/testsuite/gcc.target/ia64/pr60465-gprel64.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/ia64/ia64.c
trunk/gcc/config/ia64/predicates.md
trunk/gcc/testsuite/ChangeLog

[Bug target/69143] PowerPC64: aggregate results are badly handled

2016-01-05 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69143

Martin Sebor  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-01-05
 CC||msebor at gcc dot gnu.org
 Ever confirmed|0   |1
  Known to fail||5.1.0, 6.0

--- Comment #1 from Martin Sebor  ---
Confirmed.  A slightly simpler (but equivalent) test case that generates the
same code is below.  See also bug 65421.

typedef struct B { float x, y; } B;

B bar (B y) { return y; }

[Bug rtl-optimization/69124] [5/6 Regression] wrong code in thumb mode on arm-linux-gnueabihf

2016-01-05 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69124

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

  Component|target  |rtl-optimization

--- Comment #10 from ktkachov at gcc dot gnu.org ---
(In reply to ktkachov from comment #9)
> So I did a bisection between 4.9 and 5.
> The offending commit is r217624:
> Author: vmakarov 
> Date:   Sun Nov 16 05:00:30 2014 +
> 
> 2014-11-15  Vladimir Makarov  
> 
>   * lra-remat.c (cand_transf_func): Process regno for
>   rematerialization too.
>   * lra.c (lra): Switch on rematerialization pass.
> 
> i.e. when the LRA rematiralisation pass was turned on.

Consequently, compiling with -fno-lra-remat the testcase runs successfully (no
output)

[Bug target/69140] stack alignment + O1 breaks with Microsoft ABI

2016-01-05 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69140

--- Comment #8 from Eric Botcazou  ---
> Sorry, I indeed made a mistake - r230176 makes compilation fail with a
> different error than the one I get with 5.3 release. However, after
> rerunning git bisect and manually checking these revisions I can confirm
> that:
> 
> - r230165 is the last good revision in the 5 branch;
> - r230176 is the first one that fails, but with a different error (internal
> compiler error: in ix86_adjust_stack_and_probe, at config/i386/i386.c:11064);
> - r230247 is the first one that fails with the error in choose_baseaddr;
> - reverting r230176 from 5.3.0 release fixes the problem (i.e. both
> testcases pass and Wine compiles and runs correctly)

I see, then please always post the full set of options.  r230176 & r230247 only
free the frame pointer register for the register allocator with -fstack-check
(this was done at the request of the Arch folks IIRC) so you can work around
the failure by forcing it to be reserved again (-fno-omit-frame-pointer).

I gather that this didn't work with 5.2, did it?  If so, then the alignment
stuff needs more work.

[Bug target/69124] [5/6 Regression] wrong code in thumb mode on arm-linux-gnueabihf

2016-01-05 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69124

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

 CC||vmakarov at redhat dot com

--- Comment #9 from ktkachov at gcc dot gnu.org ---
So I did a bisection between 4.9 and 5.
The offending commit is r217624:
Author: vmakarov 
Date:   Sun Nov 16 05:00:30 2014 +

2014-11-15  Vladimir Makarov  

* lra-remat.c (cand_transf_func): Process regno for
rematerialization too.
* lra.c (lra): Switch on rematerialization pass.

i.e. when the LRA rematiralisation pass was turned on.

[Bug bootstrap/69123] [6 Regression] --with-build-config='bootstrap-O3 bootstrap-debug' miscompiled stage 2

2016-01-05 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69123

--- Comment #8 from H.J. Lu  ---
A small testcase:

[hjl@gnu-mic-2 i386]$ cat /tmp/x.ii
struct xxx_def;
typedef xxx_def *xxx;

union rtxxx
{
  const char *rt_str;
  xxx rt_xxx;
};

struct xxx_def {
  union u {
rtxxx fld[1];
  } u;
};

extern xxx bar (void);
extern int foo1 (xxx);

static inline xxx
foo2 (xxx arg0, xxx arg1)
{
  xxx rt;
  rt = bar ();
  (((rt)->u.fld[0]).rt_xxx) = arg0;
  (((rt)->u.fld[1]).rt_xxx) = arg1;
  return rt;
}

static inline xxx
foo4 (const char *arg0 )
{
  xxx rt;
  rt = bar ();
  (((rt)->u.fld[0]).rt_str) = arg0;
  (((rt)->u.fld[1]).rt_xxx) = (xxx) 0;
  return rt;
}

extern xxx foo5 (long);

struct address_cost_data
{
  unsigned costs[2][2][2][2];
};

void
get_address_cost (address_cost_data *data)
{
  unsigned acost;
  long i;
  long rat, off = 0;
  unsigned sym_p, var_p, off_p, rat_p;
  xxx addr, base;
  xxx reg0, reg1;

  reg1 = bar ();
  addr = foo2 (reg1, (xxx) 0);
  rat = 1;
  acost = 0;
  reg0 = bar ();
  reg1 = bar ();

  for (i = 0; i < 16; i++)
{
  sym_p = i & 1;
  var_p = (i >> 1) & 1;
  off_p = (i >> 2) & 1;
  rat_p = (i >> 3) & 1;

  addr = reg0;
  if (rat_p)
addr = foo2 (addr, foo5 (rat)) ;

  if (var_p)
addr = foo2 (addr, reg1);

  if (sym_p)
base = foo4 ("");
  else if (off_p)
base = foo5 (off);
  else
base = (xxx) 0;

  if (base)
addr = foo2 (addr, base);

  acost = foo1 (addr);
  data->costs[sym_p][var_p][off_p][rat_p] = acost;
}
}
[hjl@gnu-mic-2 i386]$ ./cc1plus -fpreprocessed /tmp/x.ii -quiet -dumpbase x.ii
-mtune=generic -march=x86-64 -auxbase x -g -O3 -version -fno-rtti
-fno-exceptions -o x.s

[Bug target/68770] [6 Regression] Conditional jump or move depends on uninitialised value(s) default_secondary_reload() targhooks.c:940

2016-01-05 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68770

Marek Polacek  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||mpolacek at gcc dot gnu.org
 Resolution|--- |FIXED

--- Comment #9 from Marek Polacek  ---
Fixed.

[Bug target/68770] [6 Regression] Conditional jump or move depends on uninitialised value(s) default_secondary_reload() targhooks.c:940

2016-01-05 Thread nickc at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68770

--- Comment #8 from Nick Clifton  ---
Patch applied.  (Unfortunately I cannot close this BZ...)

[Bug target/69151] New: missing docs for H8/3000 monitor/OS_Task attributes and related breakage in -mexr/-mno-exr options

2016-01-05 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69151

Bug ID: 69151
   Summary: missing docs for H8/3000 monitor/OS_Task attributes
and related breakage in -mexr/-mno-exr options
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: sandra at gcc dot gnu.org
  Target Milestone: ---

In reviewing the current state of PR1078, I found that there is no
documentation for the H8/3000 function attributes "monitor" and "OS_Task".

The "monitor" attribute is mentioned in invoke.texi, though:

@item -mexr
@opindex mexr
Extended registers are stored on stack before execution of function
with monitor attribute. Default option is @option{-mexr}.
This option is valid only for H8S targets.

@item -mno-exr
@opindex mno-exr
Extended registers are not stored on stack before execution of function 
with monitor attribute. Default option is @option{-mno-exr}. 
This option is valid only for H8S targets.

Besides needing markup fixes and copy-editing, this text is totally confusing: 
*both* of these behaviors cannot be the default.  Trying to figure this out
from the code, in "monitor_prologue" in h8300.md I see:

...
  else if (TARGET_H8300S && TARGET_NEXR )
return
"mov.l\\ter0,@-er7\;stc\tccr,r0l\;mov.b\tr0l,@(4,er7)\;mov.l\\t@er7+,er0\;orc\t#128,ccr";
 
  else if (TARGET_H8300S && TARGET_NEXR && TARGET_NORMAL_MODE)
return
"subs\\t#2,er7\;mov.l\\ter0,@-er7\;stc\tccr,r0l\;mov.b\tr0l,@(4,er7)\;mov.l\\t@er7+,er0\;orc\t#128,ccr";
...

The second clause is clearly dead code.  I think there is a mistake in logic
here, and that a target expert needs to figure out what the intended behavior
is and correct both the implementation and documentation.

[Bug ipa/66223] [5/6 Regression] Diagnostic of pure virtual function call broken, including __cxa_pure_virtual

2016-01-05 Thread d.frey at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66223

--- Comment #7 from Daniel Frey  ---
(In reply to Jakub Jelinek from comment #6)
> The advantage of __builtin_unreachable () is that it allows better
> optimizations, at the expense of the invalid code not being so nicely
> reported.
> With -fsanitize=undefined you get the undefined behavior reported, but with
> information loss - it is reported as a call to __builtin_unreachable rather
> than call to pure virtual method.
> Perhaps as a compromise we could make sure __cxa_pure_virtual is called in
> this case when -fsanitize=undefined (say in particular with
> -fsanitize=unreachable) and let it be optimized to __builtin_unreachable
> otherwise?

I checked the Itanium ABI and I guess
https://mentorembedded.github.io/cxx-abi/abi.html#pure-virtual is sufficiently
loosely specified to allow __builtin_unreachable (or basically anything you
like).

Anyways, calling __builtin_unreachable did call the terminate-handler
previously, it was able to print a backtrace and I even got a core dump. The
current behavior makes it almost impossible to debug such a situation and I'm
not sure why. No output, no hint, no core dump (when I registered my own
terminate handler). Could this be fixed in some way?

[Bug target/69148] [5/6 Regression] ICE (floating point exception) on s390x-linux-gnu

2016-01-05 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69148

Jakub Jelinek  changed:

   What|Removed |Added

   Target Milestone|--- |5.4

--- Comment #3 from Jakub Jelinek  ---
Ah, ok, I can confirm
union U { int r; float f; };
struct A {
  double foo (double);
  void bar (int);
  int a;
  U b[64];
};
void
A::bar (int x)
{
  U y;
  y.f = foo (b[x].f);
  a = y.r ? 4 : y.r;
}
ICEs with -O -march=z196 -m64 on the trunk as well.

[Bug target/69148] [5/6 Regression] ICE (floating point exception) on s390x-linux-gnu

2016-01-05 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69148

--- Comment #4 from Jakub Jelinek  ---
And
union U { int r; float f; };
struct A {
  int a;
  union U b[64];
};
double foo (double);

void
bar (struct A *z, int x)
{
  union U y;
  y.f = foo (z->b[x].f);
  z->a = y.r ? 4 : y.r;
}
too (to make it C rather than C++).

[Bug tree-optimization/69108] [6 Regression] ICE in gather_scalar_reductions with -ftree-parallelize-loops=2

2016-01-05 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69108

vries at gcc dot gnu.org changed:

   What|Removed |Added

   Assignee|unassigned at gcc dot gnu.org  |vries at gcc dot gnu.org
   Target Milestone|--- |6.0
Summary|ICE in  |[6 Regression] ICE in
   |gather_scalar_reductions|gather_scalar_reductions
   |with|with
   |-ftree-parallelize-loops=2  |-ftree-parallelize-loops=2

--- Comment #1 from vries at gcc dot gnu.org ---
Starts failing at r231162, but that looks like a trigger commit.

The error occurs in double reduction handling code, so marking it 6 regression.

[Bug rtl-optimization/68651] [5/6 Regression][AArch64] Missing combination of shift-by-one with other arithmetic patterns with -mcpu=cortex-a53

2016-01-05 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68651

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||6.0
 Resolution|--- |FIXED

--- Comment #3 from ktkachov at gcc dot gnu.org ---
Fixed on trunk.

  1   2   >