[Bug bootstrap/87134] [9 regression] SEGV in cc1 caused by r263875

2018-08-29 Thread ro at CeBiTec dot Uni-Bielefeld.DE
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87134

--- Comment #2 from Richard Biener  ---
You also might want to test the patch from PR87132.

--- Comment #3 from ro at CeBiTec dot Uni-Bielefeld.DE  ---
> --- Comment #1 from Richard Biener  ---
> If you disable bootstrap does it work?  The backtrace makes it look like 
> memory
> corruption.  Maybe you can also throw valgrind on it?

A --disable-bootstrap build (c, c++ only) does work on
i386-pc-solaris2.11, but I didn't run make check.

While there is a Solaris/x86 valgrind port, I haven't used it yet (and
it seems I'll have to use the git version on Solaris 11.4).

For a start, I ran the failing compilation with libumem (a debugging
malloc) preloaded and UMEM_DEBUG=default: this way, the compilation
succeeded without errors.

Afterwards, I managed to bootstrap with just LD_PRELOAD=libumem.so on
both i386-pc-solaris2.11 and sparc-sun-solaris2.11.  That completed
successfully, but 200+ 32-bit Go tests now FAIL, together with two
64-bit libstdc++ max_align_t tests.  Since there are already similar Go
failures with the libc malloc, I'm pretty sure this is just uncovering a
preexisting libgo bug.

I'll try what I can find with valgrind next.

[Bug fortran/85357] gfortran versions 7.2.0/8.0.1 reject F03 procedure overriding

2018-08-29 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85357

--- Comment #6 from janus at gcc dot gnu.org ---
(In reply to cfd from comment #5)
> It would be rather surprising if the Fortran standard viewed this as being
> invalid code (the procedure in question is bound to a dervied type, 
> hence should
> be overridable).

Note that the error has nothing to do with type binding or overriding at all.
It concerns the name clash of the two subroutines. This reduced version
(without any derived types) shows the same error (and ICE):

module base

   implicit none

contains

   subroutine summation(i,j)
  integer(4), intent(in) :: i
  integer(4), intent(out) :: j
  j = i + 1
   end subroutine

end module base


module extended

   use base
   implicit none

contains

   subroutine summation(i,j)
  integer(4), intent(in) :: i
  integer(4), intent(out) :: j
  j = i + 2
   end subroutine

end module extended


You have plenty of options to get around the error:
a) Don't use-import the first 'summation' routine in the second module (as
shown comment 1).
b) Make the 'summation' routines private and only make them available via the
type binding.
c) Use two different names, e.g.


   type, abstract :: base_type
   contains
  procedure :: summation => summation_base
   end type base_type

   type, extends(base_type) :: extended_type
   contains
  procedure :: summation => summation__ext
   end type extended_type

[Bug c++/87148] New: backward compatibility issue to take char [] as incomplete type

2018-08-29 Thread will.xzm at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87148

Bug ID: 87148
   Summary: backward compatibility issue  to take char [] as
incomplete type
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: will.xzm at gmail dot com
  Target Milestone: ---

struct Tst{
   char t[];
};
new Tst();

