[Bug target/89222] [7/8/9 regression] ARM thumb-2 misoptimisation of func ptr call with -O2 or -Os

2019-02-08 Thread jifl-bugzilla at jifvik dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89222

--- Comment #6 from Jonathan Larmour  ---
Just to confirm with concrete values from a real program:

myhandler2() is at 0x23a8 (which means the branch target address if the
function is called should be 0x23a9 with LS bit set to indicate Thumb). The
assembler inserts an R_ARM_ABS32 reloc for the symbol myhandler2 with addend of
-1, and the linker sets the value at .L22 to 0x23a7, i.e. what is then
loaded into r5 in the disassembly I provided. 

If I manually edit the asm to use "myhandler2" in place of "myhandler2-1" then
the linker puts in 0x23a9 instead. If I use "myhandler2-2" in place of
"myhandler2-1" then the linker puts in 0x23a7, same as the "myhandler2-1"
case.

So I infer that if the reloc is an offset of a *function* symbol, the behaviour
of the linker is to compute the value and then always set the LS bit in the
result.

This matches the ABI at:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.subset.swdev.abi/index.html
specifically 4.6.1.1 (page 26) where the table indicates that R_ARM_ABS32
should be handled as "(S + A ) | T" where "T is 1 if the target symbol S has
type STT_FUNC and the Symbol addresses a Thumb instruction; it is 0 otherwise."

So it looks to me like the linker is right and GCC is mistaken. Wilco is
exactly right that you shouldn't do arithmetic with function symbols, at least
if there's any chance that the symbol is Thumb.

[Bug target/89261] New: ix86_data_alignment has wrong argument type

2019-02-08 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89261

Bug ID: 89261
   Summary: ix86_data_alignment has wrong argument type
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: hjl.tools at gmail dot com
CC: ubizjak at gmail dot com
  Target Milestone: ---
Target: i386,x86-64

i386.c has

int
ix86_data_alignment (tree type, int align, bool opt)

But "align" passed down is unsigned.

[Bug libstdc++/88066] [7/8 Regression] Relative includes in bits/locale_conv.h should be prefixed

2019-02-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88066

--- Comment #7 from Jonathan Wakely  ---
Author: redi
Date: Sat Feb  9 00:40:31 2019
New Revision: 268714

URL: https://gcc.gnu.org/viewcvs?rev=268714&root=gcc&view=rev
Log:
PR libstdc++/88066 use <> for includes not ""

Using #include "..." to include a header in the same directory fails if
the user compiles with -I-, so always use something like  for
internal headers.

I haven't added tests for this, because dg-options adds options to the
end, and the position of -I- matters (if it's at the end then the tests
won't find any headers in the build tree, as they're specified by -I
options earlier in the flags). It's been manually tested though.

PR libstdc++/88066
* include/bits/locale_conv.h: Use <> for includes not "".
* include/ext/random: Likewise.
* include/ext/vstring.h: Likewise.

Modified:
branches/gcc-8-branch/libstdc++-v3/ChangeLog
branches/gcc-8-branch/libstdc++-v3/include/bits/locale_conv.h
branches/gcc-8-branch/libstdc++-v3/include/ext/random
branches/gcc-8-branch/libstdc++-v3/include/ext/vstring.h

[Bug libstdc++/71044] Optimize std::filesystem implementation

2019-02-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71044

--- Comment #9 from Jonathan Wakely  ---
Author: redi
Date: Sat Feb  9 00:25:39 2019
New Revision: 268713

URL: https://gcc.gnu.org/viewcvs?rev=268713&root=gcc&view=rev
Log:
Add noexcept to filesystem::path query functions

In the standard these member functions are specified in terms of the
potentially-throwing path decompositions functions, but we implement
them without constructing any new paths or doing anything else that can
throw.

PR libstdc++/71044
* include/bits/fs_path.h (path::has_root_name)
(path::has_root_directory, path::has_root_path)
(path::has_relative_path, path::has_parent_path)
(path::has_filename, path::has_stem, path::has_extension)
(path::is_absolute, path::is_relative, path::_M_find_extension): Add
noexcept.
* src/c++17/fs_path.cc (path::has_root_name)
(path::has_root_directory, path::has_root_path)
(path::has_relative_path, path::has_parent_path)
(path::has_filename, path::_M_find_extension): Add noexcept.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/fs_path.h
trunk/libstdc++-v3/src/c++17/fs_path.cc

[Bug libstdc++/85494] implementation of random_device on mingw is useless

2019-02-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85494

Jonathan Wakely  changed:

   What|Removed |Added

   Target Milestone|9.0 |10.0

[Bug driver/69471] "-march=native" unintentionally breaks further -march/-mtune flags

2019-02-08 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69471

H.J. Lu  changed:

   What|Removed |Added

 CC||joseph at codesourcery dot com

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

https://gcc.gnu.org/ml/gcc-patches/2019-02/msg00490.html

[Bug target/88343] [7/8 Regression] R31 is unconditionally saved/restored on powerpc-darwin even when it's not necessary.

2019-02-08 Thread amodra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88343

--- Comment #30 from Alan Modra  ---
Author: amodra
Date: Fri Feb  8 22:20:58 2019
New Revision: 268708

URL: https://gcc.gnu.org/viewcvs?rev=268708&root=gcc&view=rev
Log:
[RS6000] Correct save_reg_p

Fixes lack of r30 save/restore on

// -m32 -fpic -ftls-model=initial-exec
__thread char* p;
char** f1 (void) { return &p; }

and

// -m32 -fpic -msecure-plt
extern int foo (int);
int f1 (int x) { return foo (x); }

These are both caused by save_reg_p returning false when the pic
offset table reg (r30 for ABI_V4) was used, due to the logic not
exactly matching that in rs6000_emit_prologue to set up r30.

I also noticed that save_reg_p isn't following the comment regarding
calls_eh_return (since svn 267049, git 0edf78b1b2a0), and the comment
needs tweaking too.  For why the revised comment is correct, grep for
saves_all_registers in lra.c, and yes, we do want to save the pic
offset table reg for eh_return.

PR target/88343
* config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
case.  Match logic in rs6000_emit_prologue emitting pic_offset_table
setup.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000.c

[Bug c++/89214] [7/8/9 Regression] ICE in digest_init_r, at cp/typeck2.c:1211 with -std=c++17

2019-02-08 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89214

--- Comment #5 from Marek Polacek  ---
But we actually called reshape_init:

 7146   expr = reshape_init (totype, expr, complain);
 7147   expr = get_target_expr_sfinae (digest_init (totype, expr,
complain),
 7148  complain);

expr was {{TARGET_EXPR<...>}}, after the reshape_init {TARGET_EXPR<...>}, but
that still crashes.

[Bug other/89259] liboffloadmic/runtime/offload_omp_host.cpp:692: pointless test ?

2019-02-08 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89259

David Binderman  changed:

   What|Removed |Added

 CC||iverbin at gcc dot gnu.org

--- Comment #1 from David Binderman  ---
svn blame says

238603iverbin // An incorrect size is treated as failure
238603iverbin if (size < 0) {
238603iverbin return 1;
238603iverbin }