It will fail when compiled by gcc (7.3 or 8.2)
error: value-initialization of incomplete type [1mchar []

I have to correct to "char t[0]"; 

but with gcc 4.8.2 , it works fine. 

Is it by design ?? 
Is there  alternative way to make last version to  compile successfully without
modify code ??

[Bug c++/49224] [C++0x] Scoped enumeration instantiated even if not required

2018-08-29 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49224

Eric Gallager  changed:

   What|Removed |Added

 CC||jason at redhat dot com,
   ||nathan at acm dot org

--- Comment #3 from Eric Gallager  ---
cc-ing c++ FE maintainers

[Bug middle-end/86540] [9 Regression] pr77445-2.c and ssa-dom-thread-7.c regressions since May 20, 2018

2018-08-29 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86540

Jeffrey A. Law  changed:

   What|Removed |Added

 CC||law at redhat dot com

--- Comment #3 from Jeffrey A. Law  ---
It's on my TODO list :-)

[Bug tree-optimization/84561] -Wstringop-truncation with -O2 depends on strncpy's size type

2018-08-29 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84561

Martin Sebor  changed:

   What|Removed |Added

   Keywords||patch

--- Comment #4 from Martin Sebor  ---
Patch: https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01934.html

[Bug target/86856] Format warnings building all-gcc

2018-08-29 Thread 10walls at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86856

--- Comment #12 from jon_y <10walls at gmail dot com> ---
I've just tested the trunk version as a Linux native build, I don't see the
warnings.

I will proceed to do a mingw cross compiler soon with the trunk version.

[Bug target/87139] 6.4 x86_64 incorrect code generation with -O3 around _addcarry_u64

2018-08-29 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87139

H.J. Lu  changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution|--- |DUPLICATE
   Target Milestone|--- |6.5

--- Comment #6 from H.J. Lu  ---
Fixed on GCC 6 branch and above.

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

[Bug target/81300] -fpeephole2 breaks __builtin_ia32_sbb_u64, _subborrow_u64 on AMD64

2018-08-29 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81300

H.J. Lu  changed:

   What|Removed |Added

 CC||cbcode at gmail dot com

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

[Bug middle-end/87053] wrong code with c_strlen

2018-08-29 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87053

Jeffrey A. Law  changed:

   What|Removed |Added

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

--- Comment #2 from Jeffrey A. Law  ---
Fixed by Bernd's patch on the trunk.

[Bug middle-end/87053] wrong code with c_strlen

2018-08-29 Thread law at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87053

--- Comment #1 from Jeffrey A. Law  ---
Author: law
Date: Wed Aug 29 22:16:09 2018
New Revision: 263968

URL: https://gcc.gnu.org/viewcvs?rev=263968&root=gcc&view=rev
Log:
gcc:
2018-08-22  Bernd Edlinger  

PR middle-end/87053
* builtins.c (c_strlen): Improve range checks.

testsuite:
2018-08-22  Bernd Edlinger  

PR middle-end/87053
* gcc.c-torture/execute/pr87053.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/execute/pr87053.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/builtins.c
trunk/gcc/testsuite/ChangeLog

[Bug tree-optimization/84561] -Wstringop-truncation with -O2 depends on strncpy's size type

2018-08-29 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84561

Martin Sebor  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |msebor at gcc dot 
gnu.org
  Known to fail||8.2.0, 9.0

--- Comment #3 from Martin Sebor  ---
Testing a patch.

[Bug middle-end/86714] tree-ssa-forwprop.c confused by too long initializer

2018-08-29 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86714

Jeffrey A. Law  changed:

   What|Removed |Added

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

--- Comment #9 from Jeffrey A. Law  ---
Should be fixed on trunk now.

[Bug middle-end/86711] [9 Regression] wrong folding of memchr

2018-08-29 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86711

Jeffrey A. Law  changed:

   What|Removed |Added

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

--- Comment #6 from Jeffrey A. Law  ---
Should be fixed on trunk now.

[Bug sanitizer/87095] [8/9 Regression] UndefinedBehaviorSanitizer vptr false positive with virtual inheritance only with -fno-sanitize-recover

2018-08-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87095

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Wed Aug 29 21:43:18 2018
New Revision: 263967

URL: https://gcc.gnu.org/viewcvs?rev=263967&root=gcc&view=rev
Log:
PR c++/87095
* decl.c (begin_destructor_body): If current_class_type has
virtual bases and the primary base is nearly empty virtual base,
voidify clearing of vptr and make it conditional on in-charge
argument.

* g++.dg/ubsan/vptr-13.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/ubsan/vptr-13.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/testsuite/ChangeLog

[Bug tree-optimization/87147] New: GCC miscompiles at -O3 on valid code

2018-08-29 Thread helloqirun at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87147

Bug ID: 87147
   Summary: GCC miscompiles at -O3 on valid code
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: helloqirun at gmail dot com
  Target Milestone: ---

It miscompiles after r263959. Bisect points to r263875.



$ gcc-trunk -v
Using built-in specs.
COLLECT_GCC=gcc-trunk
COLLECT_LTO_WRAPPER=/home/absozero/trunk/root-gcc/libexec/gcc/x86_64-pc-linux-gnu/9.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc/configure --prefix=/home/absozero/trunk/root-gcc
--enable-languages=c,c++ --disable-werror --enable-multilib
Thread model: posix
gcc version 9.0.0 20180829 (experimental) [trunk revision 263965] (GCC)


$ gcc-trunk  abc.c  ; ./a.out
$ gcc-trunk -O3 abc.c ; timeout -s 9 10 ./a.out
Killed


$ cat abc.c
short a;
long b;
int c, d, g;
char e, h;
long f[] = {0};
int main() {
  int i = 1;
  for (; a <= 3; a++) {
c = 0;
for (; c <= 2; c++) {
  b = 0;
  for (; b <= 3; b++) {
h = i && f[d];
e = g && i;
i = 0;
  }
}
  }
}

[Bug tree-optimization/87117] [9 Regression] ICE in eliminate_dom_walker::eliminate_cleanup(bool) at gcc/gcc/tree-ssa-sccvn.c:5431 since r263875

2018-08-29 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87117

--- Comment #16 from David Binderman  ---
(In reply to rguent...@suse.de from comment #15)
> On Wed, 29 Aug 2018, dcb314 at hotmail dot com wrote:
> 
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87117
> > 
> > --- Comment #14 from David Binderman  ---
> > Using a non-gcc compiler, for example clang, at the start
> > seems to break the ubsan bootstrap. 
> > 
> > Would it be worth me sending in another bug report or just posting
> > it here ?
> 
> Please in another bug, not here.

Done. #87146.

[Bug bootstrap/87146] New: ubsan bootstrap with non-gcc compiler fails

2018-08-29 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87146

Bug ID: 87146
   Summary: ubsan bootstrap with  non-gcc compiler fails
   Product: gcc
   Version: 8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dcb314 at hotmail dot com
  Target Milestone: ---

This bootstrap configure line works fine:

../trunk/configure --prefix=/home/dcb/gcc/results.263945.ubsan \
--with-build-config=bootstrap-ubsan \
--disable-multilib \
--disable-werror \
--enable-checking=release \
--enable-languages=c,c++,fortran

This doesn't

CC="/home/dcb/llvm/clang601/bin/clang -Wall" \
CXX="/home/dcb/llvm/clang601/bin/clang++ -Wall" \
../trunk/configure --prefix=/home/dcb/gcc/results.263945.ubsan \
--with-build-config=bootstrap-ubsan \
--disable-multilib \
--disable-werror \
--enable-checking=release \
--enable-languages=c,c++,fortran

failing at the bootstrap compare 

Comparing stages 2 and 3
Bootstrap comparison failure!
fixincludes/fixfixes.o differs
gcc/ira-conflicts.o differs
gcc/gcc.o differs

gcc revision is 263945.

Should I wait for upcoming clang 7.0 or is there something
special about a non-gcc compiler bootstrap ?

[Bug c++/87145] New: Implicit conversion to scoped enum fails: "error: taking address of temporary/rvalue"

2018-08-29 Thread programmer at posteo dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87145

Bug ID: 87145
   Summary: Implicit conversion to scoped enum fails: "error:
taking address of temporary/rvalue"
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: programmer at posteo dot de
  Target Milestone: ---

The following code can be compiled with GCC 6.3, but GCC 7.1 and later abort
the compilation with an error message.

=

#include 

#include 

enum class Enum : std::size_t {};

struct Pod {
  std::size_t val;

  constexpr operator Enum() const {
return static_cast(val);
  }
};

template
constexpr void foo() {
  using Foo = std::integral_constant;
}

int main() {
  foo<2>();
}

=

Error message from current trunk:

=

: In instantiation of 'constexpr void foo() [with long unsigned int N =
2]':

:21:10:   required from here

:17:50: error: taking address of rvalue [-fpermissive]

17 |   using Foo = std::integral_constant;

   |  ^

:17:50: error: no matching function for call to 'Pod::operator
Enum(Pod*)'

:10:13: note: candidate: 'constexpr Pod::operator Enum() const'

10 |   constexpr operator Enum() const {

   | ^~~~

:10:13: note:   candidate expects 0 arguments, 1 provided

Compiler returned: 1

=

Live demo: https://godbolt.org/z/vfvGiS



PS: Which version should I choose if multiple versions are affected: stable,
trunk or [the first version with that regression]?

[Bug fortran/29550] Optimize -fexternal-blas calls for conjg()

2018-08-29 Thread tkoenig at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=29550

Thomas Koenig  changed:

   What|Removed |Added

  Attachment #44600|0   |1
is obsolete||

--- Comment #13 from Thomas Koenig  ---
Created attachment 44627
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44627&action=edit
Patch which shows the principle

This shows a way in which this could be done. Bounds checking
and reallocation on assignment are still missing, but should be
doable (like the inline matmul stuff already does).

[Bug fortran/85357] gfortran versions 7.2.0/8.0.1 reject F03 procedure overriding

2018-08-29 Thread c...@mnet-mail.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85357

--- Comment #5 from c...@mnet-mail.de ---
It would be rather surprising if the Fortran standard viewed this as being
invalid code (the procedure in question is bound to a dervied type, 
hence should
be overridable).

Better to consult the standard to be sure (don't have a copy at hand,
unfortunately).

On 08/29/2018 09:47 PM, janus at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85357
>
> janus at gcc dot gnu.org changed:
>
> What|Removed |Added
> 
>   CC||janus at gcc dot gnu.org
>
> --- Comment #4 from janus at gcc dot gnu.org ---
> I would argue that the code is actually invalid. A current trunk build shows:
>
>   23 |use base
>  |   2
> 
>   34 |subroutine summation(self,i,j)
>  |   1
> Error: Procedure ‘summation’ at (1) is already defined at (2)
>
> That's also what I get with all earlier versions I tried, and I think the 
> error
> is correct.
>
> The only bug I can see is the ICE that occurs with trunk (after the original
> error message and a couple of follow-up errors):
>
> f951: internal compiler error: Segmentation fault
> 0xc5ac8f crash_signal
>  /home/jweil/github/gcc/trunk/gcc/toplev.c:325
> 0x6a75b4 free_sym_tree
>  /home/jweil/github/gcc/trunk/gcc/fortran/symbol.c:3892
> 0x6a75bc free_sym_tree
>  /home/jweil/github/gcc/trunk/gcc/fortran/symbol.c:3892
> 0x6a75bc free_sym_tree
>  /home/jweil/github/gcc/trunk/gcc/fortran/symbol.c:3892
> 0x6a75bc free_sym_tree
>  /home/jweil/github/gcc/trunk/gcc/fortran/symbol.c:3892
> 0x6a75bc free_sym_tree
>  /home/jweil/github/gcc/trunk/gcc/fortran/symbol.c:3892
>
> Looks like an infinite recursion in 'free_sym_tree'.
>

[Bug target/86106] powerpc: Suboptimal logical operation

2018-08-29 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86106

Segher Boessenkool  changed:

   What|Removed |Added

 Target|powerpc |powerpc*-*-*
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-08-29
 Ever confirmed|0   |1

--- Comment #1 from Segher Boessenkool  ---
Confirmed.  GCC has constant ints (not a variable) already before expand,
and already in GCC 4.8 (I didn't check older).

[Bug tree-optimization/87144] New: missing -Wformat for mismatched argument type

2018-08-29 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87144

Bug ID: 87144
   Summary: missing -Wformat for mismatched argument type
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: msebor at gcc dot gnu.org
  Target Milestone: ---

GCC fails to diagnose the argument mismatch below.  -Wformat runs too early to
detect it but the snprintf pass could do it.

$ cat f.c && gcc -O2 -S -Wall f.c
int f (_Bool str, int x, const char *s)
{
  const char *f = str ? "%s" : "%i";

  // Note the typo in the ternary operator below: it should be
  //   str ? s : x);
  // instead.
  return __builtin_snprintf (0, 0, f, s ? str : x);
}

[Bug c++/67491] [meta-bug] concepts issues

2018-08-29 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491
Bug 67491 depends on bug 85265, which changed state.

Bug 85265 Summary: [concepts] ICE with missing identifier
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85265

   What|Removed |Added

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

[Bug c++/85265] [concepts] ICE with missing identifier

2018-08-29 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85265

Paolo Carlini  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Assignee|paolo.carlini at oracle dot com|unassigned at gcc dot 
gnu.org
   Target Milestone|--- |9.0

--- Comment #3 from Paolo Carlini  ---
Fixed.

[Bug c++/85265] [concepts] ICE with missing identifier

2018-08-29 Thread paolo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85265

--- Comment #2 from paolo at gcc dot gnu.org  ---
Author: paolo
Date: Wed Aug 29 20:29:55 2018
New Revision: 263966

URL: https://gcc.gnu.org/viewcvs?rev=263966&root=gcc&view=rev
Log:
/cp
2018-08-29  Paolo Carlini  

PR c++/85265
* parser.c (cp_parser_introduction_list): If cp_parser_identifier
returns error_mark_node early exit the loop.
(cp_parser_template_introduction): Improve error-recovery, remove
error call about empty introduction-list.

/testsuite
2018-08-29  Paolo Carlini  

PR c++/85265
* g++.dg/concepts/pr85265.C: New.

Added:
trunk/gcc/testsuite/g++.dg/concepts/pr85265.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog

[Bug target/86856] Format warnings building all-gcc

2018-08-29 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86856

Martin Sebor  changed:

   What|Removed |Added

   Keywords||build
 Status|UNCONFIRMED |RESOLVED
 CC||msebor at gcc dot gnu.org
 Resolution|--- |WONTFIX

--- Comment #11 from Martin Sebor  ---
(In reply to nightstrike from comment #9)

The %G warnings are due to r263239: the expected argument type has changed in
GCC 9 from gcall* to gimple*.  There's no way to avoid those warnings when
using an older compiler.  They should not appear if you use GCC 9 to build it.

[Bug c++/84898] Fix-it hints for '.' vs '->'

2018-08-29 Thread dmalcolm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84898

David Malcolm  changed:

   What|Removed |Added

   Keywords||patch

--- Comment #4 from David Malcolm  ---
Candidate patch:
  https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01909.html
which implements the fix-it hints for C++, but doesn't change the wording.

[Bug fortran/85357] gfortran versions 7.2.0/8.0.1 reject F03 procedure overriding

2018-08-29 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85357

janus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||janus at gcc dot gnu.org

--- Comment #4 from janus at gcc dot gnu.org ---
I would argue that the code is actually invalid. A current trunk build shows:

 23 |use base
|   2

 34 |subroutine summation(self,i,j)
|   1
Error: Procedure ‘summation’ at (1) is already defined at (2)

That's also what I get with all earlier versions I tried, and I think the error
is correct.

The only bug I can see is the ICE that occurs with trunk (after the original
error message and a couple of follow-up errors):

f951: internal compiler error: Segmentation fault
0xc5ac8f crash_signal
/home/jweil/github/gcc/trunk/gcc/toplev.c:325
0x6a75b4 free_sym_tree
/home/jweil/github/gcc/trunk/gcc/fortran/symbol.c:3892
0x6a75bc free_sym_tree
/home/jweil/github/gcc/trunk/gcc/fortran/symbol.c:3892
0x6a75bc free_sym_tree
/home/jweil/github/gcc/trunk/gcc/fortran/symbol.c:3892
0x6a75bc free_sym_tree
/home/jweil/github/gcc/trunk/gcc/fortran/symbol.c:3892
0x6a75bc free_sym_tree
/home/jweil/github/gcc/trunk/gcc/fortran/symbol.c:3892

Looks like an infinite recursion in 'free_sym_tree'.

[Bug preprocessor/87088] Attached program doesn't finish compiling and linking

2018-08-29 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87088

--- Comment #14 from Jonathan Wakely  ---
There is no GCC bug here.

[Bug tree-optimization/87074] [8/9 Regression] Unroll and jam bug: O3 result differ from O2

2018-08-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87074

--- Comment #4 from Jakub Jelinek  ---
outer->header is:
  bb_4 (preds = {bb_3 bb_11 }, succs = {bb_5 })
  {
 [local count: 118111601]:
# f.10_31 = PHI 
# .MEM_34 = PHI <.MEM_18(D)(3), .MEM_21(11)>
# g_lsm.15_33 = PHI 
_75 = (unsigned int) g_lsm.15_33;
  }
the bb into which the inner loop exits is:
  bb_6 (preds = {bb_5 }, succs = {bb_11 bb_7 })
  {
 [local count: 118111601]:
# _11 = PHI <_8(5)>
_9 = (int) _11;
_12 = f.10_31 + 1;
if (_12 <= 10)
  goto ; [89.00%]
else
  goto ; [11.00%]
  }
and outer->latch is:
  bb_11 (preds = {bb_6 }, succs = {bb_4 })
  {
 [local count: 105119325]:
goto ; [100.00%]
  }
>From what I can see, gimple-loop-jam.c verifies using bb_prevents_fusion_p
these 3 bbs, but nothing checks the outer loop's IVs.
The problem is that a value computed by the inner loop (_8) is then used inside
of the outer loop and fed into the next inner loop too.

So, shall we punt if there are any phis in single_exit (loop)->dest (other than
virtual) (assuming here that we are in loop closed SSA form) and thus there are
any SSA_NAME uses from the inner loop to next outer loop's iteration?
Or are there perhaps any exceptions that can be handled, like if a value
computed by the inner loop is not used only after the outer loop exits?

[Bug c++/87137] [8/9 Regression] Non-virtual member function increases struct size

2018-08-29 Thread nathan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137

--- Comment #10 from Nathan Sidwell  ---
gcc-8 patch posted https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01900.html

[Bug preprocessor/87088] Attached program doesn't finish compiling and linking

2018-08-29 Thread miltonkbenjamin at verizon dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87088

--- Comment #13 from miltonkbenjamin  ---
(In reply to Jonathan Wakely from comment #12)
> (In reply to miltonkbenjamin from comment #11)
> > > C:\parser>g++ -include iostream.h -Xpreprocessor "FlexLexer.h"  
> > > lex1.yy.cc 
> 
> You're STILL passing a filename as the argument to -Xpreprocessor.
> 
> What part of my comments do you not understand?

Hi Jonathan,

I tried what you suggested, and it failed as per comment 10 here.

If you can send me an email address, I can send you the files (and
for a fee?) see if you can get it working.  I installed win_flex, win_bison and
g++ on dozens of Win 7 PCS and it worked each and every time.
I currently have a Win 10 PC and it failed on 3 Win 10 PC's I have access to.

Thanks for your support,

Milt Benjamin

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-08-29 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

--- Comment #7 from Segher Boessenkool  ---
lang_hooks.types.type_for_mode can return NULL, but emit_library_call_value
cannot handle that.

Why it fails on a cross and not natively, I don't know...  target bug is
my guess.

[Bug middle-end/86714] tree-ssa-forwprop.c confused by too long initializer

2018-08-29 Thread law at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86714

--- Comment #8 from Jeffrey A. Law  ---
Author: law
Date: Wed Aug 29 17:17:08 2018
New Revision: 263963

URL: https://gcc.gnu.org/viewcvs?rev=263963&root=gcc&view=rev
Log:
PR tree-optimization/86714
PR tree-optimization/86711
* builtins.c (c_strlen): Add arguments to call to string_constant.
* expr.c (string_constant): Add argument.  Detect missing nul
terminator and outermost declaration it's missing in.
* expr.h (string_constant): Add argument.
* fold-const.c (read_from_constant_string): Add arguments to call to
string_constant.
(c_getstr): Likewise.
* tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
to string_constant.
* tree-ssa-strlen.c (get_stridx): Likewise.

PR tree-optimization/86714
PR tree-optimization/86711
* gcc.c-torture/execute/memchr-1.c: New test.
* gcc.c-torture/execute/pr86714.c: New test.
* gcc.c-torture/execute/widechar-3.c: New test.
* gcc.dg/strlenopt-58.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/execute/memchr-1.c
trunk/gcc/testsuite/gcc.c-torture/execute/pr86714.c
trunk/gcc/testsuite/gcc.c-torture/execute/widechar-3.c
trunk/gcc/testsuite/gcc.dg/strlenopt-58.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/builtins.c
trunk/gcc/expr.c
trunk/gcc/expr.h
trunk/gcc/fold-const.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-forwprop.c
trunk/gcc/tree-ssa-strlen.c

[Bug middle-end/86711] [9 Regression] wrong folding of memchr

2018-08-29 Thread law at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86711

--- Comment #5 from Jeffrey A. Law  ---
Author: law
Date: Wed Aug 29 17:17:08 2018
New Revision: 263963

URL: https://gcc.gnu.org/viewcvs?rev=263963&root=gcc&view=rev
Log:
PR tree-optimization/86714
PR tree-optimization/86711
* builtins.c (c_strlen): Add arguments to call to string_constant.
* expr.c (string_constant): Add argument.  Detect missing nul
terminator and outermost declaration it's missing in.
* expr.h (string_constant): Add argument.
* fold-const.c (read_from_constant_string): Add arguments to call to
string_constant.
(c_getstr): Likewise.
* tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
to string_constant.
* tree-ssa-strlen.c (get_stridx): Likewise.

PR tree-optimization/86714
PR tree-optimization/86711
* gcc.c-torture/execute/memchr-1.c: New test.
* gcc.c-torture/execute/pr86714.c: New test.
* gcc.c-torture/execute/widechar-3.c: New test.
* gcc.dg/strlenopt-58.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/execute/memchr-1.c
trunk/gcc/testsuite/gcc.c-torture/execute/pr86714.c
trunk/gcc/testsuite/gcc.c-torture/execute/widechar-3.c
trunk/gcc/testsuite/gcc.dg/strlenopt-58.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/builtins.c
trunk/gcc/expr.c
trunk/gcc/expr.h
trunk/gcc/fold-const.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-forwprop.c
trunk/gcc/tree-ssa-strlen.c

[Bug fortran/87143] Uninitialized warnings when using automatic array allocation

2018-08-29 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87143

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2018-08-29
 Ever confirmed|0   |1

--- Comment #1 from Dominique d'Humieres  ---
Confirmed from 7.3 up to trunk (9.0). I am sure there are several duplicates.

[Bug middle-end/86995] [9 regression] c-c++-common/torture/builtin-arith-overflow-17.c etc. FAIL

2018-08-29 Thread vlad.lazar at arm dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86995

--- Comment #6 from Vlad Lazar  ---
Here's the patch: https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01889.html

[Bug middle-end/87138] [8/9 Regression] wrong code with TI multiplication with -O -march=k8 -fno-tree-fre -mavx512bw

2018-08-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87138

--- Comment #2 from Jakub Jelinek  ---
Created attachment 44626
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44626&action=edit
gcc9-pr87138.patch

That revision just uncovered a latent bug in expand_mult_const.  If val_so_far
is above HOST_WIDE_INT_MAX and nmode is wider than 64-bits, it adds an
incorrect REG_EQUAL note, says the partial result is equal to const_int
0x8000, which is a negative value of (__int128) (- LONG_MAX - 1),
but it should actually use const_wide_int 0x08000 instead (or
const_double if const_wide_int isn't supported).

[Bug target/87139] 6.4 x86_64 incorrect code generation with -O3 around _addcarry_u64

2018-08-29 Thread cbcode at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87139

--- Comment #5 from cbcode at gmail dot com ---
(In reply to H.J. Lu from comment #4)
> (In reply to cbcode from comment #2)
> > Created attachment 44621 [details]
> > test reproducing the problem
> 
> How to show the problem?

Save the attachment as test.cpp, compile, run and look at the output:
g++ -std=c++11 -O3 -o test test.cpp && ./test 10

function bigmul() multiplies two arbitrary-precision integers, and main()
generates a few random examples and format them as a python3-script, consisting
of lines of the form:
if a * b != expected: print a, b, expected, a * b

To run the tests, do:
g++ -std=c++11 -O3 -o test test.cpp && ./test 10 | python3

If the gcc version is not 6, or if the optimization level is below -O3, all
checks will pass and there is no output.

With the default g++ in amd64-debian-stable at the time of this writing (gcc
version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)) I get the following output:

$ g++ -std=c++11 -O3 -o test test.cpp && ./test 10 | python3
0xbeeb8da1658eec67910a2dec89025cc1 * 0x71c18690ee42c90bf893a2eefb32555e
= 0x54d64d7566d4996250f93066b9e161138d4d6f3a582b5c4f9f3bd72d705c23de
? 0x54d64d7566d4996250f93066b9e161128d4d6f3a582b5c4f9f3bd72d705c23de
0xc34d0bff9015028071bb54d8d101b5b9 * 0x85e7bb0f12278575e099ec6cd7363ca5
= 0x6627d0766096e0e087e772aabc35719b32092fcf64d348f16eb53cc1d0b77c3d
? 0x6627d0766096e0e087e772aabc35719a32092fcf64d348f16eb53cc1d0b77c3d
0xcb435c8e74616796491718de357e3da8 * 0x9afcd44d14cf8bfe6775dc7701564f61
= 0x7b0f448dcaac0546958108e31e6bff5afc779f31bc686ccf2bbb7e72984c34a8
? 0x7b0f448dcaac0546958108e31e6bff59fc779f31bc686ccf2bbb7e72984c34a8
0x87b341d690d7a28a7476cf8a4baa5dc0 * 0x2ac2ce17a5794a3b6f9b6dae6f4c57a8
= 0x16aaabe3e0298b6b287985777faad3121c5e6216bd208bf75d540032a2a9c600
? 0x16aaabe3e0298b6b287985777faad3111c5e6216bd208bf75d540032a2a9c600
0xd0bad0da572baaf1a534a6a6b7fd0b63 * 0xe263183773ef6508ae84379630af89ee
= 0xb895b85e3fa2b67d1b3b3243d7509b6b0ca8fe779ebdc9d4475c5094d105910a
? 0xb895b85e3fa2b67d1b3b3243d7509b6a0ca8fe779ebdc9d4475c5094d105910a
0x70616f2f48dce01c65ace2685a072c6d * 0x879e2e2256feff0c40d6824e2ef3fc17
= 0x3b88d20523b761dd4aec1ed139f28c4baa0e1564fccd5926707eb1ffe7d749cb
? 0x3b88d20523b761dd4aec1ed139f28c4aaa0e1564fccd5926707eb1ffe7d749cb
0xbf8c59bb003553c18b2e02445e4be0f5 * 0xab27a171be5b133cd16aa4b296eb9d18
= 0x8010671df4712da0478a910d2b8b019bd201c56c8ce38b81bf08880e6efa57f8
? 0x8010671df4712da0478a910d2b8b019ad201c56c8ce38b81bf08880e6efa57f8

7 out of 10 tests fail, there is bit flipped somewhere in the middle.

g++ -std=c++11 -O2 -o test test.cpp && ./test 10 | python3
passes all tests, as does g++ -O3 with a gcc version other than 6.x.

The problem seems to require the presence of loops (and presumably their
unrolling), and the add_overflow and add_carry need to appear next to each
other without anything in between. I was not able to narrow it down further.

[Bug fortran/87143] New: Uninitialized warnings when using automatic array allocation

2018-08-29 Thread andrew at fluidgravity dot co.uk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87143

Bug ID: 87143
   Summary: Uninitialized warnings when using automatic array
allocation
   Product: gcc
   Version: 7.3.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: andrew at fluidgravity dot co.uk
  Target Milestone: ---

I get the following warnings when compiling the code below:

> gfortran -Wall -std=f2008 code.f90
code.f90:5:0:

i = [0, 1, 2]

Warning: ‘i.offset’ is used uninitialized in this function [-Wuninitialized]
code.f90:5:0: Warning: ‘i.dim[0].lbound’ is used uninitialized in this function
[-Wuninitialized]
code.f90:5:0: Warning: ‘i.dim[0].ubound’ is used uninitialized in this function
[-Wuninitialized]
code.f90:5:0:

i = [0, 1, 2]

Warning: ‘i.dim[0].lbound’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
code.f90:5:0: Warning: ‘i.dim[0].ubound’ may be used uninitialized in this
function [-Wmaybe-uninitialized]
code.f90:5:0: Warning: ‘i.dim[0].ubound’ may be used uninitialized in this
function [-Wmaybe-uninitialized]
code.f90:5:0: Warning: ‘i.dim[0].lbound’ may be used uninitialized in this
function [-Wmaybe-uninitialized]


> cat code.f90 
PROGRAM p
   IMPLICIT NONE
   INTEGER, ALLOCATABLE :: i(:)

   i = [0, 1, 2]
   PRINT*,SIZE(i)
   PRINT*,i
END PROGRAM p

[Bug c++/30812] enhancement: exception specification in __PRETTY_FUNCTION__

2018-08-29 Thread nathan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30812

Nathan Sidwell  changed:

   What|Removed |Added

 CC||nathan at gcc dot gnu.org

--- Comment #4 from Nathan Sidwell  ---
A function's noexceptness is part of the type in c++11, so it might make sense
to include that.

[Bug middle-end/87138] [8/9 Regression] wrong code with TI multiplication with -O -march=k8 -fno-tree-fre -mavx512bw

2018-08-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87138

Jakub Jelinek  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
  Component|rtl-optimization|middle-end

[Bug fortran/87142] New: Aliasing issue with overloaded assignment and allocatable components

2018-08-29 Thread mscfd at gmx dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87142

Bug ID: 87142
   Summary: Aliasing issue with overloaded assignment and
allocatable components
   Product: gcc
   Version: 7.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mscfd at gmx dot net
  Target Milestone: ---

The following code does not work, as the left hand side in "str = str%cs(1:10)"
is deallocated, before the right hand side, where str also appears, is
evaluated. With gfortran-7.3.0, the output looks right, but I see invalid
memory accesses in valgrind. In other circumstances, depending on the length of
the string and with 8.1.0, I have also seen wrong results, but then depending
on the optimisation level. As far as I know, this is a violation of the
standard, which requires that the right hand side is evaluated before the left
hand side is modified (i.e. in this case deallocated).

module mod

implicit none
private

type, public :: string
   character(len=:), allocatable :: cs

contains
   procedure, public :: assign
   generic, public :: assignment(=) => assign
end type string

contains

elemental subroutine assign(self, cs)
class(string), intent(inout) :: self
character(len=*), intent(in) :: cs

! this is not working if cs and self%cs are aliasing
self%cs = cs
end subroutine assign

end module mod



program assign_alias

use mod
implicit none

type(string) :: str

str%cs = repeat('0123456789', 100)

str = str%cs(1:10)

end program assign_alias

[Bug c++/87137] [8/9 Regression] Non-virtual member function increases struct size

2018-08-29 Thread lh_mouse at 126 dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137

--- Comment #9 from Liu Hao  ---
(In reply to Nathan Sidwell from comment #6)
> Created attachment 44623 [details]
> patch
> 
> This patch appears to fix the problem  It'd be good to (a) confirms it also
> passes on MS's compiler

With this patch applied, GCC 8.2.1 accepts the testcase, as well as Microsoft
CL 19.15.26726 .

[Bug bootstrap/87141] New: configure:14586: error: Could not determine word size.

2018-08-29 Thread mfe at live dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87141

Bug ID: 87141
   Summary: configure:14586: error: Could not determine word size.
   Product: gcc
   Version: 8.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mfe at live dot de
  Target Milestone: ---

Created attachment 44625
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44625&action=edit
config

he exact version of GCC:
gcc-8.2.0

the system type:
NetgearReadyNAS Duo
(http://wiki.dietpc.org/index.php/DIET-PC_on_SPARC_ReadyNAS)

the options given when GCC was configured/built:
../gcc-8.2.0/configure --prefix=/opt/gcc-8.2/ --enable-languages=c,c++,go
--with-mpc=/usr/local --with-mpfr=/usr/local --with-gmp=/usr/local
--with-isl=/usr/local/ --disable-doc --host=sparc-linux --build=sparc-linux
--disable-libstdcxx-pch --disable-linux-futex --disable-libsanitizer
--disable-libcilkrts --disable-libitm --disable-libitm CC=/opt/gcc-7.3/bin/gcc
CXX=/opt/gcc-7.3/bin/g++ && /usr/local/bin/make


## - ##
## Platform. ##
## - ##

hostname = nas-02-90-38
uname -m = padre
uname -r = 2.6.17.14ReadyNAS
uname -s = Linux
uname -v = #1 Wed Jun 20 20:08:20 PDT 2012

the complete command line that triggers the bug (stage3);
/usr/local/bin/make

the compiler output (error messages, warnings, etc.);
[...]
checking if /media/gcc-8.2.0-compiled/./gcc/xgcc
-B/media/gcc-8.2.0-compiled/./gcc/ -B/opt/gcc-8.2/sparc-linux/bin/
-B/opt/gcc-8.2/sparc-linux/lib/ -isystem /opt/gcc-8.2/sparc-linux/include
-isystem /opt/gcc-8.2/sparc-linux/sys-includesupports -c -o file.o...
(cached) yes
checking whether the /media/gcc-8.2.0-compiled/./gcc/xgcc
-B/media/gcc-8.2.0-compiled/./gcc/ -B/opt/gcc-8.2/sparc-linux/bin/
-B/opt/gcc-8.2/sparc-linux/lib/ -isystem /opt/gcc-8.2/sparc-linux/include
-isystem /opt/gcc-8.2/sparc-linux/sys-includelinker
(/media/gcc-8.2.0-compiled/./gcc/collect-ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for thread model used by GCC... posix
checking for ANSI C header files... (cached) yes
checking whether string.h and strings.h may both be included... yes
looking for a compliant stdint.h in stdint.h, checking for uintmax_t... yes
checking for uintptr_t... yes
checking for int_least32_t... yes
checking for int_fast32_t... yes
checking for uint64_t... yes
checking what to include in gstdint.h... stdint.h (already complete)
checking fenv.h usability... yes
checking fenv.h presence... yes
checking for fenv.h... yes
checking for 1 byte integer... yes
checking for 2 byte integer... yes
checking for 4 byte integer... yes
checking for 8 byte integer... yes
checking for 16 byte integer... no
checking for __atomic_load/store for size 1... yes
checking for __atomic_load/store for size 2... yes
checking for __atomic_load/store for size 4... yes
checking for __atomic_load/store for size 8... yes
checking for __atomic_load/store for size 16... no
checking for __atomic_test_and_set for size 1... yes
checking for __atomic_test_and_set for size 2... yes
checking for __atomic_test_and_set for size 4... yes
checking for __atomic_test_and_set for size 8... yes
checking for __atomic_test_and_set for size 16... no
checking for __atomic_exchange for size 1... yes
checking for __atomic_exchange for size 2... yes
checking for __atomic_exchange for size 4... yes
checking for __atomic_exchange for size 8... no
checking for __atomic_exchange for size 16... no
checking for __atomic_compare_exchange for size 1... yes
checking for __atomic_compare_exchange for size 2... yes
checking for __atomic_compare_exchange for size 4... yes
checking for __atomic_compare_exchange for size 8... no
checking for __atomic_compare_exchange for size 16... no
checking for __atomic_fetch_add for size 1... yes
checking for __atomic_fetch_add for size 2... yes
checking for __atomic_fetch_add for size 4... yes
checking for __atomic_fetch_add for size 8... no
checking for __atomic_fetch_add for size 16... no
checking for __atomic_fetch_op for size 1... yes
checking for __atomic_fetch_op for size 2... yes
checking for __atomic_fetch_op for size 4... yes
checking for __atomic_fetch_op for size 8... no
checking for __atomic_fetch_op for size 16... no
checking whether byte ordering is bigendian... yes
checking for the word size... configure: error: Could not determine word size.
make[1]: *** [Makefile:22655: configure-target-libatomic] Error 1
make[1]: Leaving directory '/c/m

[Bug target/87139] 6.4 x86_64 incorrect code generation with -O3 around _addcarry_u64

2018-08-29 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87139

H.J. Lu  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2018-08-29
 Ever confirmed|0   |1

--- Comment #4 from H.J. Lu  ---
(In reply to cbcode from comment #2)
> Created attachment 44621 [details]
> test reproducing the problem

How to show the problem?

[Bug c++/87137] [8/9 Regression] Non-virtual member function increases struct size

2018-08-29 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137

--- Comment #8 from Jonathan Wakely  ---
It compiles successfully with MSVC https://godbolt.org/z/Cw-yiW

[Bug tree-optimization/87132] [9 Regression] Gcc miscompiles at -O2 on valid code

2018-08-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87132

Richard Biener  changed:

   What|Removed |Added

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

--- Comment #4 from Richard Biener  ---
Fixed.

[Bug c++/87137] [8/9 Regression] Non-virtual member function increases struct size

2018-08-29 Thread nathan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137

--- Comment #7 from Nathan Sidwell  ---
Created attachment 44624
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44624&action=edit
this is the testcase

[Bug c++/87137] [8/9 Regression] Non-virtual member function increases struct size

2018-08-29 Thread nathan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137

--- Comment #6 from Nathan Sidwell  ---
Created attachment 44623
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44623&action=edit
patch

This patch appears to fix the problem  It'd be good to (a) confirms it also
passes on MS's compiler

[Bug rtl-optimization/87138] [8/9 Regression] wrong code with TI multiplication with -O -march=k8 -fno-tree-fre -mavx512bw

2018-08-29 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87138

H.J. Lu  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-08-29
 CC||jakub at redhat dot com
 Ever confirmed|0   |1

--- Comment #1 from H.J. Lu  ---
It was caused by r250397.

[Bug libgomp/87140] New: Segmentation fault in priority_list_upgrade_task function when execution tasks with priority

2018-08-29 Thread silvestri at diag dot uniroma1.it
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87140

Bug ID: 87140
   Summary: Segmentation fault in priority_list_upgrade_task
function when execution tasks with priority
   Product: gcc
   Version: 8.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgomp
  Assignee: unassigned at gcc dot gnu.org
  Reporter: silvestri at diag dot uniroma1.it
CC: jakub at gcc dot gnu.org
  Target Milestone: ---

Created attachment 44622
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44622&action=edit
Program to test BUG FIX

Hello,

in GOMP_taskwait function within task.c at line 1352, the following code leads
to SIGSEV when executing tasks with priority:

struct gomp_task *next_task = priority_queue_next_task (PQ_CHILDREN,
&task->children_queue, PQ_TEAM, &team->task_queue, &child_q);

This is possible because priority_queue_next_task function may return a
non-child task instead of a child task every time both team queue and children
queue return GOMP_TASK_WAITING tasks, and the non-child task has greater
priority value. Since it's impossible to rearrange a non-child task order in
children queue, the segmentation fault occurs in priority_list_upgrade_task
funtion.

The libgomp implementation uses TIED tasks by default and the aforementioned
behaviour leads also to violate TSC2.

The proposed fix is the following:

struct gomp_task *next_task = priority_queue_next_task (PQ_CHILDREN,
&task->children_queue, PQ_IGNORED, NULL, &child_q);

In the attachment a program to test libgomp before and after the proposed fix.

[Bug tree-optimization/87132] [9 Regression] Gcc miscompiles at -O2 on valid code

2018-08-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87132

--- Comment #3 from Richard Biener  ---
Author: rguenth
Date: Wed Aug 29 14:13:20 2018
New Revision: 263959

URL: https://gcc.gnu.org/viewcvs?rev=263959&root=gcc&view=rev
Log:
2018-08-29  Richard Biener  

PR tree-optimization/87132
* tree-ssa-alias.c (get_continuation_for_phi): Do not translate
when skipping defs reachable over backedges.

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

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr87132.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-alias.c

[Bug c++/87137] [8/9 Regression] Non-virtual member function increases struct size

2018-08-29 Thread nathan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137

--- Comment #5 from Nathan Sidwell  ---
what should the layout of the following be?
struct Foo {
  unsigned one : 24;
  static int var;
  unsigned two : 4;
};

is this size 8 or 4?

[Bug c++/85110] Missing underlines for some bad arguments

2018-08-29 Thread dmalcolm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85110

--- Comment #7 from David Malcolm  ---
Author: dmalcolm
Date: Wed Aug 29 13:52:22 2018
New Revision: 263957

URL: https://gcc.gnu.org/viewcvs?rev=263957&root=gcc&view=rev
Log:
C++: underline param in print_conversion_rejection (more PR c++/85110)

Consider this bogus code (from g++.dg/diagnostic/param-type-mismatch-2.C):

struct s4 { static int member_1 (int one, const char **two, float three); };

int test_4 (int first, const char *second, float third)
{
  return s4::member_1 (first, second, third);
}

Before this patch, g++ emits:

demo.cc: In function 'int test_4(int, const char*, float)':
demo.cc:5:44: error: no matching function for call to 's4::member_1(int&, const
char*&, float&)'
5 |   return s4::member_1 (first, second, third);
  |^
demo.cc:1:24: note: candidate: 'static int s4::member_1(int, const char**,
float)'
1 | struct s4 { static int member_1 (int one, const char **two, float three);
};
  |^~~~
demo.cc:1:24: note:   no known conversion for argument 2 from 'const char*' to
'const char**'

With this patch, it highlights the pertinent parameter in the
"no known conversion" note:

demo.cc: In function 'int test_4(int, const char*, float)':
demo.cc:5:44: error: no matching function for call to 's4::member_1(int&, const
char*&, float&)'
5 |   return s4::member_1 (first, second, third);
  |^
demo.cc:1:24: note: candidate: 'static int s4::member_1(int, const char**,
float)'
1 | struct s4 { static int member_1 (int one, const char **two, float three);
};
  |^~~~
demo.cc:1:56: note:   no known conversion for argument 2 from 'const char*' to
'const char**'
1 | struct s4 { static int member_1 (int one, const char **two, float three);
};
  |   ~^~~

gcc/cp/ChangeLog:
PR c++/85110
* call.c (print_conversion_rejection): Add "fn" param and use it
for "no known conversion" messages to underline the pertinent
param.
(print_z_candidate): Supply "fn" to the new param above.

gcc/testsuite/ChangeLog:
PR c++/85110
* g++.dg/diagnostic/param-type-mismatch-2.C: Update expected
output to reflect underlining of pertinent parameter in decl
for "no known conversion" messages.


Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/diagnostic/param-type-mismatch-2.C

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-08-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

--- Comment #6 from Martin Liška  ---
Backtrace from GDB with function arguments visible:

#0  0x015140fd in aggregate_value_p (exp=0x0, fntype=0x0) at
/home/marxin/Programming/gcc/gcc/function.c:2046
#1  0x00f3d2e0 in emit_library_call_value_1 (retval=1,
orgfun=0x75834210, value=0x0, fn_type=LCT_CONST, outmode=E_KFmode, nargs=1,
args=0x7fffc0d0) at /home/marxin/Programming/gcc/gcc/calls.c:4745
#2  0x0136c557 in emit_library_call_value (fun=0x75834210,
value=0x0, fn_type=LCT_CONST, outmode=E_KFmode, arg1=0x75912ea0,
arg1_mode=E_SFmode) at /home/marxin/Programming/gcc/gcc/rtl.h:4185
#3  0x013b3a7a in convert_mode_scalar (to=0x75917558,
from=0x75912ea0, unsignedp=0) at
/home/marxin/Programming/gcc/gcc/expr.c:329
#4  0x013b2da4 in convert_move (to=0x75917558, from=0x75912ea0,
unsignedp=0) at /home/marxin/Programming/gcc/gcc/expr.c:271
#5  0x013ba345 in convert_modes (mode=E_KFmode, oldmode=E_SFmode,
x=0x75912ea0, unsignedp=0) at /home/marxin/Programming/gcc/gcc/expr.c:712
#6  0x013b86db in convert_to_mode (mode=E_KFmode, x=0x75912ea0,
unsignedp=0) at /home/marxin/Programming/gcc/gcc/expr.c:637
#7  0x01c27738 in expand_fix (to=0x75912f30, from=0x75912ea0,
unsignedp=1) at /home/marxin/Programming/gcc/gcc/optabs.c:4930
#8  0x01405268 in expand_expr_real_2 (ops=0x7fffd1e0,
target=0x75912f30, tmode=E_DImode, modifier=EXPAND_NORMAL) at
/home/marxin/Programming/gcc/gcc/expr.c:8961
#9  0x00f8e553 in expand_gimple_stmt_1 (stmt=) at /home/marxin/Programming/gcc/gcc/cfgexpand.c:3673
#10 0x00f8ea9a in expand_gimple_stmt (stmt=) at /home/marxin/Programming/gcc/gcc/cfgexpand.c:3734
#11 0x00fa3f59 in expand_gimple_basic_block (bb=, disable_tail_calls=false) at
/home/marxin/Programming/gcc/gcc/cfgexpand.c:5770
#12 0x00fa88db in (anonymous namespace)::pass_expand::execute
(this=0x6e6f770, fun=0x75903000) at
/home/marxin/Programming/gcc/gcc/cfgexpand.c:6373
#13 0x01d1578d in execute_one_pass (pass=) at /home/marxin/Programming/gcc/gcc/passes.c:2446
#14 0x01d1611e in execute_pass_list_1 (pass=) at /home/marxin/Programming/gcc/gcc/passes.c:2535
#15 0x01d16272 in execute_pass_list (fn=0x75903000, pass=) at /home/marxin/Programming/gcc/gcc/passes.c:2546
#16 0x010a13e3 in cgraph_node::expand (this=) at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2121
#17 0x010a3a16 in output_in_order () at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2365
#18 0x010a5434 in symbol_table::compile (this=0x7580d000) at
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2609
#19 0x010a5ea7 in symbol_table::finalize_compilation_unit
(this=0x7580d000) at /home/marxin/Programming/gcc/gcc/cgraphunit.c:2788
#20 0x020dd5b6 in compile_file () at
/home/marxin/Programming/gcc/gcc/toplev.c:480
#21 0x020e4821 in do_compile () at
/home/marxin/Programming/gcc/gcc/toplev.c:2170
#22 0x020e4e50 in toplev::main (this=0x7fffd98e, argc=12,
argv=0x7fffda88) at /home/marxin/Programming/gcc/gcc/toplev.c:2305
#23 0x03aec681 in main (argc=12, argv=0x7fffda88) at
/home/marxin/Programming/gcc/gcc/main.c:39

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-08-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

--- Comment #5 from Martin Liška  ---
In calls.c I see:

   │4742  if (outmode != VOIDmode)  
   │4743{
   │4744  tfom = lang_hooks.types.type_for_mode (outmode, 0);
  >│4745  if (aggregate_value_p (tfom, 0))


(gdb) p tfom
$2 = 
(gdb) p outmode
$3 = E_KFmode

Would it help?

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-08-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

--- Comment #4 from Martin Liška  ---
ubsan build helps:

$ UBSAN_OPTIONS=print_stacktrace=1  ./xgcc -B.
/home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90
-frounding-math
/home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90:13:5:

13 |   do x = 1.0, 2.05, 0.1
   | 1
Warning: Deleted feature: Loop variable at (1) must be integer
/home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90:13:8:

13 |   do x = 1.0, 2.05, 0.1
   |1
Warning: Deleted feature: Start expression in DO loop at (1) must be integer
/home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90:13:13:

13 |   do x = 1.0, 2.05, 0.1
   | 1
Warning: Deleted feature: End expression in DO loop at (1) must be integer
/home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90:13:19:

13 |   do x = 1.0, 2.05, 0.1
   |   1
Warning: Deleted feature: Step expression in DO loop at (1) must be integer
/home/marxin/Programming/gcc/gcc/function.c:2046:22: runtime error: member
access within null pointer of type 'const union tree_node'
#0 0x15140fc in aggregate_value_p(tree_node const*, tree_node const*)
/home/marxin/Programming/gcc/gcc/function.c:2046
#1 0xf3d2df in emit_library_call_value_1(int, rtx_def*, rtx_def*,
libcall_type, machine_mode, int, std::pair*)
/home/marxin/Programming/gcc/gcc/calls.c:4745
#2 0x136c556 in emit_library_call_value(rtx_def*, rtx_def*, libcall_type,
machine_mode, rtx_def*, machine_mode)
/home/marxin/Programming/gcc/gcc/rtl.h:4185
#3 0x13b3a79 in convert_mode_scalar
/home/marxin/Programming/gcc/gcc/expr.c:329
#4 0x13b2da3 in convert_move(rtx_def*, rtx_def*, int)
/home/marxin/Programming/gcc/gcc/expr.c:271
#5 0x13ba344 in convert_modes(machine_mode, machine_mode, rtx_def*, int)
/home/marxin/Programming/gcc/gcc/expr.c:712
#6 0x13b86da in convert_to_mode(machine_mode, rtx_def*, int)
/home/marxin/Programming/gcc/gcc/expr.c:637
#7 0x1c27737 in expand_fix(rtx_def*, rtx_def*, int)
/home/marxin/Programming/gcc/gcc/optabs.c:4930
#8 0x1405267 in expand_expr_real_2(separate_ops*, rtx_def*, machine_mode,
expand_modifier) /home/marxin/Programming/gcc/gcc/expr.c:8961
#9 0xf8e552 in expand_gimple_stmt_1
/home/marxin/Programming/gcc/gcc/cfgexpand.c:3673
#10 0xf8ea99 in expand_gimple_stmt
/home/marxin/Programming/gcc/gcc/cfgexpand.c:3734
#11 0xfa3f58 in expand_gimple_basic_block
/home/marxin/Programming/gcc/gcc/cfgexpand.c:5770
#12 0xfa88da in execute /home/marxin/Programming/gcc/gcc/cfgexpand.c:6373
#13 0x1d1578c in execute_one_pass(opt_pass*)
/home/marxin/Programming/gcc/gcc/passes.c:2446
#14 0x1d1611d in execute_pass_list_1
/home/marxin/Programming/gcc/gcc/passes.c:2535
#15 0x1d16271 in execute_pass_list(function*, opt_pass*)
/home/marxin/Programming/gcc/gcc/passes.c:2546
#16 0x10a13e2 in cgraph_node::expand()
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2121
#17 0x10a3a15 in output_in_order
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2365
#18 0x10a5433 in symbol_table::compile()
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2609
#19 0x10a5ea6 in symbol_table::finalize_compilation_unit()
/home/marxin/Programming/gcc/gcc/cgraphunit.c:2788
#20 0x20dd5b5 in compile_file /home/marxin/Programming/gcc/gcc/toplev.c:480
#21 0x20e4820 in do_compile /home/marxin/Programming/gcc/gcc/toplev.c:2170
#22 0x20e4e4f in toplev::main(int, char**)
/home/marxin/Programming/gcc/gcc/toplev.c:2305
#23 0x3aec680 in main /home/marxin/Programming/gcc/gcc/main.c:39
#24 0x75ea1fea in __libc_start_main ../csu/libc-start.c:308
#25 0x812bc9 in _start (/dev/shm/objdir2/gcc/f951+0x812bc9)