[Bug rtl-optimization/87761] [9 regression][MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c -O1 start with r265398

2019-02-08 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87761

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek  ---
Can you please recheck with current trunk, many RA improvements related to
r265398 change went into trunk since then.

[Bug middle-end/88560] [9 Regression] armv8_2-fp16-move-1.c and related regressions after r266385

2019-02-08 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88560

Jakub Jelinek  changed:

   What|Removed |Added

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

--- Comment #14 from Jakub Jelinek  ---
Hopefully fixed.

[Bug inline-asm/87984] [7/8/9 Regression] wrong code for local reg var input to asm

2019-02-08 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87984

--- Comment #27 from rguenther at suse dot de  ---
On February 8, 2019 6:35:29 PM GMT+01:00, "jakub at gcc dot gnu.org"
 wrote:
>https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87984
>
>--- Comment #24 from Jakub Jelinek  ---
>FRE doesn't, as that breaks the #c9 testcase.
>  a = 1;
>  __asm__("add %1, %0" : "=r" o_12 : "r" a, "0" 0);
>  __asm__ __volatile__("xor %%eax, %%eax" :  :  : "eax");
>  i_13 = 1;
>  a = 1;
>  __asm__("add %1, %0" : "=r" o_18 : "r" a, "0" o_12);
>  __asm__ __volatile__("xor %%eax, %%eax" :  :  : "eax");
>  i_19 = 2;
>  a = 1;
>  __asm__("add %1, %0" : "=r" o_24 : "r" a, "0" o_18);
>  __asm__ __volatile__("xor %%eax, %%eax" :  :  : "eax");
>  i_25 = 3;
>to:
>  a = 1;
>  __asm__("add %1, %0" : "=r" o_12 : "r" a, "0" 0);
>  __asm__ __volatile__("xor %%eax, %%eax" :  :  : "eax");
>  __asm__("add %1, %0" : "=r" o_18 : "r" a, "0" o_12);
>  __asm__ __volatile__("xor %%eax, %%eax" :  :  : "eax");
>  __asm__("add %1, %0" : "=r" o_24 : "r" a, "0" o_18);
>  __asm__ __volatile__("xor %%eax, %%eax" :  :  : "eax");
>If SCCVN would never record values for DECL_HARD_REGISTER vars or
>something
>similar, it wouldn't do this.

OK. I guess I misremember and it hurt never elides sets of reg vars. 

Richard.

[Bug tree-optimization/88739] [7/8 Regression] Big-endian union bug

2019-02-08 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88739

--- Comment #56 from Jakub Jelinek  ---
Author: jakub
Date: Fri Feb  8 19:01:37 2019
New Revision: 268706

URL: https://gcc.gnu.org/viewcvs?rev=268706&root=gcc&view=rev
Log:
PR tree-optimization/88739
* gcc.c-torture/execute/pr88739.c: New test.

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

[Bug middle-end/88560] [9 Regression] armv8_2-fp16-move-1.c and related regressions after r266385

2019-02-08 Thread vmakarov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88560

--- Comment #13 from Vladimir Makarov  ---
Author: vmakarov
Date: Fri Feb  8 19:01:10 2019
New Revision: 268705

URL: https://gcc.gnu.org/viewcvs?rev=268705&root=gcc&view=rev
Log:
2019-02-08  Vladimir Makarov  

PR middle-end/88560
* lra-constraints.c (process_alt_operands): Don't increase reject
for memory when offset memory is required.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/lra-constraints.c

[Bug sanitizer/80953] Support libsanitizer on Solaris

2019-02-08 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80953

--- Comment #31 from Eric Botcazou  ---
> I think it is important to find out why there are those differences in line
> numbers.  Is libbacktrace broken on Solaris, or not used at all, something
> different?

The libsanitizer does its private unwinding by means of _Unwind_Backtrace,
which works fine.  But, at the end, it overwrites the first address with the
result of __builtin_return_address, which returns the address of the call
instruction and not the return address on the SPARC (maybe you know why,
Jakub?) so the first frame is off by 8 bytes.  I have a tentative fixlet for
the libsanitizer.

Btw, Rainer, why did you disable fast unwinding on the SPARC?  This puts the
SPARC  port in its own basket (admittedly with MIPS) so that's not very
convenient.

[Bug inline-asm/87984] [7/8/9 Regression] wrong code for local reg var input to asm

2019-02-08 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87984

--- Comment #26 from Jakub Jelinek  ---
(In reply to Alexander Monakov from comment #25)
> (In reply to Jakub Jelinek from comment #22)
> > A function call must be assumed to clobber any call used registers of 
> > course.
> > But calls already do have vops (well, const/pure don't, and I don't think we
> > want to change that).
> 
> Yes, and also plain arithmetic that becomes a libcall doesn't have vops.

That is something GIMPLE can't figure out though.

[Bug inline-asm/87984] [7/8/9 Regression] wrong code for local reg var input to asm

2019-02-08 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87984

--- Comment #25 from Alexander Monakov  ---
(In reply to Jakub Jelinek from comment #22)
> A function call must be assumed to clobber any call used registers of course.
> But calls already do have vops (well, const/pure don't, and I don't think we
> want to change that).

Yes, and also plain arithmetic that becomes a libcall doesn't have vops.

[Bug lto/89260] ICE in read_cgraph_and_symbols, at lto/lto.c:2800 while compiling harfbuzz

2019-02-08 Thread ohaiziejohwahkeezuoz at xff dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89260

--- Comment #1 from ohaiziejohwahkeezuoz at xff dot cz ---
./aarch64-linux-musl-gcc -v

Using built-in specs.
COLLECT_GCC=./aarch64-linux-musl-gcc
COLLECT_LTO_WRAPPER=/workspace/megous.com/apps-c/static-deps/toolchains/aarch64-linux-musl/libexec/gcc/aarch64-linux-musl/8.2.1/lto-wrapper
Target: aarch64-linux-musl
Configured with:
/workspace/megous.com/apps-c/static-deps/toolchains/sources/gcc-8/configure
--target=aarch64-linux-musl
--prefix=/workspace/megous.com/apps-c/static-deps/toolchains/aarch64-linux-musl
--libdir=/workspace/megous.com/apps-c/static-deps/toolchains/aarch64-linux-musl/lib
--enable-languages=c,c++ --disable-werror --disable-nls --disable-multilib
--disable-shared --enable-tls --enable-threads=posix --disable-libmudflap
--disable-libsanitizer --disable-gnu-indirect-function --disable-libmpx
--enable-deterministic-archives --enable-libstdcxx-time
--enable-fully-dynamic-string --enable-cloog-backend=isl --enable-lto
--enable-libgomp --enable-checking=release
Thread model: posix
gcc version 8.2.1 20190208 (GCC) 

Harfbuzz CFLAGS/LDFLAGS:

  -g0 -Os -fomit-frame-pointer -flto

[Bug c/89256] No optimized division by constant for __int128

2019-02-08 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89256

Alexander Monakov  changed:

   What|Removed |Added

 CC||amonakov at gcc dot gnu.org

--- Comment #1 from Alexander Monakov  ---
It's not so easy, as this trick needs a widening multiply or a high-multiply
operation: e.g. in func64, the compiler uses upper 64 bits of the 128-bit
product of two 64-bit operands.

In func128, it would need to obtain 128 upper bits of a 256-bit product, which
no CPU offers as part of instruction set; so it would need to be a libcall for
a TImode high-multiply operation.

[Bug inline-asm/87984] [7/8/9 Regression] wrong code for local reg var input to asm

2019-02-08 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87984

--- Comment #24 from Jakub Jelinek  ---
FRE doesn't, as that breaks the #c9 testcase.
  a = 1;
  __asm__("add %1, %0" : "=r" o_12 : "r" a, "0" 0);
  __asm__ __volatile__("xor %%eax, %%eax" :  :  : "eax");
  i_13 = 1;
  a = 1;
  __asm__("add %1, %0" : "=r" o_18 : "r" a, "0" o_12);
  __asm__ __volatile__("xor %%eax, %%eax" :  :  : "eax");
  i_19 = 2;
  a = 1;
  __asm__("add %1, %0" : "=r" o_24 : "r" a, "0" o_18);
  __asm__ __volatile__("xor %%eax, %%eax" :  :  : "eax");
  i_25 = 3;
to:
  a = 1;
  __asm__("add %1, %0" : "=r" o_12 : "r" a, "0" 0);
  __asm__ __volatile__("xor %%eax, %%eax" :  :  : "eax");
  __asm__("add %1, %0" : "=r" o_18 : "r" a, "0" o_12);
  __asm__ __volatile__("xor %%eax, %%eax" :  :  : "eax");
  __asm__("add %1, %0" : "=r" o_24 : "r" a, "0" o_18);
  __asm__ __volatile__("xor %%eax, %%eax" :  :  : "eax");
If SCCVN would never record values for DECL_HARD_REGISTER vars or something
similar, it wouldn't do this.

[Bug inline-asm/87984] [7/8/9 Regression] wrong code for local reg var input to asm

2019-02-08 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87984

--- Comment #23 from rguenther at suse dot de  ---
On February 8, 2019 6:25:09 PM GMT+01:00, "jakub at gcc dot gnu.org"
 wrote:
>https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87984
>
>--- Comment #22 from Jakub Jelinek  ---
>(In reply to Alexander Monakov from comment #21)
>> (In reply to Jakub Jelinek from comment #18)
>> > We could cache a bool in struct function whether the function has
>any local
>> > hard register vars and just propagate that info during inlining
>etc. and
>> > just add virtual operand if there are any clobbers and any local
>register
>> > vars (or with that condition check them).
>> 
>> This seems to dismiss comment #17. The clobber may be invisible on
>GIMPLE
>> due to function calls or just plain arithmetic that is turned to
>libcalls.
>
>A function call must be assumed to clobber any call used registers of
>course.
>But calls already do have vops (well, const/pure don't, and I don't
>think we
>want to change that).
>Another possibility is to just punt on trying to optimize hard register
>vars in
>gimple optimizers, leave that to RTL only.  So, punt on them in SCCVN,
>PRE,
>FRE, etc.

But we do that already...

[Bug c++/88761] [8/9 Regression] ICE in tsubst_copy, at cp/pt.c:15478 when chaining lambda calls & fold-expressions

2019-02-08 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88761

Jakub Jelinek  changed:

   What|Removed |Added

 CC||hjl.tools at gmail dot com

--- Comment #7 from Jakub Jelinek  ---
*** Bug 88995 has been marked as a duplicate of this bug. ***

[Bug c++/88995] [8/9 Regression] internal compiler error: in lookup_template_class_1, at cp/pt.c:9471

2019-02-08 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88995

Jakub Jelinek  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #7 from Jakub Jelinek  ---
Thanks, indeed, it was, just verified on 8.x branch #c1, #c3, #c4, #c5 testcase
before (ICE) and after.
Do we want the #c3 into the testsuite too, or is it sufficiently similar to
lambda-generic-const6.C that it isn't worth it?

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

[Bug c++/89212] [8/9 Regression] ICE in fold_convert_loc at fold-const.c:2552

2019-02-08 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89212

Marek Polacek  changed:

   What|Removed |Added

   Keywords||patch

--- Comment #6 from Marek Polacek  ---
https://gcc.gnu.org/ml/gcc-patches/2019-02/msg00475.html

[Bug inline-asm/87984] [7/8/9 Regression] wrong code for local reg var input to asm

2019-02-08 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87984

--- Comment #22 from Jakub Jelinek  ---
(In reply to Alexander Monakov from comment #21)
> (In reply to Jakub Jelinek from comment #18)
> > We could cache a bool in struct function whether the function has any local
> > hard register vars and just propagate that info during inlining etc. and
> > just add virtual operand if there are any clobbers and any local register
> > vars (or with that condition check them).
> 
> This seems to dismiss comment #17. The clobber may be invisible on GIMPLE
> due to function calls or just plain arithmetic that is turned to libcalls.

A function call must be assumed to clobber any call used registers of course.
But calls already do have vops (well, const/pure don't, and I don't think we
want to change that).
Another possibility is to just punt on trying to optimize hard register vars in
gimple optimizers, leave that to RTL only.  So, punt on them in SCCVN, PRE,
FRE, etc.

[Bug lto/89260] New: ICE in read_cgraph_and_symbols, at lto/lto.c:2800 while compiling harfbuzz

2019-02-08 Thread ohaiziejohwahkeezuoz at xff dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89260

Bug ID: 89260
   Summary: ICE in read_cgraph_and_symbols, at lto/lto.c:2800
while compiling harfbuzz
   Product: gcc
   Version: 8.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: lto
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ohaiziejohwahkeezuoz at xff dot cz
CC: marxin at gcc dot gnu.org
  Target Milestone: ---
Target: aarch64-linux-musl
 Build: x86_64-linux-unknown

Hello,

I get ICE with gcc 8.2.1 (trunk) rev268702.

gcc was built with:

configure \
--target=$TARGET \
--prefix="$PREFIX" \
--libdir="$PREFIX/lib" \
--enable-languages=$langs \
--disable-werror \
--disable-nls \
--disable-multilib \
--disable-shared \
--enable-tls \
--enable-threads=posix \
--disable-libmudflap \
--disable-libsanitizer \
--disable-gnu-indirect-function \
--disable-libmpx \
--enable-deterministic-archives \
--enable-libstdcxx-time \
--enable-fully-dynamic-string \
--enable-cloog-backend=isl \
--enable-lto \
--enable-libgomp \
--enable-checking=release \

I'm trying to build the upstream harfbuzz 2.3.1 package.

https://www.freedesktop.org/software/harfbuzz/release/

Sorry for not providing preprocessed file, but I'm not sure what to priovide,
given that lto build step fails. Hopefully it will be easily reproducible. Let
me know if I can provide more information.

/bin/sh ../libtool  --tag=CXX   --mode=link aarch64-linux-musl-g++  -fno-rtti
-g0 -Os -fomit-frame-pointer -flto -save-temps -fno-exceptions
-fno-threadsafe-statics -fvisibility-inlines-hidden 
-L/workspace/megous.com/apps-c/static-deps/output/arm64-lto/sys/usr/lib -g0 -Os
-fomit-frame-pointer -flto -save-temps -static -all-static -o
hb-ot-shape-closure hb-ot-shape-closure.o options.o  ../src/libharfbuzz.la -lm
-L/workspace/megous.com/apps-c/static-deps/output/arm64-lto/sys/usr/lib
-lglib-2.0 -pthread
-L/workspace/megous.com/apps-c/static-deps/output/arm64-lto/sys/usr/lib/../lib64
-lffi  -L/workspace/megous.com/apps-c/static-deps/output/arm64-lto/sys/usr/lib
-lfreetype
-L/workspace/megous.com/apps-c/static-deps/output/arm64-lto/sys/usr/lib
-L/workspace/megous.com/apps-c/static-deps/output/arm64-lto/sys/usr/lib -lz
-lpng16 -lz   
libtool: link: aarch64-linux-musl-g++ -fno-rtti -g0 -Os -fomit-frame-pointer
-flto -save-temps -fno-exceptions -fno-threadsafe-statics
-fvisibility-inlines-hidden -g0 -Os -fomit-frame-pointer -flto -save-temps
-static -o hb-subset hb-subset.o options.o -pthread 
-L/workspace/megous.com/apps-c/static-deps/output/arm64-lto/sys/usr/lib
../src/.libs/libharfbuzz.a
-L/workspace/megous.com/apps-c/static-deps/output/arm64-lto/sys/usr/lib/../lib64
-lm ../src/.libs/libharfbuzz-subset.a
/workspace/megous.com/apps-c/static-deps/output/arm64-lto/builds/harfbuzz/src/harfbuzz-2.3.1/src/.libs/libharfbuzz.a
-lglib-2.0 -lffi -lfreetype -lpng16 -lz -pthread
libtool: link: aarch64-linux-musl-g++ -fno-rtti -g0 -Os -fomit-frame-pointer
-flto -save-temps -fno-exceptions -fno-threadsafe-statics
-fvisibility-inlines-hidden -g0 -Os -fomit-frame-pointer -flto -save-temps
-static -o hb-shape hb-shape.o options.o -pthread 
-L/workspace/megous.com/apps-c/static-deps/output/arm64-lto/sys/usr/lib
../src/.libs/libharfbuzz.a
-L/workspace/megous.com/apps-c/static-deps/output/arm64-lto/sys/usr/lib/../lib64
-lm -lglib-2.0 -lffi -lfreetype -lpng16 -lz -pthread
libtool: link: aarch64-linux-musl-g++ -fno-rtti -g0 -Os -fomit-frame-pointer
-flto -save-temps -fno-exceptions -fno-threadsafe-statics
-fvisibility-inlines-hidden -g0 -Os -fomit-frame-pointer -flto -save-temps
-static -o hb-view hb-view.o options.o ansi-print.o helper-cairo.o
helper-cairo-ansi.o view-cairo.o -pthread -pthread -pthread -pthread -pthread 
-L/workspace/megous.com/apps-c/static-deps/output/arm64-lto/sys/usr/lib
../src/.libs/libharfbuzz.a
-L/workspace/megous.com/apps-c/static-deps/output/arm64-lto/sys/usr/lib/../lib64
-lcairo -lgobject-2.0 -lglib-2.0 -lffi -lpixman-1 -lfontconfig -luuid -lxml2
-lm -lfreetype -lpng16 -lz -pthread
libtool: link: aarch64-linux-musl-g++ -fno-rtti -g0 -Os -fomit-frame-pointer
-flto -save-temps -fno-exceptions -fno-threadsafe-statics
-fvisibility-inlines-hidden -g0 -Os -fomit-frame-pointer -flto -save-temps
-static -o hb-ot-shape-closure hb-ot-shape-closure.o options.o -pthread 
-L/workspace/megous.com/apps-c/static-deps/output/arm64-lto/sys/usr/lib
../src/.libs/libharfbuzz.a
-L/workspace/megous.com/apps-c/static-deps/output/arm64-lto/sys/usr/lib/../lib64
-lm -lglib-2.0 -lffi -lfreetype -lpng16 -lz -pthread
lto1: internal co

[Bug inline-asm/87984] [7/8/9 Regression] wrong code for local reg var input to asm

2019-02-08 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87984

--- Comment #21 from Alexander Monakov  ---
(In reply to Jakub Jelinek from comment #18)
> We could cache a bool in struct function whether the function has any local
> hard register vars and just propagate that info during inlining etc. and
> just add virtual operand if there are any clobbers and any local register
> vars (or with that condition check them).

This seems to dismiss comment #17. The clobber may be invisible on GIMPLE due
to function calls or just plain arithmetic that is turned to libcalls.

[Bug target/89222] [7.x regression] ARM thumb-2 misoptimisation of func ptr call with -O2 or -Os

2019-02-08 Thread wilco at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89222

Wilco  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2019-02-08
   Assignee|unassigned at gcc dot gnu.org  |wilco at gcc dot gnu.org
 Ever confirmed|0   |1

[Bug c++/88995] [8/9 Regression] internal compiler error: in lookup_template_class_1, at cp/pt.c:9471

2019-02-08 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88995

Jason Merrill  changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #6 from Jason Merrill  ---
I think this was fixed by my patch for PR 88761.

[Bug libstdc++/89090] vector.tcc uses "if constexpr" in C++11 mode

2019-02-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89090

--- Comment #8 from Jonathan Wakely  ---
That doesn't work. I don't get to control every G++ users' build system.

[Bug other/89259] New: liboffloadmic/runtime/offload_omp_host.cpp:692: pointless test ?

2019-02-08 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89259

Bug ID: 89259
   Summary: liboffloadmic/runtime/offload_omp_host.cpp:692:
pointless test ?
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dcb314 at hotmail dot com
  Target Milestone: ---

liboffloadmic/runtime/offload_omp_host.cpp:692]: (style) Checking if unsigned
expression 'size' is less than zero.

Source code is

// An incorrect size is treated as failure
if (size < 0) {
return 1;
}

but

size_t  size,

[Bug testsuite/89258] [9 Regression] verify_gimple failed in gimple test pr80887 for 16-bit target

2019-02-08 Thread jozef.l at mittosystems dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89258

Jozef Lawrynowicz  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from Jozef Lawrynowicz  ---
(In reply to Jakub Jelinek from comment #1)
> So you just want to guard this test with int32plus.

Thanks, applied. Closing this PR.

[Bug testsuite/89258] [9 Regression] verify_gimple failed in gimple test pr80887 for 16-bit target

2019-02-08 Thread jozefl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89258

--- Comment #2 from jozefl at gcc dot gnu.org ---
Author: jozefl
Date: Fri Feb  8 16:47:28 2019
New Revision: 268704

URL: https://gcc.gnu.org/viewcvs?rev=268704&root=gcc&view=rev
Log:
2019-02-08  Jozef Lawrynowicz  

PR testsuite/89258
* gcc.dg/tree-ssa/pr80887.c: Require int32plus.


Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/tree-ssa/pr80887.c

[Bug testsuite/89258] [9 Regression] verify_gimple failed in gimple test pr80887 for 16-bit target

2019-02-08 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89258

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek  ---
So you just want to guard this test with int32plus.

[Bug libstdc++/89090] vector.tcc uses "if constexpr" in C++11 mode

2019-02-08 Thread csaba_22 at yahoo dot co.uk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89090

--- Comment #7 from Csaba Ráduly  ---
Don't be sad, use -std=c++17 :)

[Bug c++/89151] SFINAE-disabled member hides another

2019-02-08 Thread csaba_22 at yahoo dot co.uk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89151

--- Comment #4 from Csaba Ráduly  ---
As I said, GCC trunk (9) can compile this example.
Did you check with the released 8.2.0 ?

[Bug testsuite/89258] New: [9 Regression] verify_gimple failed in gimple test pr80887 for 16-bit target

2019-02-08 Thread jozef.l at mittosystems dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89258

Bug ID: 89258
   Summary: [9 Regression] verify_gimple failed in gimple test
pr80887 for 16-bit target
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jozef.l at mittosystems dot com
  Target Milestone: ---

Created attachment 45649
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45649&action=edit
pr80887.c

gcc.dg/tree-ssa/pr80887.c ICEs for msp430-elf on trunk.


xgcc gcc/gcc/testsuite/gcc.dg/tree-ssa/pr80887.c -fgimple -msim  -S
gcc/gcc/testsuite/gcc.dg/tree-ssa/pr80887.c: In function 'f':
gcc/gcc/testsuite/gcc.dg/tree-ssa/pr80887.c:6:1: error: type mismatch in binary
expression
6 | f()
  | ^
unsigned int

unsigned int

long unsigned int

u_9 = _4 + 4294967295;
gcc/gcc/testsuite/gcc.dg/tree-ssa/pr80887.c:6:1: error: type mismatch in binary
expression
unsigned int

unsigned int

long unsigned int

t2_12 = _6 + 4294967294;
during GIMPLE pass: omplower
gcc/gcc/testsuite/gcc.dg/tree-ssa/pr80887.c:6:1: internal compiler error:
verify_gimple failed
0xbd430d verify_gimple_in_seq(gimple*)
../../gcc/tree-cfg.c:5094
0xacfd0a execute_function_todo
../../gcc/passes.c:1979
0xad0c02 execute_todo
../../gcc/passes.c:2031


---
The test passes on gcc-8-branch (less strict gimple checking in GCC8?).

int size is 16-bits for msp430, the constants use in this test assume at least
32-bit int.

[Bug inline-asm/87984] [7/8/9 Regression] wrong code for local reg var input to asm

2019-02-08 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87984

--- Comment #20 from Segher Boessenkool  ---
(In reply to Richard Biener from comment #19)
> Not sure if it
> is generally advised/done to use scratch registers by simply clobbering
> them.

It is often done.  Advised...  I cannot think of a good reason to do this
ever though.


Segher

[Bug fortran/89240] Discrepancy in the return kind of MAX and MIN between all literal input parameters and input parameters that are variables

2019-02-08 Thread mark.eggleston at codethink dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89240

MarkEggleston  changed:

   What|Removed |Added

  Attachment #45645|0   |1
is obsolete||

--- Comment #5 from MarkEggleston  ---
Created attachment 45648
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45648&action=edit
Fix return kind for max and min

Also includes changes to intrinsic documentation.

Attachment redone as I forgot to tick the patch box.

[Bug fortran/89240] Discrepancy in the return kind of MAX and MIN between all literal input parameters and input parameters that are variables

2019-02-08 Thread mark.eggleston at codethink dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89240

--- Comment #3 from MarkEggleston  ---
Created attachment 45646
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45646&action=edit
Change log for gcc/fortran for patch

[Bug fortran/89240] Discrepancy in the return kind of MAX and MIN between all literal input parameters and input parameters that are variables

2019-02-08 Thread mark.eggleston at codethink dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89240

--- Comment #4 from MarkEggleston  ---
Created attachment 45647
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45647&action=edit
Change Log for testsuite for patch

[Bug fortran/89240] Discrepancy in the return kind of MAX and MIN between all literal input parameters and input parameters that are variables

2019-02-08 Thread mark.eggleston at codethink dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89240

--- Comment #2 from MarkEggleston  ---
Created attachment 45645
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45645&action=edit
Fix return kind for max and min

Also includes update to the intrinsic documentation.

[Bug tree-optimization/87665] [7 Regression] gcc HEAD (svn: 265340) breaks elements on resize

2019-02-08 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87665

Jakub Jelinek  changed:

   What|Removed |Added

 CC||matt at ookypooky dot com

--- Comment #23 from Jakub Jelinek  ---
*** Bug 89257 has been marked as a duplicate of this bug. ***

[Bug c++/89257] Bad optimisation at -O3 with vector of pairs

2019-02-08 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89257

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||jakub at gcc dot gnu.org
 Resolution|--- |DUPLICATE

--- Comment #2 from Jakub Jelinek  ---
Dup.

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

[Bug target/89222] [7.x regression] ARM thumb-2 misoptimisation of func ptr call with -O2 or -Os

2019-02-08 Thread wilco at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89222

Wilco  changed:

   What|Removed |Added

 CC||wilco at gcc dot gnu.org

--- Comment #5 from Wilco  ---
(In reply to Andrew Pinski from comment #4)
> I think the bug is in the assembler or the linker:
> .L22:
>   .word   myhandler2-1
> 
> 
> 
> Basically what is happening is:
> (__handler != ((__sighandler_t) 2)) && (__handler != ((__sighandler_t)
> SIG_DFL))
> 
> is converted to:
> 
> (((size_t)__handler)-1) <= 1
> 
> And then GCC emits myhandler2-1 in the constant pool which is correct but
> the assembler/linker decides to put 0x23a7 in that location (See the
> .L22 above) and then GCC adds +1 to it to try to make it myhandler2 (again).
> 
> This is why using SIG_DFL of 5 works, it is just by accident because GCC
> decides not to do the transformation or put myhandler2-1 in the constant
> pool.
> 
> Again I think this is an assembler/linker issue of putting the wrong value
> for
> 
> .L22:
>   .word   myhandler2-1

The +1 is added by the assembler since it is a Thumb function. Then the
compiler adds another +1, making it +2. Basically one shouldn't do arithmetic
with function symbols since bit 0 encodes the Arm/Thumb state.

[Bug c++/89257] Bad optimisation at -O3 with vector of pairs

2019-02-08 Thread matt at ookypooky dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89257

--- Comment #1 from Matt A  ---
Apologies, I should have clarified this is on x86_64:

$ g++ -v
Using built-in specs.
COLLECT_GCC=/software/thirdparty/gcc/7.2.0-0.el7_64/bin/g++
COLLECT_LTO_WRAPPER=/software/thirdparty/gcc/7.2.0-0.el7_64/libexec/gcc/x86_64-unknown-linux-gnu/7.2.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/software/thirdparty/gcc/7.2.0-0.el7_64
--with-system-zlib --enable-shared --enable-threads=posix --enable-laguages=all
--with-ppl --with-cloog --build=x86_64-unknown-linux-gnu
Thread model: posix
gcc version 7.2.0 (GCC)

[Bug c++/89257] New: Bad optimisation at -O3 with vector of pairs

2019-02-08 Thread matt at ookypooky dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89257

Bug ID: 89257
   Summary: Bad optimisation at -O3 with vector of pairs
   Product: gcc
   Version: 7.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: matt at ookypooky dot com
  Target Milestone: ---

Code as follows:
--
#include 
#include 

struct Foo
{
Foo () = default;

Foo (Foo &&f)
  : x (f.x)
  , y (f.y)
{
  f.y = 0;
}

int x = 123;
int y = 456;
};

int main ()
{
  std::vector> v;
  for (size_t i = 0; i < 10; ++i)
  {
v.emplace_back ();
  }

  for (const auto &p : v)
  {
printf ("%d\n", p.first.y);
  }
}
--

When compiled with:

g++ -std=c++17 -O3 anyway.cpp 

Prints:

--
0
0
0
0
0
0
0
0
456
456
--

I expect every line to print 456. 

Works correctly at -O2, and at -std=c++14, and works with std::tuple in place
of std::pair. Also works on gcc-6.3.0.

I'm afraid I don't have newer compiler versions to test against (and Compiler
Explorer output is hard to interpret without getting rid of std::vector).

[Bug middle-end/89246] LTO produces references to cloned symbols which the compiler failed to clone

2019-02-08 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89246

Jakub Jelinek  changed:

   What|Removed |Added

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

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

Untested fix.

[Bug target/89251] [2018-q4m] Wrong datatype optimization on bitfield

2019-02-08 Thread david.koch at libertysurf dot fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89251

--- Comment #5 from Kochise  ---
"The pointer I access is volatile, not the uint32_t behind"

Understand this :

((volatile MyRegDef*) ADDR)->enable; <- TYPO in the original message I couldn't
edit

Not this :

typedef union MyRegDef
{ struct
{ volatile uint32_t enable:1; <- this is stupid and should be
killed with fire
}
volatile uint32_t   raw;
};

This should be avoided :

typedef union MyRegDef
{ struct
{ uint32_t  enable:1;
  uint32_t  _1:31; <- forcing this or using volatile should even be
considered
}
uint32_traw;
};

Please understand that the same structure could/should be used to access either
memory or registers. Imagine if network ip header structures were "optimized",
that would be such a mess.

I'm not even talking about ((packed)) attributes, that's another story, but
since those bitfield should be treated fairly regardless of their location, the
compiler shouldn't "optimize" them.

And no, definitively no, "compiler flags" shouldn't have to flower to thwart
those "optimizations", see how much GCC already pushed the envelope :
https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html

If every time you get to disagree with the "standard" you create a new "gcc
extension" or new "compiler flags", then we're parting from the "standard" and
thus this shouldn't be named C anymore.

That the "standard" never really ruled about bitfield order is already baffling
and common sense (ie. current implementation) telling to start from bit 0 and
upward is a good thing.

But this bitfield datatype size "optimization" or this 'volatile' "trick" is
just mind blowing. I see nothing "elegant" to circumvent the problem. Perhaps
if I wanted the datatype to adapt, I would have used 'auto' instead of
'uint32_t'.

[Bug c++/88752] [8 Regression] ICE in enclosing_instantiation_of, at cp/pt.c:13328

2019-02-08 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88752

--- Comment #8 from Marek Polacek  ---
Note this fix caused 89241, so it probably crashes with gcc-8 too.

[Bug middle-end/89246] LTO produces references to cloned symbols which the compiler failed to clone

2019-02-08 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89246

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-02-08
  Component|ipa |middle-end
 Ever confirmed|0   |1

[Bug c++/88752] [8 Regression] ICE in enclosing_instantiation_of, at cp/pt.c:13328

2019-02-08 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88752

--- Comment #7 from Jason Merrill  ---
Author: jason
Date: Fri Feb  8 14:49:58 2019
New Revision: 268701

URL: https://gcc.gnu.org/viewcvs?rev=268701&root=gcc&view=rev
Log:
PR c++/88752 - ICE with lambda and constexpr if.

* cp-tree.h (LAMBDA_EXPR_INSTANTIATED): New.
* pt.c (tsubst_lambda_expr): Set it.
(instantiated_lambda_fn_p): Check it.
(enclosing_instantiation_of): Use it.

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

[Bug c++/88761] [8/9 Regression] ICE in tsubst_copy, at cp/pt.c:15478 when chaining lambda calls & fold-expressions

2019-02-08 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88761

--- Comment #6 from Jason Merrill  ---
Author: jason
Date: Fri Feb  8 14:50:03 2019
New Revision: 268702

URL: https://gcc.gnu.org/viewcvs?rev=268702&root=gcc&view=rev
Log:
PR c++/88761 - ICE with reference capture of constant.

Here, we capture nf, then the use of the proxy decays to a constant during
semantic processing of +nf.  Since we saw some decay from proxy to constant,
we walk through the lambda body to see which proxies are still used, but we
weren't walking into subtrees of DECL_EXPR at all, so we missed the use of
&nf in the initializer of y, and removed the capture.  But then at
instantiation time we try to use nf, don't have a proxy anymore, and ICE.

* lambda.c (mark_const_cap_r): Do walk subtrees of DECL_EXPR for
non-proxy decls.

Added:
branches/gcc-8-branch/gcc/testsuite/g++.dg/cpp1y/lambda-generic-const6.C
Modified:
branches/gcc-8-branch/gcc/cp/ChangeLog
branches/gcc-8-branch/gcc/cp/lambda.c

[Bug c++/86943] [7/8 Regression] Wrong code when converting stateless generic lambda to function pointer

2019-02-08 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86943

--- Comment #14 from Jason Merrill  ---
Author: jason
Date: Fri Feb  8 14:49:43 2019
New Revision: 268700

URL: https://gcc.gnu.org/viewcvs?rev=268700&root=gcc&view=rev
Log:
PR c++/86943 - wrong code converting generic lambda to pointer.

* pt.c (tsubst_copy_and_build): Don't propagate CALL_FROM_THUNK_P.

Added:
branches/gcc-8-branch/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv13.C
Modified:
branches/gcc-8-branch/gcc/cp/ChangeLog
branches/gcc-8-branch/gcc/cp/pt.c

[Bug c/89256] New: No optimized division by constant for __int128

2019-02-08 Thread joerg.rich...@pdv-fs.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89256

Bug ID: 89256
   Summary: No optimized division by constant for __int128
   Product: gcc
   Version: 8.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: joerg.rich...@pdv-fs.de
  Target Milestone: ---

Division by constant is not optimized for __int128 dividend.

// This function will use shift+multiply
int64_t func64( int64_t val )
{
  return val / 1000;
}

// This function will call __divti3
__int128 func128( __int128 val )
{
  return val / 1000;
}

It would be nice if GCC would use the same optimisation for __int128 and
unsigned __int128.

[Bug middle-end/89252] Vector load/store aren't used to initialize large memory

2019-02-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89252

Richard Biener  changed:

   What|Removed |Added

   Keywords||missed-optimization

--- Comment #3 from Richard Biener  ---
We're expanding from

foo (struct S * x)
{
   [local count: 1073741824]:
  *x_2(D) = array[0];
  MEM[(struct S *)x_2(D) + 320B] = array[1];

not sure why we end up constant-folding the loads given 'array' cannot be
elided.

[Bug tree-optimization/86991] [8 Regression] ICE in vectorizable_reduction, at tree-vect-loop.c:6919

2019-02-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86991

--- Comment #8 from Richard Biener  ---
Author: rguenth
Date: Fri Feb  8 14:38:31 2019
New Revision: 268699

URL: https://gcc.gnu.org/viewcvs?rev=268699&root=gcc&view=rev
Log:
2019-02-08  Richard Biener  

Backport from mainline
2018-11-13  Richard Biener  

PR tree-optimization/86991
* tree-vect-loop.c (vect_is_slp_reduction): Delay reduction
group building until we have successfully detected the SLP
reduction.
(vect_is_simple_reduction): Remove fixup code here.

* gcc.dg/pr86991.c: New testcase.

Added:
branches/gcc-8-branch/gcc/testsuite/gcc.dg/pr86991.c
Modified:
branches/gcc-8-branch/gcc/ChangeLog
branches/gcc-8-branch/gcc/testsuite/ChangeLog
branches/gcc-8-branch/gcc/tree-vect-loop.c

[Bug tree-optimization/86991] [8 Regression] ICE in vectorizable_reduction, at tree-vect-loop.c:6919

2019-02-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86991

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||8.2.1
 Resolution|--- |FIXED
  Known to fail|8.2.1   |8.2.0

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

[Bug lto/88112] [9 regression] ICE in lto1: TYPE_FIELDS defined in incomplete type

2019-02-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88112

--- Comment #15 from Richard Biener  ---
Author: rguenth
Date: Fri Feb  8 14:34:49 2019
New Revision: 268698

URL: https://gcc.gnu.org/viewcvs?rev=268698&root=gcc&view=rev
Log:
2019-02-08  Richard Biener  

Backport from mainline
2019-02-03  Richard Biener  

PR debug/87295
* dwarf2out.c (copy_ancestor_tree): Register non-stubs as
orig.

* g++.dg/debug/dwarf2/pr87295.C: New testcase.

2019-01-29  Richard Biener  

PR debug/87295
* dwarf2out.c (collect_skeleton_dies): New helper.
(copy_decls_for_unworthy_types): Call it.
(build_abbrev_table): Do not try to replace
DW_AT_signature refs with local refs.

* g++.dg/lto/pr87295_0.C: New testcase.

2019-01-17  Richard Biener  

PR lto/86736
* dwarf2out.c (want_pubnames): Never generate pubnames sections
and friends for the LTO part of debug info.

2019-01-24  Richard Biener  

PR lto/87187
* tree-streamer-out.c (write_ts_decl_common_tree_pointers):
When in "legacy" debug mode make sure to reset self-origins.

2019-01-15  Richard Biener  

PR debug/88046
* dwarf2out.c (gen_member_die): Do not generate inheritance
DIEs late.

* g++.dg/lto/pr88046_0.C: New testcase.

2018-11-22  Richard Biener  

PR lto/87229
PR lto/88112
* lto-streamer-out.c (lto_is_streamable): Allow CALL_EXPRs
which can appear in size expressions.
* tree-streamer-in.c (unpack_ts_base_value_fields): Stream
CALL_EXPR_BY_DESCRIPTOR.
(streamer_read_tree_bitfields): Stream CALL_EXPR_IFN.
* tree-streamer-out.c (pack_ts_base_value_fields): Stream
CALL_EXPR_BY_DESCRIPTOR.
(streamer_write_tree_bitfields): Stream CALL_EXPR_IFN.

Added:
branches/gcc-8-branch/gcc/testsuite/g++.dg/debug/dwarf2/pr87295.C
branches/gcc-8-branch/gcc/testsuite/g++.dg/lto/pr87295_0.C
branches/gcc-8-branch/gcc/testsuite/g++.dg/lto/pr88046_0.C
Modified:
branches/gcc-8-branch/gcc/ChangeLog
branches/gcc-8-branch/gcc/dwarf2out.c
branches/gcc-8-branch/gcc/lto-streamer-out.c
branches/gcc-8-branch/gcc/testsuite/ChangeLog
branches/gcc-8-branch/gcc/tree-streamer-in.c
branches/gcc-8-branch/gcc/tree-streamer-out.c

[Bug debug/87295] [8 Regression][early debug] ICE with -ffat-lto-objects -fdebug-types-section -g

2019-02-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87295

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||8.2.1
 Resolution|--- |FIXED
  Known to fail|8.2.1   |8.2.0

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

[Bug lto/86736] [9 regression] g++.dg/asan/pr81021.C -O2 -flto -flto-partition=none ICE at dwarf2out.c:31111

2019-02-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86736

--- Comment #16 from Richard Biener  ---
Author: rguenth
Date: Fri Feb  8 14:34:49 2019
New Revision: 268698

URL: https://gcc.gnu.org/viewcvs?rev=268698&root=gcc&view=rev
Log:
2019-02-08  Richard Biener  

Backport from mainline
2019-02-03  Richard Biener  

PR debug/87295
* dwarf2out.c (copy_ancestor_tree): Register non-stubs as
orig.

* g++.dg/debug/dwarf2/pr87295.C: New testcase.

2019-01-29  Richard Biener  

PR debug/87295
* dwarf2out.c (collect_skeleton_dies): New helper.
(copy_decls_for_unworthy_types): Call it.
(build_abbrev_table): Do not try to replace
DW_AT_signature refs with local refs.

* g++.dg/lto/pr87295_0.C: New testcase.

2019-01-17  Richard Biener  

PR lto/86736
* dwarf2out.c (want_pubnames): Never generate pubnames sections
and friends for the LTO part of debug info.

2019-01-24  Richard Biener  

PR lto/87187
* tree-streamer-out.c (write_ts_decl_common_tree_pointers):
When in "legacy" debug mode make sure to reset self-origins.

2019-01-15  Richard Biener  

PR debug/88046
* dwarf2out.c (gen_member_die): Do not generate inheritance
DIEs late.

* g++.dg/lto/pr88046_0.C: New testcase.

2018-11-22  Richard Biener  

PR lto/87229
PR lto/88112
* lto-streamer-out.c (lto_is_streamable): Allow CALL_EXPRs
which can appear in size expressions.
* tree-streamer-in.c (unpack_ts_base_value_fields): Stream
CALL_EXPR_BY_DESCRIPTOR.
(streamer_read_tree_bitfields): Stream CALL_EXPR_IFN.
* tree-streamer-out.c (pack_ts_base_value_fields): Stream
CALL_EXPR_BY_DESCRIPTOR.
(streamer_write_tree_bitfields): Stream CALL_EXPR_IFN.

Added:
branches/gcc-8-branch/gcc/testsuite/g++.dg/debug/dwarf2/pr87295.C
branches/gcc-8-branch/gcc/testsuite/g++.dg/lto/pr87295_0.C
branches/gcc-8-branch/gcc/testsuite/g++.dg/lto/pr88046_0.C
Modified:
branches/gcc-8-branch/gcc/ChangeLog
branches/gcc-8-branch/gcc/dwarf2out.c
branches/gcc-8-branch/gcc/lto-streamer-out.c
branches/gcc-8-branch/gcc/testsuite/ChangeLog
branches/gcc-8-branch/gcc/tree-streamer-in.c
branches/gcc-8-branch/gcc/tree-streamer-out.c

[Bug debug/88046] [9 Regression] ICE in add_data_member_location_attribute at gcc/dwarf2out.c:19237 since r261885

2019-02-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88046

--- Comment #8 from Richard Biener  ---
Author: rguenth
Date: Fri Feb  8 14:34:49 2019
New Revision: 268698

URL: https://gcc.gnu.org/viewcvs?rev=268698&root=gcc&view=rev
Log:
2019-02-08  Richard Biener  

Backport from mainline
2019-02-03  Richard Biener  

PR debug/87295
* dwarf2out.c (copy_ancestor_tree): Register non-stubs as
orig.

* g++.dg/debug/dwarf2/pr87295.C: New testcase.

2019-01-29  Richard Biener  

PR debug/87295
* dwarf2out.c (collect_skeleton_dies): New helper.
(copy_decls_for_unworthy_types): Call it.
(build_abbrev_table): Do not try to replace
DW_AT_signature refs with local refs.

* g++.dg/lto/pr87295_0.C: New testcase.

2019-01-17  Richard Biener  

PR lto/86736
* dwarf2out.c (want_pubnames): Never generate pubnames sections
and friends for the LTO part of debug info.

2019-01-24  Richard Biener  

PR lto/87187
* tree-streamer-out.c (write_ts_decl_common_tree_pointers):
When in "legacy" debug mode make sure to reset self-origins.

2019-01-15  Richard Biener  

PR debug/88046
* dwarf2out.c (gen_member_die): Do not generate inheritance
DIEs late.

* g++.dg/lto/pr88046_0.C: New testcase.

2018-11-22  Richard Biener  

PR lto/87229
PR lto/88112
* lto-streamer-out.c (lto_is_streamable): Allow CALL_EXPRs
which can appear in size expressions.
* tree-streamer-in.c (unpack_ts_base_value_fields): Stream
CALL_EXPR_BY_DESCRIPTOR.
(streamer_read_tree_bitfields): Stream CALL_EXPR_IFN.
* tree-streamer-out.c (pack_ts_base_value_fields): Stream
CALL_EXPR_BY_DESCRIPTOR.
(streamer_write_tree_bitfields): Stream CALL_EXPR_IFN.

Added:
branches/gcc-8-branch/gcc/testsuite/g++.dg/debug/dwarf2/pr87295.C
branches/gcc-8-branch/gcc/testsuite/g++.dg/lto/pr87295_0.C
branches/gcc-8-branch/gcc/testsuite/g++.dg/lto/pr88046_0.C
Modified:
branches/gcc-8-branch/gcc/ChangeLog
branches/gcc-8-branch/gcc/dwarf2out.c
branches/gcc-8-branch/gcc/lto-streamer-out.c
branches/gcc-8-branch/gcc/testsuite/ChangeLog
branches/gcc-8-branch/gcc/tree-streamer-in.c
branches/gcc-8-branch/gcc/tree-streamer-out.c

[Bug lto/87187] FAIL: gfortran.dg/short_circuiting_3.f90 -g -flto (internal compiler error) on darwin

2019-02-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87187

--- Comment #10 from Richard Biener  ---
Author: rguenth
Date: Fri Feb  8 14:34:49 2019
New Revision: 268698

URL: https://gcc.gnu.org/viewcvs?rev=268698&root=gcc&view=rev
Log:
2019-02-08  Richard Biener  

Backport from mainline
2019-02-03  Richard Biener  

PR debug/87295
* dwarf2out.c (copy_ancestor_tree): Register non-stubs as
orig.

* g++.dg/debug/dwarf2/pr87295.C: New testcase.

2019-01-29  Richard Biener  

PR debug/87295
* dwarf2out.c (collect_skeleton_dies): New helper.
(copy_decls_for_unworthy_types): Call it.
(build_abbrev_table): Do not try to replace
DW_AT_signature refs with local refs.

* g++.dg/lto/pr87295_0.C: New testcase.

2019-01-17  Richard Biener  

PR lto/86736
* dwarf2out.c (want_pubnames): Never generate pubnames sections
and friends for the LTO part of debug info.

2019-01-24  Richard Biener  

PR lto/87187
* tree-streamer-out.c (write_ts_decl_common_tree_pointers):
When in "legacy" debug mode make sure to reset self-origins.

2019-01-15  Richard Biener  

PR debug/88046
* dwarf2out.c (gen_member_die): Do not generate inheritance
DIEs late.

* g++.dg/lto/pr88046_0.C: New testcase.

2018-11-22  Richard Biener  

PR lto/87229
PR lto/88112
* lto-streamer-out.c (lto_is_streamable): Allow CALL_EXPRs
which can appear in size expressions.
* tree-streamer-in.c (unpack_ts_base_value_fields): Stream
CALL_EXPR_BY_DESCRIPTOR.
(streamer_read_tree_bitfields): Stream CALL_EXPR_IFN.
* tree-streamer-out.c (pack_ts_base_value_fields): Stream
CALL_EXPR_BY_DESCRIPTOR.
(streamer_write_tree_bitfields): Stream CALL_EXPR_IFN.

Added:
branches/gcc-8-branch/gcc/testsuite/g++.dg/debug/dwarf2/pr87295.C
branches/gcc-8-branch/gcc/testsuite/g++.dg/lto/pr87295_0.C
branches/gcc-8-branch/gcc/testsuite/g++.dg/lto/pr88046_0.C
Modified:
branches/gcc-8-branch/gcc/ChangeLog
branches/gcc-8-branch/gcc/dwarf2out.c
branches/gcc-8-branch/gcc/lto-streamer-out.c
branches/gcc-8-branch/gcc/testsuite/ChangeLog
branches/gcc-8-branch/gcc/tree-streamer-in.c
branches/gcc-8-branch/gcc/tree-streamer-out.c

[Bug debug/87295] [8 Regression][early debug] ICE with -ffat-lto-objects -fdebug-types-section -g

2019-02-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87295

--- Comment #17 from Richard Biener  ---
Author: rguenth
Date: Fri Feb  8 14:34:49 2019
New Revision: 268698

URL: https://gcc.gnu.org/viewcvs?rev=268698&root=gcc&view=rev
Log:
2019-02-08  Richard Biener  

Backport from mainline
2019-02-03  Richard Biener  

PR debug/87295
* dwarf2out.c (copy_ancestor_tree): Register non-stubs as
orig.

* g++.dg/debug/dwarf2/pr87295.C: New testcase.

2019-01-29  Richard Biener  

PR debug/87295
* dwarf2out.c (collect_skeleton_dies): New helper.
(copy_decls_for_unworthy_types): Call it.
(build_abbrev_table): Do not try to replace
DW_AT_signature refs with local refs.

* g++.dg/lto/pr87295_0.C: New testcase.

2019-01-17  Richard Biener  

PR lto/86736
* dwarf2out.c (want_pubnames): Never generate pubnames sections
and friends for the LTO part of debug info.

2019-01-24  Richard Biener  

PR lto/87187
* tree-streamer-out.c (write_ts_decl_common_tree_pointers):
When in "legacy" debug mode make sure to reset self-origins.

2019-01-15  Richard Biener  

PR debug/88046
* dwarf2out.c (gen_member_die): Do not generate inheritance
DIEs late.

* g++.dg/lto/pr88046_0.C: New testcase.

2018-11-22  Richard Biener  

PR lto/87229
PR lto/88112
* lto-streamer-out.c (lto_is_streamable): Allow CALL_EXPRs
which can appear in size expressions.
* tree-streamer-in.c (unpack_ts_base_value_fields): Stream
CALL_EXPR_BY_DESCRIPTOR.
(streamer_read_tree_bitfields): Stream CALL_EXPR_IFN.
* tree-streamer-out.c (pack_ts_base_value_fields): Stream
CALL_EXPR_BY_DESCRIPTOR.
(streamer_write_tree_bitfields): Stream CALL_EXPR_IFN.

Added:
branches/gcc-8-branch/gcc/testsuite/g++.dg/debug/dwarf2/pr87295.C
branches/gcc-8-branch/gcc/testsuite/g++.dg/lto/pr87295_0.C
branches/gcc-8-branch/gcc/testsuite/g++.dg/lto/pr88046_0.C
Modified:
branches/gcc-8-branch/gcc/ChangeLog
branches/gcc-8-branch/gcc/dwarf2out.c
branches/gcc-8-branch/gcc/lto-streamer-out.c
branches/gcc-8-branch/gcc/testsuite/ChangeLog
branches/gcc-8-branch/gcc/tree-streamer-in.c
branches/gcc-8-branch/gcc/tree-streamer-out.c

[Bug c++/87229] [8 Regression] ICE: tree code 'call_expr' is not supported in LTO streams

2019-02-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87229

--- Comment #9 from Richard Biener  ---
Author: rguenth
Date: Fri Feb  8 14:34:49 2019
New Revision: 268698

URL: https://gcc.gnu.org/viewcvs?rev=268698&root=gcc&view=rev
Log:
2019-02-08  Richard Biener  

Backport from mainline
2019-02-03  Richard Biener  

PR debug/87295
* dwarf2out.c (copy_ancestor_tree): Register non-stubs as
orig.

* g++.dg/debug/dwarf2/pr87295.C: New testcase.

2019-01-29  Richard Biener  

PR debug/87295
* dwarf2out.c (collect_skeleton_dies): New helper.
(copy_decls_for_unworthy_types): Call it.
(build_abbrev_table): Do not try to replace
DW_AT_signature refs with local refs.

* g++.dg/lto/pr87295_0.C: New testcase.

2019-01-17  Richard Biener  

PR lto/86736
* dwarf2out.c (want_pubnames): Never generate pubnames sections
and friends for the LTO part of debug info.

2019-01-24  Richard Biener  

PR lto/87187
* tree-streamer-out.c (write_ts_decl_common_tree_pointers):
When in "legacy" debug mode make sure to reset self-origins.

2019-01-15  Richard Biener  

PR debug/88046
* dwarf2out.c (gen_member_die): Do not generate inheritance
DIEs late.

* g++.dg/lto/pr88046_0.C: New testcase.

2018-11-22  Richard Biener  

PR lto/87229
PR lto/88112
* lto-streamer-out.c (lto_is_streamable): Allow CALL_EXPRs
which can appear in size expressions.
* tree-streamer-in.c (unpack_ts_base_value_fields): Stream
CALL_EXPR_BY_DESCRIPTOR.
(streamer_read_tree_bitfields): Stream CALL_EXPR_IFN.
* tree-streamer-out.c (pack_ts_base_value_fields): Stream
CALL_EXPR_BY_DESCRIPTOR.
(streamer_write_tree_bitfields): Stream CALL_EXPR_IFN.

Added:
branches/gcc-8-branch/gcc/testsuite/g++.dg/debug/dwarf2/pr87295.C
branches/gcc-8-branch/gcc/testsuite/g++.dg/lto/pr87295_0.C
branches/gcc-8-branch/gcc/testsuite/g++.dg/lto/pr88046_0.C
Modified:
branches/gcc-8-branch/gcc/ChangeLog
branches/gcc-8-branch/gcc/dwarf2out.c
branches/gcc-8-branch/gcc/lto-streamer-out.c
branches/gcc-8-branch/gcc/testsuite/ChangeLog
branches/gcc-8-branch/gcc/tree-streamer-in.c
branches/gcc-8-branch/gcc/tree-streamer-out.c

[Bug c++/87229] [8 Regression] ICE: tree code 'call_expr' is not supported in LTO streams

2019-02-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87229

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||8.2.1
 Resolution|--- |FIXED
  Known to fail||8.2.0

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

[Bug tree-optimization/89209] [9 Regression] ICE in build_ref_for_model, at tree-sra.c:1791

2019-02-08 Thread jamborm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89209

--- Comment #5 from Martin Jambor  ---
HWell, no.  We create a special default-def SSA to insert into the IL
the information that an uninitialized value is being loaded but now
the SSA has aggregate type, which should not happen, I guess (even
though it surprisingly works).  We try to create only one such SSA
name for each part of an aggregate. A simple solution would be to
create a new one if V_C_E with an aggregate argument is on the RHS.
I'll look into the code a bit more to see if I can find other options.

[Bug libstdc++/65229] pretty-printer exception on std::bitset<0>

2019-02-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65229

Jonathan Wakely  changed:

   What|Removed |Added

   Target Milestone|9.0 |8.3

[Bug libstdc++/87787] [UBSAN] runtime error: null pointer passed as argument 2, which is declared to never be null

2019-02-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87787

Jonathan Wakely  changed:

   What|Removed |Added

   Target Milestone|9.0 |8.3

[Bug libstdc++/65229] pretty-printer exception on std::bitset<0>

2019-02-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65229

--- Comment #3 from Jonathan Wakely  ---
Author: redi
Date: Fri Feb  8 14:16:09 2019
New Revision: 268693

URL: https://gcc.gnu.org/viewcvs?rev=268693&root=gcc&view=rev
Log:
PR libstdc++/65229 fix pretty printer for std::bitset<0>

Backport from mainline
2018-11-23  Martin Sebor  
Jonathan Wakely  

PR libstdc++/65229
* python/libstdcxx/v6/printers.py (StdBitsetPrinter): Handle
exception thrown for std::bitset<0>.
* testsuite/libstdc++-prettyprinters/simple.cc: Test std::bitset<0>.

Modified:
branches/gcc-8-branch/libstdc++-v3/ChangeLog
branches/gcc-8-branch/libstdc++-v3/python/libstdcxx/v6/printers.py
   
branches/gcc-8-branch/libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc

[Bug libstdc++/89128] Missing CTAD deduction guides for std::stack and std::queue

2019-02-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89128

Jonathan Wakely  changed:

   What|Removed |Added

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

--- Comment #3 from Jonathan Wakely  ---
done

--- Comment #4 from Jonathan Wakely  ---
Author: redi
Date: Fri Feb  8 14:15:03 2019
New Revision: 268691

URL: https://gcc.gnu.org/viewcvs?rev=268691&root=gcc&view=rev
Log:
PR libstdc++/89128 add deduction guides for container adaptors

Backport from mainline
2019-02-05  Jonathan Wakely  

PR libstdc++/89128
* include/bits/stl_queue.h (queue, priority_queue): Add deduction
guides.
* include/bits/stl_stack.h (stack): Likewise.
* testsuite/23_containers/priority_queue/deduction.cc: New test.
* testsuite/23_containers/queue/deduction.cc: New test.
* testsuite/23_containers/stack/deduction.cc: New test.

Added:
   
branches/gcc-8-branch/libstdc++-v3/testsuite/23_containers/priority_queue/deduction.cc
   
branches/gcc-8-branch/libstdc++-v3/testsuite/23_containers/queue/deduction.cc
   
branches/gcc-8-branch/libstdc++-v3/testsuite/23_containers/stack/deduction.cc
Modified:
branches/gcc-8-branch/libstdc++-v3/ChangeLog
branches/gcc-8-branch/libstdc++-v3/include/bits/stl_queue.h
branches/gcc-8-branch/libstdc++-v3/include/bits/stl_stack.h

[Bug libstdc++/88119] std::alignment_of returns wrong value (__alignof instead of alignof).

2019-02-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88119

--- Comment #3 from Jonathan Wakely  ---
Author: redi
Date: Fri Feb  8 14:14:57 2019
New Revision: 268690

URL: https://gcc.gnu.org/viewcvs?rev=268690&root=gcc&view=rev
Log:
PR libstdc++/88119 use alignof in std::alignment_of, not __alignof__

Now that __alignof__ and alignof sometimes disagree it matters which one
we use. The standard says that std::alignment_of::value equals
alignof(T), so we need to use that.

Change the only uses of alignment_of to use __alignof__ to avoid a
change in alignment.

Backport from mainline
2018-11-29  Jonathan Wakely  

PR libstdc++/88119
* include/ext/aligned_buffer.h (__aligned_membuf): Add comment.
(__aligned_buffer): Use __alignof__ instead of std::alignment_of.
* include/std/type_traits (alignment_of): Use alignof instead of
__alignof__.
* testsuite/20_util/alignment_of/value.cc: Fix test to check values
match alignof not __alignof__, as required by the standard.

Modified:
branches/gcc-8-branch/libstdc++-v3/ChangeLog
branches/gcc-8-branch/libstdc++-v3/include/ext/aligned_buffer.h
branches/gcc-8-branch/libstdc++-v3/include/std/type_traits
branches/gcc-8-branch/libstdc++-v3/testsuite/20_util/alignment_of/value.cc

[Bug libstdc++/88119] std::alignment_of returns wrong value (__alignof instead of alignof).

2019-02-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88119

Jonathan Wakely  changed:

   What|Removed |Added

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

--- Comment #4 from Jonathan Wakely  ---
Fixed for GCC 8.3

[Bug libstdc++/87308] pretty printer for std::any fails with: Python Exception Unknown manager function in std::any

2019-02-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87308

--- Comment #4 from Jonathan Wakely  ---
Author: redi
Date: Fri Feb  8 14:15:36 2019
New Revision: 268692

URL: https://gcc.gnu.org/viewcvs?rev=268692&root=gcc&view=rev
Log:
PR libstdc++/87308 adjust regex used in std::any pretty printer

The regex used in the backported patch is simpler than the one in trunk,
because it appears that LTO mangles the debug info on the branch,
causing it to fail to match sometimes. The new test is also omitted from
the branch, because it fails for the same reason.

Backport from mainline
2018-11-23  Jonathan Wakely  

PR libstdc++/87308 (partial)
* python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Adjust regex to
work around PR 88166.

Modified:
branches/gcc-8-branch/libstdc++-v3/ChangeLog
branches/gcc-8-branch/libstdc++-v3/python/libstdcxx/v6/printers.py

[Bug libstdc++/87787] [UBSAN] runtime error: null pointer passed as argument 2, which is declared to never be null

2019-02-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87787

--- Comment #13 from Jonathan Wakely  ---
Author: redi
Date: Fri Feb  8 14:16:28 2019
New Revision: 268694

URL: https://gcc.gnu.org/viewcvs?rev=268694&root=gcc&view=rev
Log:
PR libstdc++/87787 avoid undefined null args to memcpy and memmove

The C++ char_traits and ctype APIs do not disallow null pointer
arguments, so we need explicit checks to ensure we don't forward null
pointers to memcpy or memmove.

Backport from mainline
2019-01-07  Jonathan Wakely  

PR libstdc++/87787
* include/bits/char_traits.h (char_traits::move): Do not pass null
pointers to memmove.
* include/bits/locale_facets.h
(ctype::widen(const char*, const char*, char*)): Do not
pass null pointers to memcpy.
(ctype::narrow(const char*, const char*, char, char*)):
Likewise.
(ctype::do_widen(const char*, const char*, char*)):
Likewise.
(ctype::do_narrow(const char*, const char*, char, char*)):
Likewise.

Modified:
branches/gcc-8-branch/libstdc++-v3/ChangeLog
branches/gcc-8-branch/libstdc++-v3/include/bits/char_traits.h
branches/gcc-8-branch/libstdc++-v3/include/bits/locale_facets.h

[Bug c++/88166] Inconsistent placement of cv-quals and ptr-declarator in debuginfo

2019-02-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88166

--- Comment #6 from Jonathan Wakely  ---
Author: redi
Date: Fri Feb  8 14:15:36 2019
New Revision: 268692

URL: https://gcc.gnu.org/viewcvs?rev=268692&root=gcc&view=rev
Log:
PR libstdc++/87308 adjust regex used in std::any pretty printer

The regex used in the backported patch is simpler than the one in trunk,
because it appears that LTO mangles the debug info on the branch,
causing it to fail to match sometimes. The new test is also omitted from
the branch, because it fails for the same reason.

Backport from mainline
2018-11-23  Jonathan Wakely  

PR libstdc++/87308 (partial)
* python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Adjust regex to
work around PR 88166.

Modified:
branches/gcc-8-branch/libstdc++-v3/ChangeLog
branches/gcc-8-branch/libstdc++-v3/python/libstdcxx/v6/printers.py

[Bug libstdc++/89128] Missing CTAD deduction guides for std::stack and std::queue

2019-02-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89128

Jonathan Wakely  changed:

   What|Removed |Added

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

--- Comment #3 from Jonathan Wakely  ---
done

[Bug c++/89232] c++: Fail to build when and the noreturn keyword is used

2019-02-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89232

--- Comment #8 from Jonathan Wakely  ---
But you can include it in C++, because the header exists. If you just include
it an do nothing, there's no problem (it's not part of the C++ standard and so
your program is not portable, conforming C++, but it compiles).

The problem is that you tried to use the 'noreturn' specifier in your function,
and that is not valid in C++.

Including a useless header that doesn't define anything in C++ is fairly
harmless. Writing invalid C++ code is invalid, and that's what triggers an
error.

The problem is not the header, it's your code.

[Bug target/88656] [7/8/9 Regression] lr clobbered by thumb prologue before __builtin_return_address(0) reads from it

2019-02-08 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88656

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-02-08
 CC||jakub at gcc dot gnu.org,
   ||ktkachov at gcc dot gnu.org,
   ||ramana at gcc dot gnu.org,
   ||rearnsha at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Jakub Jelinek  ---
Confirmed with -march=armv6-m -mthumb -O2
void baz (void);

void *
foo (void)
{
  asm volatile("" : : : "r8", "r9", "r4");
  return __builtin_return_address (0);
}

void *
bar (void)
{
  asm volatile("" : : : "r8", "r9", "r4");
  baz ();
  return __builtin_return_address (0);
}

[Bug tree-optimization/89253] [8/9 Regression] ICE in split_loop, at tree-ssa-loop-split.c:566

2019-02-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89253

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2
 Status|UNCONFIRMED |ASSIGNED
   Keywords|ice-on-invalid-code |ice-on-valid-code
   Last reconfirmed||2019-02-08
 CC||matz at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org
 Ever confirmed|0   |1
   Target Milestone|--- |8.3

--- Comment #1 from Richard Biener  ---
Confirmed on x86_64-linux.  loop_version can (and does) fail here, possibly
because there's abnormal edges (computed goto) inside.

(gdb) p can_duplicate_loop_p (loop1)
$2 = false

but this isn't checked.  I am testing

Index: gcc/tree-ssa-loop-split.c
===
--- gcc/tree-ssa-loop-split.c   (revision 268679)
+++ gcc/tree-ssa-loop-split.c   (working copy)
@@ -649,7 +649,8 @@ tree_ssa_split_loops (void)
false, true)
  && niter.cmp != ERROR_MARK
  /* We can't yet handle loops controlled by a != predicate.  */
- && niter.cmp != NE_EXPR)
+ && niter.cmp != NE_EXPR
+ && can_duplicate_loop_p (loop))
{
  if (split_loop (loop, &niter))
{

[Bug target/69471] "-march=native" unintentionally breaks further -march/-mtune flags

2019-02-08 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69471

H.J. Lu  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-02-08
 CC||hjl.tools at gmail dot com
 Ever confirmed|0   |1

--- Comment #7 from H.J. Lu  ---
-march=native overrides everything, including, -march= after it:

[hjl@gnu-cfl-2 gcc]$ cat /tmp/foo.c
#ifndef __AVX512F__
# error No AVX512F
#endif
[hjl@gnu-cfl-2 gcc]$ ./xgcc -B./ -march=skylake-avx512  -S /tmp/foo.c
[hjl@gnu-cfl-2 gcc]$ ./xgcc -B./ -march=native -march=skylake-avx512  -S
/tmp/foo.c
/tmp/foo.c:2:3: error: #error No AVX512F
2 | # error No AVX512F
  |   ^
[hjl@gnu-cfl-2 gcc]$

[Bug ipa/87957] [9 Regression] ICE tree check: expected tree that contains ‘decl minimal’ structure, have ‘identifier_node’ in warn_odr, at ipa-devirt.c:1051 since r265519

2019-02-08 Thread hubicka at ucw dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87957

--- Comment #33 from Jan Hubicka  ---
Hi,
I am testing the following fix: since we already decided about mangling
we are in fact safe to remove everything that does not have assembler
name on it.

Honza

Index: tree.c
===
--- tree.c  (revision 268579)
+++ tree.c  (working copy)
@@ -5152,7 +5152,8 @@ fld_simplified_type_name (tree type)
   /* Drop TYPE_DECLs in TYPE_NAME in favor of the identifier in the
  TYPE_DECL if the type doesn't have linkage.
  this must match fld_  */
-  if (type != TYPE_MAIN_VARIANT (type) || ! type_with_linkage_p (type))
+  if (type != TYPE_MAIN_VARIANT (type)
+  || !DECL_ASSEMBLER_NAME_SET_P (TYPE_NAME (type)))
 return DECL_NAME (TYPE_NAME (type));
   return TYPE_NAME (type);
 }

[Bug d/89255] libphobos.unittests multilib handling broken

2019-02-08 Thread ro at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89255

Rainer Orth  changed:

   What|Removed |Added

   Target Milestone|--- |9.0

[Bug d/89255] New: libphobos.unittests multilib handling broken

2019-02-08 Thread ro at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89255

Bug ID: 89255
   Summary: libphobos.unittests multilib handling broken
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: d
  Assignee: ibuclaw at gdcproject dot org
  Reporter: ro at gcc dot gnu.org
  Target Milestone: ---

The libphobos.unittests tests don't run properly for the non-default multilib
(seen on both Solaris/SPARC and x86 as well as Linux/x86_64 and Linux/i686, but
not dependent on the specific target).

* E.g. on Solaris/x86 for the -m64 multilib, I see

ld.so.1: unittest: fatal: libgdruntime_t.so.0: open failed: No such file or
directory

  which not only produces confused libphobos.sum output

Running
/vol/gcc/src/hg/trunk/local/libphobos/testsuite/libphobos.unittests/unittests.exp
...
FAIL: libphobos.unittests/druntime/shared/ld.so.1:
FAIL: libphobos.unittests/druntime/shared/unittest:
FAIL: libphobos.unittests/druntime/shared/fatal:
FAIL: libphobos.unittests/druntime/shared/libgdruntime_t.so.0:
FAIL: libphobos.unittests/druntime/shared/open
FAIL: libphobos.unittests/druntime/shared/failed:
FAIL: libphobos.unittests/druntime/shared/No
FAIL: libphobos.unittests/druntime/shared/such
FAIL: libphobos.unittests/druntime/shared/file
FAIL: libphobos.unittests/druntime/shared/or
FAIL: libphobos.unittests/druntime/shared/directory

  which later turns up in mail-report.log, but

* indeed libgdruntime_t.so isn't built for non-default multilibs. 
libgdruntime_t.la
  is only built during make check, but the toplevel check targets lacks
  multilib handling.

[Bug tree-optimization/89247] [7/8 Regression] ICE in expand_LOOP_VECTORIZED, at internal-fn.c:2409

2019-02-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89247

Richard Biener  changed:

   What|Removed |Added

 CC||asolokha at gmx dot com

--- Comment #12 from Richard Biener  ---
*** Bug 87446 has been marked as a duplicate of this bug. ***

[Bug tree-optimization/87446] [7/8/9 Regression] ICE in expand_LOOP_VECTORIZED, at internal-fn.c:2431

2019-02-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87446

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #3 from Richard Biener  ---
The later one has a nicer testcase (plain -O3) and I've fixed it there.

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

[Bug c++/89232] c++: Fail to build when and the noreturn keyword is used

2019-02-08 Thread pere at hungry dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89232

--- Comment #7 from pere at hungry dot com ---
I just think it would have been useful if the compiler said something
like 'header file  is not defined/available in C++' or
something like that.  It would provide feedback to the developer even if
'noreturn' is not used anywhere in the code to cause the error I ran
into.

Anywya, just an idea for you to consider, perhaps a feature request for
a different bug report. :)

[Bug tree-optimization/89247] [7/8 Regression] ICE in expand_LOOP_VECTORIZED, at internal-fn.c:2409

2019-02-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89247

--- Comment #11 from Richard Biener  ---
Author: rguenth
Date: Fri Feb  8 13:21:36 2019
New Revision: 268689

URL: https://gcc.gnu.org/viewcvs?rev=268689&root=gcc&view=rev
Log:
2019-02-08  Richard Biener  

PR tree-optimization/89247
* tree-if-conv.c: Include tree-cfgcleanup.h.
(version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
(tree_if_conversion): Pass through predicate vector.
(pass_if_conversion::execute): Do CFG cleanup and SSA update
inline, see if any if-converted loops we refrece in
LOOP_VECTORIZED calls vanished and fixup.
* tree-if-conv.h (tree_if_conversion): Adjust prototype.

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

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr89247.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-if-conv.c
trunk/gcc/tree-if-conv.h

[Bug tree-optimization/89247] [7/8 Regression] ICE in expand_LOOP_VECTORIZED, at internal-fn.c:2409

2019-02-08 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89247

Richard Biener  changed:

   What|Removed |Added

  Known to work||9.0
Summary|[7/8/9 Regression] ICE in   |[7/8 Regression] ICE in
   |expand_LOOP_VECTORIZED, at  |expand_LOOP_VECTORIZED, at
   |internal-fn.c:2409  |internal-fn.c:2409
  Known to fail|9.0 |

--- Comment #10 from Richard Biener  ---
Fixed on trunk.

[Bug middle-end/89252] Vector load/store aren't used to initialize large memory

2019-02-08 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89252

--- Comment #2 from H.J. Lu  ---
Created attachment 45643
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45643&action=edit
A patch

[Bug driver/89249] mingw, paths with spaces, LTO -> collect2.exe: fatal error: CreateProcess: No such file or directory

2019-02-08 Thread ilg at livius dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89249

--- Comment #3 from Liviu Ionescu  ---
Hi Richard,

Thank you for taking the time to investigate.

Indeed, COLLECT_LTO_WRAPPER is escaped, while COMPILER_PATH is not:

COLLECT_LTO_WRAPPER=c:/users/ilg/desktop/8.2.1\ \ \ \ \
1.4-20190207-1853/bin/../libexec/gcc/arm-none-eabi/8.2.1/lto-wrapper.exe
...
COMPILER_PATH=c:/users/ilg/desktop/8.2.1
1.4-20190207-1853/bin/../libexec/gcc/arm-none-eabi/8.2.1/;c:/users/ilg/desktop/8.2.1
1.4-20190207-1853/bin/../libexec/gcc/;c:/users/ilg/desktop/8.2.1
1.4-20190207-1853/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/

However, COMPILER_PATH is also not escaped in the no-LTO case, which works, so
I guess it is escaped somewhere else, and this is missing in the LTO code.

The only meaningful place where COMPILER_PATH is used is in
gcc.c:driver::maybe_run_linker():

  putenv_from_prefixes (&exec_prefixes, "COMPILER_PATH", false);
  putenv_from_prefixes (&startfile_prefixes, LIBRARY_PATH_ENV, true);

Right now I see convert_white_space() called only twice:

lto_wrapper_file = find_a_file (&exec_prefixes, "lto-wrapper",
X_OK, false);

and 

  linker_plugin_file_spec = convert_white_space (temp_spec);


>From what I undestand, the path in 'exec_prefixes' should have been converted
before putenv_from_prefixes() is called.

'exec_prefixes' seems constructed via

add_prefix (&exec_prefixes, arg, NULL,
PREFIX_PRIORITY_B_OPT, 0, 0);

>From here... I'm kind of lost, the logic to manage paths is complex and I can't
estimate the impacts of changes, but I think that this path change mandatory
for Windows should be done in a single place, not everywhere the paths are
finally consumed.


So, we got a bit of understanding, but the ploblem seems to require more
thinking and a careful solution, which I'm not able to provide.

However, if someone can, I'm ready to try it.

[Bug target/89251] [2018-q4m] Wrong datatype optimization on bitfield

2019-02-08 Thread david.koch at libertysurf dot fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89251

--- Comment #4 from Kochise  ---
The pointer I access is volatile, not the uint32_t behind. Why would I ? The
'volatile' keyword has no meaning to change the data size being processed, only
removing the caching behavior of the compiler.

If the compiler can decide to change the specified size of non-volatile
datatypes, you really must consider reviewing some common practices. I wanted
this to be uint32_t, keep it that way, thanks.

Where in the standard is written that bitfield could be resized out from their
base datatype ? What's the point anyway ? And 'volatile' would "prevent that" ?
How unfriendly...

[Bug d/89254] std.net.curl and std.parallelism unittests hang

2019-02-08 Thread ro at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89254

Rainer Orth  changed:

   What|Removed |Added

   Target Milestone|--- |9.0

[Bug d/89254] New: std.net.curl and std.parallelism unittests hang

2019-02-08 Thread ro at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89254

Bug ID: 89254
   Summary: std.net.curl and std.parallelism unittests hang
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: d
  Assignee: ibuclaw at gdcproject dot org
  Reporter: ro at gcc dot gnu.org
  Target Milestone: ---
Target: i686-pc-linux-gnu

When building on Linux/i686, the std.net.curl and std.parallelism unitests
hang and never time out.  Unfortunately, when trying to investigate with pstack
or gdb, those hang too and need to be killed explicitly.

strace shows

[pid 4] write(1, "bc_start_main [0xf2a7a742]\n", 27bc_start_main
[0xf2a7a742]
) = 27
[pid 4] write(1, "??:? ???[0x8049312]\n", 20??:? ???[0x8049312]
) = 20
[pid 4] rt_sigaction(SIGSEGV, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0},
NULL, 8) = 0
[pid 4] rt_sigaction(SIGBUS, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0},
NULL, 8) = 0
[pid 4] futex(0xf2936ba8, FUTEX_WAIT, 40001, NULL

This is ugly because the complete build/test never finishes without manual
investigation.  To make things worse, each test is run twice when running a
multilibbed build due to broken multilib handling of libphobos.unittests
(to be reported separately).

[Bug tree-optimization/89252] Vector load/store aren't used to initialize large memory

2019-02-08 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89252

H.J. Lu  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-02-08
 CC||jakub at redhat dot com
 Depends on||28755
 Ever confirmed|0   |1

--- Comment #1 from H.J. Lu  ---
The code in question is added by

commit d4cf8ff76d20953c1113f02bddfc22b61d7dd195
Author: jakub 
Date:   Sun Sep 23 09:34:28 2007 +

PR middle-end/28755
* expr.c (expand_constructor): New function.
(expand_expr_real_1) : Call it.
(expand_expr_real_1) : Call it if VALUE is
CONSTRUCTOR.

* gcc.dg/pr28755.c: New test.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=28755
[Bug 28755] [4.2 Regression] duplicate members of arrays

[Bug libstdc++/88084] basic_string_view::copy doesn't use Traits::copy

2019-02-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88084

Jonathan Wakely  changed:

   What|Removed |Added

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

--- Comment #5 from Jonathan Wakely  ---
Fixed for GCC 8.3

[Bug libstdc++/83511] Missing default argument for basic_string_view::substr

2019-02-08 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83511

Jonathan Wakely  changed:

   What|Removed |Added

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

--- Comment #4 from Jonathan Wakely  ---
Fixed for GCC 8.3

[Bug lto/88147] [9 Regression] ICE in linemap_line_start, at libcpp/line-map.c:781 starting from r265875

2019-02-08 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88147

Martin Liška  changed:

   What|Removed |Added

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

--- Comment #12 from Martin Liška  ---
Let me work on that..

[Bug tree-optimization/89253] New: [8/9 Regression] ICE in split_loop, at tree-ssa-loop-split.c:566

2019-02-08 Thread asolokha at gmx dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89253

Bug ID: 89253
   Summary: [8/9 Regression] ICE in split_loop, at
tree-ssa-loop-split.c:566
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Keywords: ice-on-invalid-code
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: asolokha at gmx dot com
  Target Milestone: ---

gfortran-9.0.0-alpha20190203 snapshot (r268503) ICEs when compiling the
following (not necessarily valid) testcase w/ -O1 -fsplit-loops
-fno-tree-dominator-opts:

  program jr
  integer :: w5, pg, zh
  w5 = 0
  write (w5)
  assign 0002 to w5
  do pg = 1, 3
 if (pg .eq. 1) then
do zh = 1, pg
end do
 else
goto w5
 0001   zh = 0
 0002   zh = 0
assign 0001 to w5
 endif
  end do
  end

% powerpc-e300c3-linux-gnu-gfortran-9.0.0-alpha20190203 -O1 -fsplit-loops
-fno-tree-dominator-opts -w -c mvxcktth.f
during GIMPLE pass: lsplit
mvxcktth.f:1:0:

1 |   program jr
  | 
internal compiler error: in split_loop, at tree-ssa-loop-split.c:566
0x688b22 split_loop
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190203/work/gcc-9-20190203/gcc/tree-ssa-loop-split.c:566
0x688b22 tree_ssa_split_loops
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190203/work/gcc-9-20190203/gcc/tree-ssa-loop-split.c:654
0x688b22 execute
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190203/work/gcc-9-20190203/gcc/tree-ssa-loop-split.c:708

(While my target here is powerpc, the ICE is not target-specific.)

BTW, while -fsplit-loops is enabled at -O3 and higher, it is not documented as
such in the user's manual.

[Bug c++/89232] c++: Fail to build when and the noreturn keyword is used

2019-02-08 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89232

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #6 from Jakub Jelinek  ---
The header doesn't define the noreturn macro (and must not, because one needs
to be able to e.g. use [[noreturn]] and if noreturn was say a macro defined to
[[noreturn]], that wouldn't work very well).
I don't see why you are looking for a warning, you got an error that is fairly
readable when you try to use it as if it were a macro.

  1   2   >