during RTL pass: expand
/home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/real_do_1.f90:13:0:

13 |   do x = 1.0, 2.05, 0.1
   | 
internal compiler error: Segmentation fault
0x20dc92f crash_signal
/home/marxin/Programming/gcc/gcc/toplev.c:325
0x75eb710f ???
   
/usr/src/debug/glibc-2.27-6.1.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0x15140fd aggregate_value_p(tree_node const*, tree_node const*)
/home/marxin/Programming/gcc/gcc/function.c:2046
0xf3d2df emit_library_call_value_1(int, rtx_def*, rtx_def*, libcall_type,
machine_mode, int, std::pair*)
/home/marxin/Programming/gcc/gcc/calls.c:4745
0x136c556 emit_library_call_value(rtx_def*, rtx_def*, libcall_type,
machine_mode, rtx_def*, machine_mode)
/home/marxin/Programming/gcc/gcc/rtl.h:4185
0x13b3a79 convert_mode_scalar
/home/marxin/Programming/gcc/gcc/expr.c:329
0x13b2da3 convert_move(rtx_def*, rtx_def*, int)
/home/marxin/Programming/gcc/gcc/expr.c:271
0x13ba344 convert_modes(machine_mode, machine_mode, rtx_def*, int)
/home/marxin/Programming/gcc/gcc/expr.c:712
0x13b86da convert_to_mode(machine_mode, rtx_def*, int)
/home/marxin/Programming/gcc/gcc/expr.c:637
0x1c27737 expand_fix(rtx_

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-08-29 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

--- Comment #3 from Segher Boessenkool  ---
... Nope, works fine with trunk as well.  You must be doing something you're
not telling us?

[Bug target/87139] 6.4 x86_64 incorrect code generation with -O3 around _addcarry_u64

2018-08-29 Thread cbcode at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87139

--- Comment #3 from cbcode at gmail dot com ---
-fno-strict-aliasing makes no difference.

[Bug target/87139] 6.4 x86_64 incorrect code generation with -O3 around _addcarry_u64

2018-08-29 Thread cbcode at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87139

cbcode at gmail dot com changed:

   What|Removed |Added

 CC||cbcode at gmail dot com

--- Comment #2 from cbcode at gmail dot com ---
Created attachment 44621
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44621&action=edit
test reproducing the problem

[Bug debug/86593] [8/9 Regression] internal compiler error: in based_loc_descr, at dwarf2out.c:14272

2018-08-29 Thread manisandro at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86593

--- Comment #9 from Sandro Mani  ---
Thanks

--- Comment #10 from Sandro Mani  ---
Thanks

[Bug debug/86593] [8/9 Regression] internal compiler error: in based_loc_descr, at dwarf2out.c:14272

2018-08-29 Thread manisandro at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86593

--- Comment #9 from Sandro Mani  ---
Thanks

--- Comment #10 from Sandro Mani  ---
Thanks

[Bug other/86726] Undocumented option -f{,no}-tree-scev-cprop

2018-08-29 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86726

Alexander Monakov  changed:

   What|Removed |Added

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

--- Comment #2 from Alexander Monakov  ---
Fixed, thanks.

[Bug debug/86593] [8/9 Regression] internal compiler error: in based_loc_descr, at dwarf2out.c:14272

2018-08-29 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86593

H.J. Lu  changed:

   What|Removed |Added

   Keywords||patch
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-08-29
 Ever confirmed|0   |1

--- Comment #8 from H.J. Lu  ---
A patch was posted at

https://gcc.gnu.org/ml/gcc-patches/2018-08/msg00559.html

[Bug c++/87137] [8/9 Regression] Non-virtual member function increases struct size

2018-08-29 Thread nathan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137

Nathan Sidwell  changed:

   What|Removed |Added

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

[Bug other/86726] Undocumented option -f{,no}-tree-scev-cprop

2018-08-29 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86726

--- Comment #1 from Alexander Monakov  ---
Author: amonakov
Date: Wed Aug 29 12:39:12 2018
New Revision: 263955

URL: https://gcc.gnu.org/viewcvs?rev=263955&root=gcc&view=rev
Log:
doc: document -ftree-scev-cprop

PR other/86726
* invoke.texi (Optimization Options): List -ftree-scev-cprop.
(-O): Ditto.
(-ftree-scev-cprop): Document.

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

[Bug c++/57170] Diagnostic for a negative case when switching over unsigned comes from -Wsign-conversion instead of -Wpedantic or -Wnarrowing

2018-08-29 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57170

--- Comment #6 from Jonathan Wakely  ---
It should be an error, not a warning. For other narrowing conversions involving
constants we do actually use -Wnarrowing (but still defaulting to an error) so
I guess my last comment was wrong.

Or it could just be an unconditional error. Or a permerror, so -fpermissive
would allow it.

The code that handles this is in gcc/c-family/c-common.c so isn't C++-specific.
I'm not sure if that code has enough context to know if the conversion happens
in a constant expression where narrowing conversions are disallowed.


#0  unsafe_conversion_p (loc=, loc@entry=267203,
type=type@entry=0x7013c690, expr=expr@entry=0x701401f8,
result=result@entry=0x70140048, produce_warns=produce_warns@entry=true) at
/home/jwakely/src/gcc/gcc/gcc/c-family/c-common.c:1261
#1  0x008cdb27 in conversion_warning (loc=267203,
type=type@entry=0x7013c690, expr=expr@entry=0x701401f8,
result=result@entry=0x70140048) at
/home/jwakely/src/gcc/gcc/gcc/c-family/c-warn.c:1127
#2  0x008d11d1 in warnings_for_convert_and_check (loc=,
loc@entry=267203, type=type@entry=0x7013c690,
expr=expr@entry=0x701401f8, result=result@entry=0x70140048) at
/home/jwakely/src/gcc/gcc/gcc/c-family/c-warn.c:1278
#3  0x0085df41 in convert_and_check (loc=loc@entry=267203,
type=type@entry=0x7013c690, expr=0x701401f8) at
/home/jwakely/src/gcc/gcc/gcc/c-family/c-common.c:1548
#4  0x00886a55 in c_add_case_label (loc=loc@entry=267203,
cases=0x24ad5e0, cond=cond@entry=0x77ff6cf0,
orig_type=orig_type@entry=0x7013c690, low_value=,
low_value@entry=0x701401f8, high_value=,
high_value@entry=0x0, outside_range_p=0x24abff0)
at /home/jwakely/src/gcc/gcc/gcc/c-family/c-common.c:4780
#5  0x0066b1fa in finish_case_label (loc=267203, low_value=, low_value@entry=0x701401f8, high_value=) at
/home/jwakely/src/gcc/gcc/gcc/cp/decl.c:3669
#6  0x007309e9 in cp_parser_label_for_labeled_statement
(parser=parser@entry=0x77ff6ab0, attributes=attributes@entry=0x0) at
/home/jwakely/src/gcc/gcc/gcc/cp/parser.c:11072

[Bug c++/87122] [8/9 Regression] ICE in tsubst_decomp_names

2018-08-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87122

--- Comment #3 from Jakub Jelinek  ---
Author: jakub
Date: Wed Aug 29 12:32:13 2018
New Revision: 263954

URL: https://gcc.gnu.org/viewcvs?rev=263954&root=gcc&view=rev
Log:
PR c++/87122
* pt.c (tsubst_expr) : If
processing_template_decl and decl is structured binding decl, call
cp_finish_decomp.

* g++.dg/cpp1z/decomp47.C: New test.

Added:
branches/gcc-8-branch/gcc/testsuite/g++.dg/cpp1z/decomp47.C
Modified:
branches/gcc-8-branch/gcc/cp/ChangeLog
branches/gcc-8-branch/gcc/cp/pt.c
branches/gcc-8-branch/gcc/testsuite/ChangeLog

[Bug c++/87122] [8/9 Regression] ICE in tsubst_decomp_names

2018-08-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87122

--- Comment #2 from Jakub Jelinek  ---
Author: jakub
Date: Wed Aug 29 12:27:55 2018
New Revision: 263953

URL: https://gcc.gnu.org/viewcvs?rev=263953&root=gcc&view=rev
Log:
PR c++/87122
* pt.c (tsubst_expr) : If
processing_template_decl and decl is structured binding decl, call
cp_finish_decomp.

* g++.dg/cpp1z/decomp47.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/cpp1z/decomp47.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog

[Bug tree-optimization/87117] [9 Regression] ICE in eliminate_dom_walker::eliminate_cleanup(bool) at gcc/gcc/tree-ssa-sccvn.c:5431 since r263875

2018-08-29 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87117

--- Comment #15 from rguenther at suse dot de  ---
On Wed, 29 Aug 2018, dcb314 at hotmail dot com wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87117
> 
> --- Comment #14 from David Binderman  ---
> (In reply to Richard Biener from comment #10)
> > Didn't check ubsan bootstrap.
> 
> I did. It seems to work at the -O2 level.
> 
> -O3 level hasn't worked for months, but that's an old problem.
> ints and longs not wide enough types.
> 
> Using a non-gcc compiler, for example clang, at the start
> seems to break the ubsan bootstrap. 
> 
> Would it be worth me sending in another bug report or just posting
> it here ?

Please in another bug, not here.

[Bug tree-optimization/87117] [9 Regression] ICE in eliminate_dom_walker::eliminate_cleanup(bool) at gcc/gcc/tree-ssa-sccvn.c:5431 since r263875

2018-08-29 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87117

--- Comment #14 from David Binderman  ---
(In reply to Richard Biener from comment #10)
> Didn't check ubsan bootstrap.

I did. It seems to work at the -O2 level.

-O3 level hasn't worked for months, but that's an old problem.
ints and longs not wide enough types.

Using a non-gcc compiler, for example clang, at the start
seems to break the ubsan bootstrap. 

Would it be worth me sending in another bug report or just posting
it here ?

[Bug c++/87137] [8/9 Regression] Non-virtual member function increases struct size

2018-08-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137

Richard Biener  changed:

   What|Removed |Added

   Keywords||ABI, wrong-code
   Target Milestone|--- |8.3

[Bug c++/45113] absent or confusing diagnostics of invalid template argument list in implicit template class instantiation

2018-08-29 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45113

Jonathan Wakely  changed:

   What|Removed |Added

   Last reconfirmed|2017-08-17 00:00:00 |2018-8-29

--- Comment #3 from Jonathan Wakely  ---
The first example was fixed for GCC 4.8.0

The second started saying "template argument 1 is invalid" in GCC 4.8.0 and
stopped also saying "invalid type in declaration" for GCC 5.1.0

The caret locations for "template argument 1" are poor though, they point to
the end of the template argument list.


For the second and third ones Clang gives a nicer diagnostic:

45113.cc:2:15: error: type-id cannot have a name
typedef U A;
  ^
45113.cc:2:21: error: type-id cannot have a name
typedef U A;
^
2 errors generated.


That's accurate and helpful. We could even add a fix-it to remove those names.

[Bug middle-end/86995] [9 regression] c-c++-common/torture/builtin-arith-overflow-17.c etc. FAIL

2018-08-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86995

--- Comment #5 from Jakub Jelinek  ---
Like:
--- gcc/expmed.c.jj 2018-08-26 22:42:22.526779583 +0200
+++ gcc/expmed.c2018-08-29 14:04:32.669509929 +0200
@@ -6239,7 +6239,9 @@ canonicalize_comparison (machine_mode mo
  wrapping around in the case of unsigned values.  If any occur
  cancel the optimization.  */
   wi::overflow_type overflow = wi::OVF_NONE;
-  wide_int imm_modif = wi::add (imm_val, to_add, sgn, &overflow);
+  wide_int imm_modif
+= (to_add > 0 ? wi::add (imm_val, 1, sgn, &overflow)
+ : wi::sub (imm_val, 1, sgn, &overflow));
   if (overflow)
 return;

If so, please submit it as soon as possible, leaving such important wrong-code
bug for so long is highly undesirable.

[Bug rtl-optimization/87138] [8/9 Regression] wrong code with TI multiplication with -O -march=k8 -fno-tree-fre -mavx512bw

2018-08-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87138

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2
   Target Milestone|--- |8.3

[Bug target/87139] 6.4 x86_64 incorrect code generation with -O3 around _addcarry_u64

2018-08-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87139

Richard Biener  changed:

   What|Removed |Added

 Target||x86_64-*-*, i?86-*-*
  Component|c   |target

--- Comment #1 from Richard Biener  ---
Can you attach the testcases?  cut&pasting has whitespace issues.

It may be an aliasing issue so try -fno-strict-aliasing.

[Bug c++/87137] [8/9 Regression] Non-virtual member function increases struct size

2018-08-29 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-08-29
  Known to work||7.3.0
Summary|[8 Regression] Non-virtual  |[8/9 Regression]
   |member function increases   |Non-virtual member function
   |struct size |increases struct size
 Ever confirmed|0   |1
  Known to fail||9.0

--- Comment #4 from Jonathan Wakely  ---
That's r250413

Confirmed

[Bug middle-end/86995] [9 regression] c-c++-common/torture/builtin-arith-overflow-17.c etc. FAIL

2018-08-29 Thread vlad.lazar at arm dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86995

--- Comment #4 from Vlad Lazar  ---
That's right. It's not the right fix. The actual cause is the use of wi::add in
r263591, which does not set the flag in case of underflow. The correct way is
to use wi::add for addition and wi::sub for substraction. I'm testing a patch
which does that.

[Bug c/87139] New: 6.4 x86_64 incorrect code generation with -O3 around _addcarry_u64

2018-08-29 Thread cbcode at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87139

Bug ID: 87139
   Summary: 6.4 x86_64 incorrect code generation with -O3 around
_addcarry_u64
   Product: gcc
   Version: 6.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: cbcode at gmail dot com
  Target Milestone: ---

x86_64 gcc-6 (tested with 6.4.0 and 6.3.0 under linux and 6.4.0 under
windows/mingw) generates incorrect code when optimizing with -O3 in certain
situations around _addcarry_u64. gcc-6 with -O2 is fine. gcc-5, gcc-7 and gcc-8
with -O3 are all fine. It is difficult to pinpoint the exact problem but the
following should narrow it down enough to be helpful.

#include 
#include 
#include 
#include 
#include 

using std::size_t;
using std::uint64_t;
static_assert(sizeof(size_t) == sizeof(uint64_t), "");

//big-integer multiplication, limb-size is size_t is uint64_t
template
std::array big_mul(std::array const& aa,
std::array const& bb) noexcept {
static constexpr size_t const Nc = Na + Nb;
std::array cc = {{0,}};
for (size_t na = 0; na != Na; ++na) {
for (size_t nb = 0; nb != Nb; ++nb) {
alignas(__uint128_t) size_t lohi[2];
reinterpret_cast<__uint128_t&>(lohi) = __uint128_t(aa[na]) *
__uint128_t(bb[nb]); //Note: placement-new instead of reinterpret_cast makes no
difference
size_t n = na + nb;
unsigned char c = __builtin_add_overflow(cc[n], lohi[0], &cc[n]);
#if 1 //Note: x86_64-gcc-6 -O3 generates bad code; gcc-6 -O2 is fine; gcc-5 and
gcc-7 and above are fine
c = _addcarry_u64(c, cc[n + 1], lohi[1], &reinterpret_cast(cc[n + 1]));
for (n += 2; n <= Nc - 1; ++n) c = __builtin_add_overflow(cc[n], c,
&cc[n]);
#elif 1 //Note: added 'c &&' in for-loop condition: problem goes away
c = _addcarry_u64(c, cc[n + 1], lohi[1], &reinterpret_cast(cc[n + 1]));
for (n += 2; c && n <= Nc - 1; ++n) c =
__builtin_add_overflow(cc[n], c, &cc[n]);
#else //Note: inserted '++n' between add_overflow and add_carry: problem goes
away
++n;
c = _addcarry_u64(c, cc[n], lohi[1], &reinterpret_cast(cc[n]));
for (++n; c && n <= Nc - 1; ++n) c = __builtin_add_overflow(cc[n],
c, &cc[n]);
#endif
}
}
return cc;
}
//simple random-number-generator,
https://github.com/svaarala/duktape/blob/master/misc/splitmix64.c
static uint64_t rnd_state = 1;
static inline uint64_t rnd() {
uint64_t z = rnd_state += 0x9e3779b97f4a7c15;
z = (z ^ (z >> 30)) * 0xbf58476d1ce4e5b9;
z = (z ^ (z >> 27)) * 0x94d049bb133111eb;
return z ^ (z >> 31);
}
//main() writes python3-script; pipe into python3; no output means no error
//g++-6 -std=c++11 -O3 -o test test.cpp && ./test 100 | python3 #bad
//g++-6 -std=c++11 -O2 -o test test.cpp && ./test 100 | python3 #Ok
//g++-5 -std=c++11 -O3 -o test test.cpp && ./test 100 | python3 #Ok
//g++-7 -std=c++11 -O3 -o test test.cpp && ./test 100 | python3 #Ok
//g++-8 -std=c++11 -O3 -o test test.cpp && ./test 100 | python3 #Ok
int main(int argc, char const** argv) { assert(argc == 2);
size_t const M = size_t(std::strtoull(argv[1], nullptr, 0));
static constexpr size_t const Na = 2, Nb = 2; //Note: any combination of
Na>=2, Nb>=2 causes the problem
std::array aa;
std::array bb;
std::array cc;
for (size_t m = 0; m != M; ++m) {
for (size_t& a: aa) a = rnd();
for (size_t& b: bb) b = rnd();
cc = big_mul(aa, bb);
std::printf(  "a=0x");for (size_t n = Na;n--;)
std::printf("%016zx", aa[n]);
std::printf("; b=0x");for (size_t n = Nb;n--;)
std::printf("%016zx", bb[n]);
std::printf("; c=0x");for (size_t n = Na+Nb; n--;)
std::printf("%016zx", cc[n]);
std::printf("\nif a*b!=c: print(hex(a),'*',
hex(b),'\\n=',hex(a*b),'\\n?',hex(c))\n");
}
return 0;
}

[Bug c++/87137] [8 Regression] Non-virtual member function increases struct size

2018-08-29 Thread manisandro at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137

--- Comment #3 from Sandro Mani  ---
See
https://github.com/gcc-mirror/gcc/commit/ab87ee8f509c0b600102195704105d4d98ec59d9

[Bug c++/87137] [8 Regression] Non-virtual member function increases struct size

2018-08-29 Thread nathan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137

Nathan Sidwell  changed:

   What|Removed |Added

 CC||nathan at gcc dot gnu.org

--- Comment #2 from Nathan Sidwell  ---
What changelog does that has refer to? (I don;t use the git repo)

[Bug middle-end/86995] [9 regression] c-c++-common/torture/builtin-arith-overflow-17.c etc. FAIL

2018-08-29 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86995

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek  ---
How could a cost adjustment be a right fix to a wrong-code bug?  That seems
just to make it latent.

[Bug middle-end/86540] [9 Regression] pr77445-2.c and ssa-dom-thread-7.c regressions since May 20, 2018

2018-08-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86540

Martin Liška  changed:

   What|Removed |Added

   Assignee|marxin at gcc dot gnu.org  |law at gcc dot gnu.org

--- Comment #2 from Martin Liška  ---
Ok, so after I installed quite some switch related patches these still remain:

1) pr77445-2.c:

grep 'not considered' pr77*
pr77445-2.c.175t.thread3:FSM jump-thread path not considered: the number of
basic blocks on the path exceeds PARAM_MAX_FSM_THREAD_LENGTH.
pr77445-2.c.175t.thread3:FSM jump-thread path not considered: the number of
basic blocks on the path exceeds PARAM_MAX_FSM_THREAD_LENGTH.
pr77445-2.c.175t.thread3:FSM jump-thread path not considered: the number of
basic blocks on the path exceeds PARAM_MAX_FSM_THREAD_LENGTH.
pr77445-2.c.178t.thread4:FSM jump-thread path not considered: the number of
basic blocks on the path exceeds PARAM_MAX_FSM_THREAD_LENGTH.
pr77445-2.c.178t.thread4:FSM jump-thread path not considered: the number of
basic blocks on the path exceeds PARAM_MAX_FSM_THREAD_LENGTH.
pr77445-2.c.178t.thread4:FSM jump-thread path not considered: the number of
basic blocks on the path exceeds PARAM_MAX_FSM_THREAD_LENGTH.

2) ssa-dom-thread-7.c

FAIL: gcc.dg/tree-ssa/ssa-dom-thread-7.c scan-tree-dump-not vrp2 "Jumps
threaded"

Jeff can you please investigate that and eventually adjust test-case if
possible?

[Bug rtl-optimization/87138] New: [8/9 Regression] wrong code with TI multiplication with -O -march=k8 -fno-tree-fre -mavx512bw

2018-08-29 Thread zsojka at seznam dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87138

Bug ID: 87138
   Summary: [8/9 Regression] wrong code with TI multiplication
with -O -march=k8 -fno-tree-fre -mavx512bw
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: rtl-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: zsojka at seznam dot cz
  Target Milestone: ---
  Host: x86_64-pc-linux-gnu
Target: x86_64-pc-linux-gnu

Created attachment 44620
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44620&action=edit
reduced testcase

Output:
$ x86_64-pc-linux-gnu-gcc -O -march=k8 -fno-tree-fre -mavx512bw testcase.c
$ sde64 -- ./a.out
Aborted

The difference between broken a good assembler is:

movabs  rax, 9223372036854775805# tmp167,
-   mov rdx, -2 #,
+   mov rdx, 1  #,
mov QWORD PTR [rsp], rax# %sfpD.2961, tmp167
mov QWORD PTR [rsp+8], rdx  # %sfpD.2961,

For some reason, 3 * 0x7FFF is computed as
0xfffe7ffd instead of 0x17ffd.

The wrong value first appears in the .cse1 dump.

$ x86_64-pc-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=/repo/gcc-trunk/binary-latest-amd64/bin/x86_64-pc-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-263946-checking-yes-rtl-df-extra-amd64/bin/../libexec/gcc/x86_64-pc-linux-gnu/9.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++
--enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra
--with-cloog --with-ppl --with-isl --build=x86_64-pc-linux-gnu
--host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu
--with-ld=/usr/bin/x86_64-pc-linux-gnu-ld
--with-as=/usr/bin/x86_64-pc-linux-gnu-as --disable-libstdcxx-pch
--prefix=/repo/gcc-trunk//binary-trunk-263946-checking-yes-rtl-df-extra-amd64
Thread model: posix
gcc version 9.0.0 20180829 (experimental) (GCC)

[Bug bootstrap/87130] [9 Regression] LTO bootstrap failed with profiledbootstrap

2018-08-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87130

Martin Liška  changed:

   What|Removed |Added

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

--- Comment #4 from Martin Liška  ---
Fixed.

[Bug debug/86593] [8/9 Regression] internal compiler error: in based_loc_descr, at dwarf2out.c:14272

2018-08-29 Thread manisandro at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86593

--- Comment #7 from Sandro Mani  ---
Any chance of getting the fix committed?

[Bug c++/87137] [8 Regression] Non-virtual member function increases struct size

2018-08-29 Thread manisandro at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137

Sandro Mani  changed:

   What|Removed |Added

 Target||i686-w64-mingw32,
   ||x86_64-w64-mingw32
 CC||nathan at acm dot org

--- Comment #1 from Sandro Mani  ---
CC nat...@acm.org as author of ab87ee8f509c0b600102195704105d4d98ec59d9

[Bug c++/87137] New: [8 Regression] Non-virtual member function increases struct size

2018-08-29 Thread manisandro at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137

Bug ID: 87137
   Summary: [8 Regression] Non-virtual member function increases
struct size
   Product: gcc
   Version: 8.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: manisandro at gmail dot com
  Target Milestone: ---

With gcc-8.0.0 onwards, specifically commit
ab87ee8f509c0b600102195704105d4d98ec59d9, the following test case fails to
compile using either i686-w64-mingw32-g++ or x86_64-w64-mingw32-g++ (but
compiles normally using the native x86_64-linux-g++):

--- test.cpp ---

template 
void check_size() {
  static_assert(ExpectedSize == RealSize, "Size is off!");
}

struct Foo {
unsigned u1 : 5;
unsigned u2 : 5;
unsigned u3 : 3;
unsigned u4 : 3;
unsigned u5 : 4;
unsigned u6 : 2;
unsigned u7 : 3;
unsigned u8 : 2;
unsigned u9 : 1;

unsigned u10 : 3;
// 31 bits
unsigned u11 : 2;
unsigned u12 : 2;
unsigned u13 : 2;

unsigned u14 : 6;
unsigned u15 : 7;
unsigned u16 : 1;
unsigned u17 : 1;
unsigned u18 : 1;
unsigned u19 : 1;
unsigned u20 : 1;

bool bar() const { return false; }
private:
unsigned u21 : 1;
unsigned u22 : 1;
unsigned u23 : 1;
unsigned u24 : 1;
// 59 bits
};

int main(int argc, char* argv[]) {
check_size();
return 0;
}

-

$ x86_64-w64-mingw32-g++ test.cpp -o test.exe
test.cpp: In instantiation of 'void check_size() [with ToCheck = Foo; unsigned
int ExpectedSize = 8; unsigned int RealSize = 12]':
test.cpp:41:24:   required from here
test.cpp:3:30: error: static assertion failed: Size is off!
   static_assert(ExpectedSize == RealSize, "Size is off!");


Notice the presence of the bar member function. Without the member function,
sizeof(Foo) = 8 as expected, but with the member function, sizeof(Foo) = 12.

[Bug bootstrap/87130] [9 Regression] LTO bootstrap failed with profiledbootstrap

2018-08-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87130

--- Comment #3 from Martin Liška  ---
Author: marxin
Date: Wed Aug 29 10:48:50 2018
New Revision: 263950

URL: https://gcc.gnu.org/viewcvs?rev=263950&root=gcc&view=rev
Log:
Fix thinko in lto.c (PR bootstrap/87130).

2018-08-29  Martin Liska  

PR bootstrap/87130
* lto.c (read_cgraph_and_symbols): Fix thinko, revert
to behavior before r263887.

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

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-08-29 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

--- Comment #2 from Segher Boessenkool  ---
Actually, doesn't fail on powerpc64le-linux either.  Well let me try some
brand spanking new tree...

[Bug c++/87136] internal compiler error: in emit_move_insn, at expr.c:3722

2018-08-29 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87136

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2018-08-29
 CC||marxin at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #2 from Martin Liška  ---
Please create pre-processed source file (with -E option) and attach it.

[Bug libstdc++/31413] FAIL: 22_locale/time_get/get_date/wchar_t/4.cc execution test

2018-08-29 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=31413

Jonathan Wakely  changed:

   What|Removed |Added

 Resolution|INVALID |FIXED
   Target Milestone|--- |9.0

--- Comment #29 from Jonathan Wakely  ---
I've modified the test to also work with Debian's D_FMT string.

[Bug libstdc++/31413] FAIL: 22_locale/time_get/get_date/wchar_t/4.cc execution test

2018-08-29 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=31413

--- Comment #28 from Jonathan Wakely  ---
Author: redi
Date: Wed Aug 29 10:05:55 2018
New Revision: 263948

URL: https://gcc.gnu.org/viewcvs?rev=263948&root=gcc&view=rev
Log:
PR libstdc++/31413 fix test failure on Debian systems

Debian uses a different D_FMT string for the zh_TW.UTF-8 locale, which
caused this test to fail. Try to detect the Debian format and adjust
the input being tested.

PR libstdc++/31413
* testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Check D_FMT
string for alternative format.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/4.cc

[Bug target/87133] ICE in aggregate_value_p with -frounding-math on ppc64le

2018-08-29 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87133

--- Comment #1 from Segher Boessenkool  ---
Does not fail on powerpc64-linux, even with -mlittle -mabi=elfv2 .

[Bug c++/87136] internal compiler error: in emit_move_insn, at expr.c:3722

2018-08-29 Thread darko.veberic at ijs dot si
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87136

--- Comment #1 from Darko Veberic  ---
Created attachment 44619
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44619&action=edit
the actual cc source file

[Bug c++/87136] New: internal compiler error: in emit_move_insn, at expr.c:3722

2018-08-29 Thread darko.veberic at ijs dot si
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87136

Bug ID: 87136
   Summary: internal compiler error: in emit_move_insn, at
expr.c:3722
   Product: gcc
   Version: 8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: darko.veberic at ijs dot si
  Target Milestone: ---

Created attachment 44618
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44618&action=edit
command-line options to g++ (as invoked from a cmake makefile)

most probably our code is sub par, but the compiler should issue an error
instead of giving up. i am attaching all the relevant files: the command-line
of the g++ invocation, the cc file itself, and the compiler-produced
intermediates.

the same bug is present also in the 7.* versions, i switched my ubuntu
alternatives to gcc/g++ 8 for this reason, but it didn't help.

[Bug bootstrap/87134] [9 regression] SEGV in cc1 caused by r263875

2018-08-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87134

--- Comment #2 from Richard Biener  ---
You also might want to test the patch from PR87132.

[Bug tree-optimization/87132] [9 Regression] Gcc miscompiles at -O2 on valid code

2018-08-29 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87132

--- Comment #2 from Richard Biener  ---
Simplified:

extern void abort (void);
int c, d;
int main()
{
  int e[] = {4, 4, 4, 4, 4, 4, 4, 4, 4};
  d = 8;
  for (; d; d--)
for (int a = 0; a <= 8; a++)
  {
c = e[1];
e[d] = 0;
  }
  if (c != 0)
abort ();
  return 0;
}

this one is going to be interesting to fix.  The issue is that we either
stop iterating too early or we over-eagerly use values from the previous
iteration when walk_non_aliased_vuses skips over e[d] = 0 when looking
for aliasing defs to e[1].  d still has the previous iteration value of 8
because we didn't yet re-visit the load of it when walking defs across
the backedge.

So this is

static void *
vn_reference_lookup_3 (ao_ref *ref, tree vuse, void *vr_,
   bool *disambiguate_only)
{
...
  /* First try to disambiguate after value-replacing in the definitions LHS. 
*/
  if (is_gimple_assign (def_stmt))
{
...
  lhs_ops = valueize_refs_1 (lhs_ops, &valueized_anything, true);

as well as the load from e[1] in the first iteration not needing to
visit e[d] because of the not yet executable backedge and thus the
virtual PHI degenerating to the entry value.

A fix could be somehow tracking memory state changes and iterating once more
or avoiding last-iteration values in valueization (or valueization completely
when performing the walk over backedges).  The latter latter is easiest,
testing that for fallout.

Index: gcc/tree-ssa-alias.c
===
--- gcc/tree-ssa-alias.c(revision 263944)
+++ gcc/tree-ssa-alias.c(working copy)
@@ -2722,7 +2722,14 @@ next:;
   if (arg1 == arg0)
;
   else if (! maybe_skip_until (phi, arg0, ref, arg1, cnt, visited,
-  abort_on_visited, translate, data))
+  abort_on_visited,
+  /* Do not translate when walking over
+ backedges.  */
+  dominated_by_p
+(CDI_DOMINATORS,
+ gimple_bb (SSA_NAME_DEF_STMT (arg1)),
+ phi_bb)
+  ? NULL : translate, data))
return NULL_TREE;
 }

  1   2   >