[Bug c++/89392] [7/8/9 Regression] ICE in bitmap_bit_p, at bitmap.c:978

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

--- Comment #6 from rguenther at suse dot de  ---
On Tue, 19 Feb 2019, ctice at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89392
> 
> --- Comment #5 from ctice at gcc dot gnu.org ---
> I have been unable to reproduce this error, using the latest GCC and building
> with VTV enabled.  What architecture are you using?  How are you configuring
> your GCC build?

I can reproduce on latest trunk when configuring with --disable-bootstrap
--enable-valgrind-annotations (it's just a development build).

But it also reproduces with system-installed gcc 7 and 8:

> g++-8 t.cc -O -flto -fvtable-verify=std 
during GIMPLE pass: ealias
t.cc: In function ‘_GLOBAL__sub_I.00099_t’:
t.cc:4:4: internal compiler error: Segmentation fault
 s t;
^
0x7ff556798fdf ???
> g++-7 t.cc -O -flto -fvtable-verify=std 
t.cc: In function ‘_GLOBAL__sub_I.00099_t’:
t.cc:4:4: internal compiler error: Segmentation fault
 s t;
^
Please submit a full bug report,

[Bug middle-end/89091] ICE: Segmentation fault (in tree_class_check)

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

--- Comment #3 from David Binderman  ---
for gcc/testsuite/gcc.dg/pr89037.c, valgrind says:

./gcc.dg/pr89037.c:9:9: warning: missing braces around initializer
[-Wmissing-braces]
9 | T a[] = { 1, 1, 0x12345, 0xff01, 1ULL << 63, (__int128) 1 <<
64,
  | ^
  |   {} {} {  } { } { } {
}
   10 |((__int128) 1 << 64) | 1 };
  |{}
==11913== Invalid read of size 2
==11913==at 0x7F5B96: decode_field_reference(unsigned int, tree_node**,
long*, long*, machine_mode*, int*, int*, int*, tree_node**, tree_node**)
(fold-const.c:4327)

[Bug middle-end/89091] ICE: Segmentation fault (in tree_class_check)

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

--- Comment #4 from Arseny Solokha  ---
(In reply to David Binderman from comment #3)
> for gcc/testsuite/gcc.dg/pr89037.c, valgrind says:

That's where I've minimized my testcase from.

[Bug c/89410] [7/8/9 Regression] ICE in calculate_line_spans, at diagnostic-show-locus.c:1237 after #line

2019-02-20 Thread jg at jguk dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89410

--- Comment #4 from Jonny Grant  ---
There's another related issue, can it be covered on this ticket?

GCC does not show the part of the output below I marked with after commenting
out line 4 <-

#1 with x86-64 gcc (trunk)
: In function 'main':
:6:7: warning: line number out of range
6 | #line 9223372036854775807<-
  |   ^~~




int main(void)
{
// Note: Comment back in the next line to reproduce
//#line 12147483647

#line 9223372036854775807
}

[Bug fortran/89413] New: [8/9 Regression] ICE in resolve_fl_derived, at fortran/resolve.c:14392

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

Bug ID: 89413
   Summary: [8/9 Regression] ICE in resolve_fl_derived, at
fortran/resolve.c:14392
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Keywords: ice-on-invalid-code
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: asolokha at gmx dot com
  Target Milestone: ---

gfortran-9.0.0-alpha20190217 snapshot (r268974) ICEs when compiling the
following testcase:

program sj
  type :: t5 ()
class (t5 ()), pointer :: ys
  end type t5
end program sj

% powerpc-e300c3-linux-gnu-gfortran-9.0.0-alpha20190217 -c j1kbey21.f90
f951: internal compiler error: in resolve_fl_derived, at
fortran/resolve.c:14392
0x574e6f resolve_fl_derived
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190217/work/gcc-9-20190217/gcc/fortran/resolve.c:14392
0x813497 resolve_symbol
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190217/work/gcc-9-20190217/gcc/fortran/resolve.c:14773
0x83c002 do_traverse_symtree
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190217/work/gcc-9-20190217/gcc/fortran/symbol.c:4156
0x820505 resolve_types
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190217/work/gcc-9-20190217/gcc/fortran/resolve.c:16685
0x81243e gfc_resolve(gfc_namespace*)
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190217/work/gcc-9-20190217/gcc/fortran/resolve.c:16799
0x804206 resolve_all_program_units
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190217/work/gcc-9-20190217/gcc/fortran/parse.c:6073
0x804206 gfc_parse_file()
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190217/work/gcc-9-20190217/gcc/fortran/parse.c:6323
0x851d8e gfc_be_parse_file
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-9.0.0_alpha20190217/work/gcc-9-20190217/gcc/fortran/f95-lang.c:204

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

[Bug c/89408] No constant folding when dereferencing string literals

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

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek  ---
One thing is optimization, which gcc is obviously able to constant fold this,
the other is the C language, which requires a constant expression (language
term) and this expression is not such a constant expression.  So, it is not
valid C (and not valid C++98, but valid C++11 and later).

[Bug middle-end/89412] [8/9 Regression] gcc ICE in simplify_subreg, at simplify-rtx.c:6273 on i686-linux-gnu

2019-02-20 Thread doko at debian dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89412

Matthias Klose  changed:

   What|Removed |Added

Summary|[8 Regression] bootstrap|[8/9 Regression] gcc ICE in
   |fails in libgfortran on |simplify_subreg, at
   |powerpc64le-linux-gnu   |simplify-rtx.c:6273 on
   ||i686-linux-gnu

--- Comment #1 from Matthias Klose  ---
also seen on the trunk, checked r268955.

[Bug fortran/89413] [8/9 Regression] ICE in resolve_fl_derived, at fortran/resolve.c:14392

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

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P4
   Target Milestone|--- |8.3

[Bug middle-end/89412] [7/8/9 Regression] gcc ICE in simplify_subreg, at simplify-rtx.c:6273 on i686-linux-gnu

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

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-02-20
  Known to work|8.2.0   |6.1.0
   Target Milestone|--- |7.5
Summary|[8/9 Regression] gcc ICE in |[7/8/9 Regression] gcc ICE
   |simplify_subreg, at |in simplify_subreg, at
   |simplify-rtx.c:6273 on  |simplify-rtx.c:6273 on
   |i686-linux-gnu  |i686-linux-gnu
 Ever confirmed|0   |1
  Known to fail||6.2.0, 7.1.0

--- Comment #2 from Richard Biener  ---
Fails for me with GCC 8.1.0 and 8.2.0 as well on i?86-linux (and x86_64 with
-m32).  Also GCC 7 and GCC 6 (but 6.1.0 is fine).

[Bug c/89410] [7/8/9 Regression] ICE in calculate_line_spans, at diagnostic-show-locus.c:1237 after #line

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

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |7.5

[Bug go/89406] Go testing leaves many temporary directories in /tmp around

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

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-02-20
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener  ---
Confirmed.

[Bug c++/89404] [7/8/9 Regression] ICE in build_value_init_noctor, at cp/init.c:467

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

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2

[Bug c++/89403] [7/8/9 Regression] ICE in maybe_clone_body, at cp/optimize.c:693

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

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2

[Bug libstdc++/89402] [9 Regression] warning: ‘void _ZNKSt4hashIeEclEe()’ specifies less restrictive attribute than its target

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

Richard Biener  changed:

   What|Removed |Added

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

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

[Bug middle-end/89412] [7/8/9 Regression] gcc ICE in simplify_subreg, at simplify-rtx.c:6273 on i686-linux-gnu

2019-02-20 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89412

--- Comment #3 from Uroš Bizjak  ---
Middle-end wants to create a subreg of BLKmode:

#3  0x00cd5899 in simplify_gen_subreg
(outermode=outermode@entry=E_DCmode, op=op@entry=0x7fffea778240,
innermode=E_BLKmode, byte=byte@entry=...)
at ../../git/gcc/gcc/simplify-rtx.c:6709
6709  newx = simplify_subreg (outermode, op, innermode, byte);
(gdb) p outermode
$1 = E_DCmode
(gdb) p innermode
$2 = E_BLKmode
(gdb) p debug_rtx (op)
(mem/c:BLK (symbol_ref:SI ("d") [flags 0x2] ) [3 d+0
S16 A32])

[Bug other/89347] gc-sections doesn't remove unused bss section variables.

2019-02-20 Thread maninder1.s at samsung dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89347

--- Comment #3 from Maninder Singh  ---
But its not mentioned in gc-section or data-section manual pages, either that
needs updation or it need to be handled by -fdata-section flag only.


https://gcc.gnu.org/onlinedocs/gcc-8.2.0/gcc/Optimize-Options.html#Optimize-Options
 


-ffunction-sections
-fdata-sections
Place each function or data item into its own section in the output file if the
target supports arbitrary sections. The name of the function or the name of the
data item determines the section’s name in the output file.

Use these options on systems where the linker can perform optimizations to
improve locality of reference in the instruction space. Most systems using the
ELF object format have linkers with such optimizations. On AIX, the linker
rearranges sections (CSECTs) based on the call graph. The performance impact
varies.

Together with a linker garbage collection (linker --gc-sections option) these
options may lead to smaller statically-linked executables (after stripping).

On ELF/DWARF systems these options do not degenerate the quality of the debug
information. There could be issues with other object files/debug info formats.

Only use these options when there are significant benefits from doing so. When
you specify these options, the assembler and linker create larger object and
executable files and are also slower. These options affect code generation.
They prevent optimizations by the compiler and assembler using relative
locations inside a translation unit since the locations are unknown until link
time. An example of such an optimization is relaxing calls to short call
instructions.

[Bug fortran/89413] [PDT] ICE in resolve_fl_derived, at fortran/resolve.c:14392

2019-02-20 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89413

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-02-20
 CC||pault at gcc dot gnu.org
 Blocks||82173
Summary|[8/9 Regression] ICE in |[PDT] ICE in
   |resolve_fl_derived, at  |resolve_fl_derived, at
   |fortran/resolve.c:14392 |fortran/resolve.c:14392
 Ever confirmed|0   |1

--- Comment #1 from Dominique d'Humieres  ---
Confirmed, but it is not exactly a regression.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82173
[Bug 82173] [meta-bug] Parameterized derived type errors

[Bug c/87924] OpenACC wait clauses without async-arguments

2019-02-20 Thread cltang at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87924

--- Comment #4 from Chung-Lin Tang  ---
Author: cltang
Date: Wed Feb 20 10:09:53 2019
New Revision: 269036

URL: https://gcc.gnu.org/viewcvs?rev=269036&root=gcc&view=rev
Log:
Correction of ChangeLog entry, Thomas provided the code for this change.

2019-02-19  Thomas Schwinge  

PR c/87924
* openmp.c (gfc_match_omp_clauses): Add representation of wait clause
without argument as 'wait (GOMP_ASYNC_NOVAL)'.


Modified:
trunk/gcc/fortran/ChangeLog

[Bug fortran/89365] Inquiry functions for assumed rank objects fail

2019-02-20 Thread Bader at lrz dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89365

--- Comment #3 from Bader at lrz dot de  ---
I agree with Harald's assessment. The test case as delivered by me is indeed
incorrectly written for the POINTER and ALLOCATABLE cases, in both of which I
believe the bounds should be taken from the actual argument (versus remapping
them). This has historical reasons (ifort has the POINTER and ALLOCATABLE case
wrong), and the F2018 drafts did pick up some additional words in the last
phase of corrections (see 8.5.8.7 para 1: 

"The bounds and shape of an assumed-rank entity with the ALLOCATABLE or POINTER
attribute are determined as specified in 8.5.8.4."

Regards
Reinhold

[Bug driver/88262] gcc uses crt1.o in place of Scrt1.o when the main function is in a PIC shared lib

2019-02-20 Thread egeyar.bagcioglu at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88262

--- Comment #20 from Egeyar Bagcioglu  ---
This issue is fixed in gold for binutils 2.33:
https://sourceware.org/bugzilla/show_bug.cgi?id=23870

[Bug fortran/89365] Inquiry functions for assumed rank objects fail

2019-02-20 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89365

--- Comment #4 from Dominique d'Humieres  ---
> I agree with Harald's assessment. The test case as delivered by me
> is indeed incorrectly written for the POINTER and ALLOCATABLE cases,
> in both of which I believe the bounds should be taken from the actual
> argument (versus remapping them).

So is the PR valid or not?

[Bug fortran/89365] Inquiry functions for assumed rank objects fail

2019-02-20 Thread Bader at lrz dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89365

--- Comment #5 from Bader at lrz dot de  ---
The corrected test case passes all tests, so the PR can be closed. Sorry for
the noise.

[Bug c++/84536] [7/8/9 Regression] ICE with non-type template parameter

2019-02-20 Thread paolo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84536

--- Comment #3 from paolo at gcc dot gnu.org  ---
Author: paolo
Date: Wed Feb 20 10:47:02 2019
New Revision: 269037

URL: https://gcc.gnu.org/viewcvs?rev=269037&root=gcc&view=rev
Log:
/cp
2019-02-20  Paolo Carlini  

PR c++/84536
* pt.c (tsubst_init): Diagnose an initializer expanding to an
empty list of expressions; tweak wrt dependent types.
(regenerate_decl_from_template): For VAR_DECLs call tsubst_init
instead of tsubst_expr.

/testsuite
2019-02-20  Paolo Carlini  

PR c++/84536
* g++.dg/cpp1y/var-templ60.C: New.

Added:
trunk/gcc/testsuite/g++.dg/cpp1y/var-templ60.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog

[Bug tree-optimization/88973] [8/9 Regression] New -Wrestrict warning since r268048

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

--- Comment #6 from Martin Liška  ---
(In reply to Bruce Korb from comment #5)
> (In reply to Martin Sebor from comment #4)
> 
> > canonicalize_pathname.c: In function ‘canonicalize_pathname’:
> > canonicalize_pathname.c:61:2: warning: ‘strcpy’ accessing 1 byte at offsets
> > [0, 9223372036854775807] and [0, 9223372036854775807] may overlap 1 byte at
> > offset 0 [-Wrestrict]
> >61 |  strcpy( result + start + 1, result + i + 2 );
> >   |  ^~~~
> > strcpy (0x217f265 = "//bar", 0x217f267 = "bar"): 3
> > /foo/bar
> 
> I have a copy of this code in my project, but I haven't been writing code
> for several years now. How was this fixed? The best fix would be to
> determine the string length and do memmove-s, but that's enough fiddling
> that I'd have to clear cobwebs and spend a mess of time. If someone's
> already done that, ... :)

There's an upstream bug:
https://sourceforge.net/p/autogen/bugs/193/
and I'm working on patch candidate.

[Bug tree-optimization/88973] [8/9 Regression] New -Wrestrict warning since r268048

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

--- Comment #7 from Martin Liška  ---
(In reply to Martin Sebor from comment #4)
> I've created a test case using the canonicalize_pathname function showing
> that it does, in fact, cause an overlap to take place.  The following line
> in the output of the test case
> 

Thank you very much Martin for it! Btw. ASAN prints nice error about
overlapping arguments:

gcc -DPATHNAME='"/home//marxin"'  -Wall canonicalize_pathname.c
-fsanitize=address -g && ./a.out
=
==14653==ERROR: AddressSanitizer: strcpy-param-overlap: memory ranges
[0x60200016,0x6020001d) and [0x60200017, 0x6020001e) overlap
#0 0x772051de  (/usr/lib64/libasan.so.5+0x4b1de)
#1 0x40137c in canonicalize_pathname /tmp/canonicalize_pathname.c:25
#2 0x401857 in main /tmp/canonicalize_pathname.c:64
#3 0x77018b7a in __libc_start_main ../csu/libc-start.c:308
#4 0x4010e9 in _start (/tmp/a.out+0x4010e9)

[Bug rtl-optimization/89414] New: wrong code with -Og -fno-forward-propagate -fno-tree-fre

2019-02-20 Thread zsojka at seznam dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89414

Bug ID: 89414
   Summary: wrong code with -Og -fno-forward-propagate
-fno-tree-fre
   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: armv7a-hardfloat-linux-gnueabi

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

Output:
$ armv7a-hardfloat-linux-gnueabi-gcc -Og -fno-forward-propagate -fno-tree-fre
testcase.c -static
$ qemu-arm ./a.out 
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Segmentation fault

$ armv7a-hardfloat-linux-gnueabi-gcc -v
Using built-in specs.
COLLECT_GCC=/repo/gcc-trunk/binary-latest-armv7a-hardfloat/bin/armv7a-hardfloat-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-269006-checking-yes-rtl-df-extra-armv7a-hardfloat/bin/../libexec/gcc/armv7a-hardfloat-linux-gnueabi/9.0.1/lto-wrapper
Target: armv7a-hardfloat-linux-gnueabi
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 --with-float=hard --with-fpu=vfpv4
--with-arch=armv7-a --with-sysroot=/usr/armv7a-hardfloat-linux-gnueabi
--build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu
--target=armv7a-hardfloat-linux-gnueabi
--with-ld=/usr/bin/armv7a-hardfloat-linux-gnueabi-ld
--with-as=/usr/bin/armv7a-hardfloat-linux-gnueabi-as --disable-libstdcxx-pch
--prefix=/repo/gcc-trunk//binary-trunk-269006-checking-yes-rtl-df-extra-armv7a-hardfloat
Thread model: posix
gcc version 9.0.1 20190219 (experimental) (GCC) 


In the assembly output:

foo:
@ args = 8, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push{r4, lr}@
@ testcase.c:5:   a = __builtin_parityll (a);
movwr4, #:lower16:a @ tmp124,
movtr4, #:upper16:a @ tmp124,
ldr r0, [r4]@ a, a
asr r1, r0, #31 @, a,
bl  __paritydi2 @
@ testcase.c:5:   a = __builtin_parityll (a);
str r0, [r4]@ tmp139, a
@ testcase.c:6:   b = __builtin_bswap64 (h);
mov r2, #0  @ tmp131,
@ testcase.c:6:   b = __builtin_bswap64 (h);
movwr3, #:lower16:b @ tmp132,
movtr3, #:upper16:b @ tmp132,
str r2, [r3]@ tmp131, b
@ testcase.c:7:   __builtin_memset (&h, b, 1);
strbr2, [sp, #4]@ tmp131, MEM[(void *)&h]
*** ^^^ this overwrites the return address *** ('h' has no stack slot
allocated)


@ testcase.c:9: }
mov r0, r2  @, tmp131
pop {r4, pc}@

[Bug sanitizer/89409] [9 Regression] FAIL: c-c++-common/ubsan/div-by-zero-[67].c

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

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

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

[Bug middle-end/89415] gcc.dg/sinatan-1.c FAILs

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

Rainer Orth  changed:

   What|Removed |Added

   Target Milestone|--- |9.0

[Bug middle-end/89415] New: gcc.dg/sinatan-1.c FAILs

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

Bug ID: 89415
   Summary: gcc.dg/sinatan-1.c FAILs
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ro at gcc dot gnu.org
CC: rguenth at gcc dot gnu.org
  Target Milestone: ---
Target: sparc-sun-solaris2.11, aarch64-unknown-linux-gnu,
hppa2.0w-hp-hpux11.11, hppa64-hp-hpux11.11,
i586-unknown-freebsd11.2,   ia64-suse-linux-gnu,
moxie-unknown-elf, s390x-ibm-linux-gnu,
spu-unknown-elf, x86_64-unknown-freebsd11.2,
x86_64-w64-mingw32

Between 20190218 (r268990) and 20190219 (r269021), the gcc.dg/sinatan-1.c began
to FAIL:

+FAIL: gcc.dg/sinatan-1.c execution test

I see it on 32 and 64-bit Solaris/SPARC, but quite a number of other targets is
affected, too.

Thread 2 received signal SIGABRT, Aborted.
[Switching to Thread 1 (LWP 1)]
0xfec7e740 in __lwp_sigqueue () from /lib/libc.so.1
(gdb) where
#0  0xfec7e740 in __lwp_sigqueue () from /lib/libc.so.1
#1  0xfebb99f0 in raise () from /lib/libc.so.1
#2  0xfeb8b2d0 in abort () from /lib/libc.so.1
#3  0x0001126c in main ()
at /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/sinatan-1.c:85

Maybe this is due to

2019-02-19  Richard Biener  

PR middle-end/88074
* toplev.c (do_compile): Initialize mpfr's exponent range
based on available float modes.

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

[Bug middle-end/89415] gcc.dg/sinatan-1.c FAILs

2019-02-20 Thread clyon at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89415

Christophe Lyon  changed:

   What|Removed |Added

 CC||clyon at gcc dot gnu.org

--- Comment #1 from Christophe Lyon  ---
Yes, bisect confirmed it's due to that commit (r269015)

[Bug middle-end/89415] gcc.dg/sinatan-1.c FAILs

2019-02-20 Thread clyon at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89415

--- Comment #2 from Christophe Lyon  ---
I'm not sure it's worth opening another regression report, but that same commit
creates regressions in fortran on arm:
FAIL: gfortran.dg/integer_exponentiation_3.F90   -O0   (test for warnings, line
173)
FAIL: gfortran.dg/integer_exponentiation_3.F90   -O1   (test for warnings, line
173)
FAIL: gfortran.dg/integer_exponentiation_3.F90   -O2   (test for warnings, line
173)
FAIL: gfortran.dg/integer_exponentiation_3.F90   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions   (test for warnings,
line 173)
FAIL: gfortran.dg/integer_exponentiation_3.F90   -O3 -g   (test for warnings,
line 173)
FAIL: gfortran.dg/integer_exponentiation_3.F90   -Os   (test for warnings, line
173)

[Bug c++/67064] Register asm variable broken

2019-02-20 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67064

Eric Gallager  changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution|--- |FIXED

--- Comment #34 from Eric Gallager  ---
(In reply to Sebastian Huber from comment #33)
> (In reply to Eric Gallager from comment #32)
> > (In reply to Martin Liška from comment #31)
> > > Can the bug be marked as resolved?
> > 
> > WAITING on a reply.
> 
> From my point of view it is fixed
> 
> I guess since Daniel Gutson didn't get an answer in the last four years, he
> will unlikely get it in the future.

ok, closing then.

[Bug middle-end/89415] gcc.dg/sinatan-1.c FAILs

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

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek  ---
See https://gcc.gnu.org/ml/gcc-patches/2019-02/msg01650.html

[Bug c++/89405] [8/9 Regression] ICE in import_export_decl, at cp/decl2.c:2959

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

Jakub Jelinek  changed:

   What|Removed |Added

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

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

Untested fix.

[Bug fortran/89385] Incorrect members of C descriptor for an allocatable object

2019-02-20 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89385

Dominique d'Humieres  changed:

   What|Removed |Added

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

--- Comment #2 from Dominique d'Humieres  ---
I get

FAIL: this->elem_len -7
FAIL: this->type
FAIL: this->rank 0
FAIL: this->attribute
FAIL: dim[0]
FAIL: dim[1]
FAIL: that->elem_len
FAIL: that->type
FAIL: that->rank
FAIL: that->attribute
FAIL: dim[0]

Due to

#include "ISO_Fortran_binding.h"

this PR compiles on trunk (9.0) only.

[Bug fortran/89348] Fortran Command Options documentation fixes

2019-02-20 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89348

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-02-20
 Ever confirmed|0   |1

--- Comment #2 from Dominique d'Humieres  ---
Patch approved at https://gcc.gnu.org/ml/fortran/2019-02/msg00116.html.

As a general comment, there is no point to attach change logs to bugzilla: 
it is enough to add them when submitting the patches to the mailing lists.

I also think there is no need to file a PR for such trivialities.

[Bug target/86487] [7/8/9 Regression] insn does not satisfy its constraints on arm big-endian

2019-02-20 Thread avieira at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86487

--- Comment #12 from avieira at gcc dot gnu.org ---
Author: avieira
Date: Wed Feb 20 14:11:43 2019
New Revision: 269039

URL: https://gcc.gnu.org/viewcvs?rev=269039&root=gcc&view=rev
Log:
[GCC] PR target/86487: fix the way 'uses_hard_regs_p' handles paradoxical
subregs

gcc/ChangeLog:
2019-02-20 Andre Vieira  

PR target/86487
* lra-constraints.c(uses_hard_regs_p): Fix handling of
paradoxical SUBREGS.

gcc/testsuite/ChangeLog:
2019-02-20 Andre Vieira  

PR target/86487
* gcc.target/arm/pr86487.c: New.

Added:
trunk/gcc/testsuite/gcc.target/arm/pr86487.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/lra-constraints.c
trunk/gcc/testsuite/ChangeLog

[Bug fortran/89366] Fails to compile BIND(C) interface with assumed-length character argument

2019-02-20 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89366

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2019-02-20
 Ever confirmed|0   |1

--- Comment #1 from Dominique d'Humieres  ---
It has been my understanding that C interoperable CHARACTER should be of length
1, 
e.g., pr46496 comment 0, item f.

Has it been changed in the  extensions in C interoperable? 
If yes, could you please provide a pointer?

[Bug fortran/46496] Missing strlen check / interop warnings with BIND(C) and non-C_* kinds

2019-02-20 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46496

--- Comment #5 from Dominique d'Humieres  ---
b) -Wno-c-binding-type silences the warnings related to C binding.

It remains in this PR the missed warnings in d) and e).

[Bug rtl-optimization/89414] wrong code with -Og -fno-forward-propagate -fno-tree-fre

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

Jakub Jelinek  changed:

   What|Removed |Added

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

--- Comment #1 from Jakub Jelinek  ---
Can reproduce even with r208764 (oldest arm cross I have around).
Looks like a backend issue to me, in *.ira we still have:
(insn 32 42 33 2 (set (mem/c:QI (reg/f:SI 103 afp) [0 MEM[(void *)&h]+0 S1 A8])
(subreg:QI (reg:SI 132) 0)) "pr89414.c":7:3 189 {*arm_movqi_insn}
 (expr_list:REG_DEAD (reg:SI 132)
(nil)))
and it is eliminated to:
(insn 32 42 33 2 (set (mem/c:QI (plus:SI (reg/f:SI 13 sp)
(const_int 4 [0x4])) [0 MEM[(void *)&h]+0 S1 A8])
(reg:QI 2 r2 [132])) "pr89414.c":7:3 189 {*arm_movqi_insn}
 (nil))
even when pro_and_epilogue adds:
(insn/f 51 8 52 2 (parallel [
(set (mem/c:BLK (pre_modify:SI (reg/f:SI 13 sp)
(plus:SI (reg/f:SI 13 sp)
(const_int -8 [0xfff8]))) [2  A8])
(unspec:BLK [
(reg:SI 4 r4)
] UNSPEC_PUSH_MULT))
(use (reg:SI 14 lr))
]) "pr89414.c":4:1 -1
 (expr_list:REG_FRAME_RELATED_EXPR (sequence [
(set/f (reg/f:SI 13 sp)
(plus:SI (reg/f:SI 13 sp)
(const_int -8 [0xfff8])))
(set/f (mem/c:SI (reg/f:SI 13 sp) [2  S4 A32])
(reg:SI 4 r4))
(set/f (mem/c:SI (plus:SI (reg/f:SI 13 sp)
(const_int 4 [0x4])) [2  S4 A32])
(reg:SI 14 lr))
])
(nil)))
in the prologue, so sp+4 can't be right.  So, either something changed in the
frame size computation between RA and pro_and_epilogue (that would be a bug) or
the afp -> sp + offset elimination is incorrect.

[Bug middle-end/89415] [9 Regression] gcc.dg/sinatan-1.c FAILs

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

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P1
Summary|gcc.dg/sinatan-1.c FAILs|[9 Regression]
   ||gcc.dg/sinatan-1.c FAILs

[Bug fortran/89366] Fails to compile BIND(C) interface with assumed-length character argument

2019-02-20 Thread Bader at lrz dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89366

--- Comment #2 from Bader at lrz dot de  ---
Fortran 2018 FDIS section 18.3.6, para 2, item 5, bullet 2: 

(5) any dummy argument without the VALUE attribute corresponds to a formal
parameter of the prototype that is of a pointer type, and either
• the dummy argument is interoperable with an entity of the referenced type
(ISO/IEC 9899:2011, 6.2.5, 7.19, and 7.20.1) of the formal parameter,
• the dummy argument is a nonallocatable nonpointer variable of type CHARACTER
with assumed character length and the formal parameter is a pointer to
CFI_cdesc_t,

Note that as for all Fortran objects that don't have a C analog,
interoperability is on the level of the procedure interface (not the object!),
and the matching entity on the C side is the descriptor.

Regards
Reinhold

[Bug rtl-optimization/89414] wrong code with -Og -fno-forward-propagate -fno-tree-fre

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

--- Comment #2 from Jakub Jelinek  ---
-march=armv7-a -mfpu=vfpv4 -mfloat-abi=hard -Og -fno-forward-propagate
-fno-tree-fre is what I've been using for options.

[Bug fortran/89366] Fails to compile BIND(C) interface with assumed-length character argument

2019-02-20 Thread Bader at lrz dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89366

--- Comment #3 from Bader at lrz dot de  ---
Created attachment 45771
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45771&action=edit
C code to be called

Added the C side function call.

[Bug libstdc++/89416] New: [regression] std::vector::push_back no longer builds.

2019-02-20 Thread emilio at crisal dot io
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89416

Bug ID: 89416
   Summary: [regression] std::vector::push_back no longer builds.
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: emilio at crisal dot io
  Target Milestone: ---

Created attachment 45772
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45772&action=edit
Test-case.

The attached test-case no longer builds.

It's a reduction from:

 
https://searchfox.org/mozilla-central/rev/93905b660fc99a5d52b683690dd26471daca08c8/tools/fuzzing/libfuzzer/FuzzerDriver.cpp#244

Both g++ and clang error. g++ errors with:

In file included from
/usr/include/c++/9/x86_64-redhat-linux/bits/c++allocator.h:33,
 from /usr/include/c++/9/bits/allocator.h:46,
 from /usr/include/c++/9/memory:63,
 from /usr/include/c++/9/thread:39,
 from t.cpp:1:
/usr/include/c++/9/ext/new_allocator.h: In instantiation of ‘void
__gnu_cxx::new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up =
std::thread; _Args = {const std::thread&}; _Tp = std::thread]’:
/usr/include/c++/9/bits/alloc_traits.h:226:6:   required by substitution of
‘template static std::true_type
std::allocator_traits
>::__construct_helper::__test<_Alloc2,
 >(int) [with _Alloc2 = fuzzer_allocator;
 = ]’
/usr/include/c++/9/bits/alloc_traits.h:233:40:   required from ‘struct
std::allocator_traits
>::__construct_helper’
/usr/include/c++/9/bits/alloc_traits.h:250:2:   required by substitution of
‘template static
std::_Require >::__construct_helper<_Tp,
_Args>::type>, std::is_constructible<_Tp, _Args ...> > >
std::allocator_traits >::_S_construct<_Tp, _Args
...>(fuzzer_allocator&, _Tp*, _Args&& ...) [with _Tp =
std::thread; _Args = {const std::thread&}]’
/usr/include/c++/9/bits/alloc_traits.h:350:26:   required by substitution of
‘template static decltype
(std::allocator_traits >::_S_construct(__a, __p,
(forward<_Args>)(std::allocator_traits::construct::__args)...))
std::allocator_traits >::construct<_Tp, _Args
...>(fuzzer_allocator&, _Tp*, _Args&& ...) [with _Tp =
std::thread; _Args = {const std::thread&}]’
/usr/include/c++/9/bits/alloc_traits.h:587:38:   required by substitution of
‘template static std::true_type
std::__is_alloc_insertable_impl >::_M_select<_Up,
_Tp,  >(int) [with _Up = const std::thread&; _Tp =
std::thread;  = ]’
/usr/include/c++/9/bits/alloc_traits.h:598:57:   required from ‘class
std::__is_alloc_insertable_impl >’
/usr/include/c++/9/bits/alloc_traits.h:616:12:   required from ‘struct
std::__is_move_insertable >’
/usr/include/c++/9/bits/stl_vector.h:446:28:   required from ‘static constexpr
bool std::vector<_Tp, _Alloc>::_S_use_relocate() [with _Tp = std::thread;
_Alloc = fuzzer_allocator]’
/usr/include/c++/9/bits/vector.tcc:459:44:   required from ‘void
std::vector<_Tp, _Alloc>::_M_realloc_insert(std::vector<_Tp, _Alloc>::iterator,
_Args&& ...) [with _Args = {void (&)()}; _Tp = std::thread; _Alloc =
fuzzer_allocator; std::vector<_Tp, _Alloc>::iterator =
__gnu_cxx::__normal_iterator > >; typename std::_Vector_base<_Tp,
_Alloc>::pointer = std::thread*]’
/usr/include/c++/9/bits/vector.tcc:121:4:   required from ‘void
std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {void (&)()};
_Tp = std::thread; _Alloc = fuzzer_allocator]’
t.cpp:30:30:   required from here
/usr/include/c++/9/ext/new_allocator.h:145:20: error: use of deleted function
‘std::thread::thread(const std::thread&)’
  145 |  noexcept(noexcept(::new((void *)__p)
  |^~
  146 |_Up(std::forward<_Args>(__args)...)))
  |~~~
In file included from t.cpp:1:
/usr/include/c++/9/thread:142:5: note: declared here
  142 | thread(const thread&) = delete;
  | ^~


clang++ errors with:

In file included from t.cpp:1:
In file included from
/usr/bin/../lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/thread:39:
In file included from
/usr/bin/../lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/memory:63:
In file included from
/usr/bin/../lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/allocator.h:46:
In file included from
/usr/bin/../lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/x86_64-redhat-linux/bits/c++allocator.h:33:
/usr/bin/../lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/ext/new_allocator.h:146:8:
error: call to deleted constructor of 'std::thread'
_Up(std::forward<_Args>(__args)...)))
^   ~~~
/usr/bin/../lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/alloc_traits.h:226:52:
note: in instantiation of exception specification for
  'construct' requested here
typename = decltype(std::declval<_Alloc2*>()->construct(

[Bug middle-end/89091] ICE: Segmentation fault (in tree_class_check)

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

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

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

I'd just return NULL in that case.  While in theory we could just
build_nonstandard_integer_type or similar, I think for these > 64 bit bitfields
it will be hardly a win and we'd need to ensure the backend will be able to
deal with those types.

[Bug fortran/89366] Fails to compile BIND(C) interface with assumed-length character argument

2019-02-20 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89366

--- Comment #4 from Dominique d'Humieres  ---
> Fortran 2018 FDIS section 18.3.6, para 2, item 5, bullet 2: 

On my draft it is probably

18.3.7 Interoperability of procedures and procedure interfaces


For

  character(kind=c_char,len=:), allocatable :: s2
  character(kind=c_char,len=:), pointer :: s3

> • the dummy argument is a nonallocatable nonpointer variable of type
> CHARACTER with assumed character length and the formal parameter
> is a pointer to CFI_cdesc_t,

does not seem to apply.

Is it not rather

> • the dummy argument is allocatable, assumed-shape, assumed-rank,
> or a pointer without the CONTIGUOUS attribute, and the formal parameter
> is a pointer to CFI_cdesc_t?

[Bug middle-end/89412] [7/8/9 Regression] gcc ICE in simplify_subreg, at simplify-rtx.c:6273 on i686-linux-gnu

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

--- Comment #4 from Jakub Jelinek  ---
Started with r237429.  Don't know why this has anything to do with libgfortran
powerpc64le-linux bootstrap, that worked for me just fine in 8.3-rc1.

Slightly adjusted testcase:
struct S { double a, b; } d;
int e;
double f;

void
foo ()
{
  _Complex h;
  while (e)
{
  f = h;
  *(struct S *) &h = d;
}
}

[Bug middle-end/89412] [7/8/9 Regression] gcc ICE in simplify_subreg, at simplify-rtx.c:6273 on i686-linux-gnu

2019-02-20 Thread doko at debian dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89412

--- Comment #5 from Matthias Klose  ---
bug title was a cut and paste error

[Bug c/89410] [7/8/9 Regression] ICE in calculate_line_spans, at diagnostic-show-locus.c:1237 after #line

2019-02-20 Thread jg at jguk dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89410

--- Comment #5 from Jonny Grant  ---
What appears to be a related issue. the "line number out of supported range"
does not show, even when gcc outputs a negative line number. Three test cases
below

I believe that the #line that pushes beyond 2^31  (The limit on my 64bit
machine) does not cause an error.  Only the #pragma message following does.

Just a note:
// 2^31 - 1.  Any more than this, and A1 overflows as "line3.c:-2147483648:9:
note: #pragma message: A1"
#line 2147483647

Anyway, the output

Current output from gcc trunk godbolt:

#1 with x86-64 gcc (trunk)
: In function 'main':
:-2147483647:9: note: #pragma message: B 
Compiler returned: 0


What I expected:
#1 with x86-64 gcc (trunk)
: In function 'main':
: warning: #line number 2147483649 out of supported range
:-2147483647:9: note: #pragma message: B 
Compiler returned: 0


The program:
int main(void)
{
#line 2147483649
#pragma message "B "
}


It would be good if GCC could change to show the offending number, and write it
as #line. As GCC does in other output:

int main(void)
{
#line FOO
}


#1 with x86-64 gcc (trunk)
: In function 'main':
:3:7: error: "FOO" after #line is not a positive integer
3 | #line FOO
  |   ^~~
Compiler returned: 1





Another program which does manage to show "warning: line number out of out of
supported range"



#1 with x86-64 gcc (trunk)
: In function 'main':
:3:7: warning: line number out of range
3 | #line 112147483647
  |   ^~~~
Compiler returned: 0



int main(void)
{
#line 112147483647
}

[Bug target/89397] [7/8 Regression] ICE in build_call_expr_loc_array at gcc/tree.c:11563 since r229082

2019-02-20 Thread uros at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89397

--- Comment #5 from uros at gcc dot gnu.org ---
Author: uros
Date: Wed Feb 20 15:23:47 2019
New Revision: 269040

URL: https://gcc.gnu.org/viewcvs?rev=269040&root=gcc&view=rev
Log:
Revert:
PR target/89397
* config/i386/i386.c (ix86_option_override_internal): Set
opts->x_ix86_fpmath to FPMATH_387 when SSE is disabled.

gcc/testsuite/

PR target/89397
* gcc.target/i386/pr89397.c: New test.

Removed:
trunk/gcc/testsuite/gcc.target/i386/pr89397.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/testsuite/ChangeLog

[Bug middle-end/89091] ICE: Segmentation fault (in tree_class_check)

2019-02-20 Thread dmalcolm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89091

David Malcolm  changed:

   What|Removed |Added

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

--- Comment #7 from David Malcolm  ---
Jakub: should we go with your patch?

[Bug middle-end/89091] ICE: Segmentation fault (in tree_class_check)

2019-02-20 Thread dmalcolm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89091

--- Comment #6 from David Malcolm  ---
Created attachment 45774
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45774&action=edit
Patch

I came up with this patch; it survives bootstrap®rtesting, but am not sure
if it's correct.

[Bug c/89410] [7/8/9 Regression] ICE in calculate_line_spans, at diagnostic-show-locus.c:1237 after #line

2019-02-20 Thread jg at jguk dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89410

--- Comment #6 from Jonny Grant  ---
Could this show the offending number in the "line number out of range" message?
And even the origin of the LINE1 macro too?

Actual:
#1 with x86-64 gcc (trunk)
: In function 'main':
:4:7: warning: line number out of range
4 | #line LINE1
  |   ^
Compiler returned: 0


Expected eg:
#1 with x86-64 gcc (trunk)
: In function 'main':
:4:7: warning: line number 112147483647 out of range
4 | #line LINE1
  |   ^

 LINE1 was defined in header.h:10

Compiler returned: 0



#define LINE1 112147483647
int main(void)
{
#line LINE1
}

[Bug fortran/89366] Fails to compile BIND(C) interface with assumed-length character argument

2019-02-20 Thread Bader at lrz dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89366

--- Comment #5 from Bader at lrz dot de  ---
No. The dummy argument of the procedure process_string is declared

character(kind=c_char,len=*), intent(in) :: this

there is no POINTER or ALLOCATABLE attribute there. 

Regards
Reinhold

[Bug rtl-optimization/88347] ICE in begin_move_insn, at sched-ebb.c:175

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

Segher Boessenkool  changed:

   What|Removed |Added

   Priority|P3  |P2

[Bug c++/87844] ICE in tsubst_copy using non-constant expression as a non-type template argument

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

Marek Polacek  changed:

   What|Removed |Added

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

[Bug middle-end/89091] ICE: Segmentation fault (in tree_class_check)

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

--- Comment #8 from Jakub Jelinek  ---
Comment on attachment 45774
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45774
Patch

Well, for the decode_field_reference, I think it is essential not to change
*exp_ if returning NULL, because the caller uses lr_arg/rr_arg without checking
whether it returned NULL or not.  The c_common_type_for_size change is
independent of the rest, I'd find it too risky for GCC9, but could be posted
for GCC10.

Sorry for looking on this, I saw you have it ASSIGNED but didn't see any patch
on gcc-patches nor recent progress in the PR and thought some input might help.

[Bug middle-end/89412] [7/8/9 Regression] gcc ICE in simplify_subreg, at simplify-rtx.c:6273 on i686-linux-gnu

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

Jakub Jelinek  changed:

   What|Removed |Added

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

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

Untested fix.

[Bug target/89397] [7/8 Regression] ICE in build_call_expr_loc_array at gcc/tree.c:11563 since r229082

2019-02-20 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89397

--- Comment #6 from Uroš Bizjak  ---
Index: config/i386/i386.c
===
--- config/i386/i386.c  (revision 269040)
+++ config/i386/i386.c  (working copy)
@@ -50689,7 +50689,7 @@
 static void
 ix86_atomic_assign_expand_fenv (tree *hold, tree *clear, tree *update)
 {
-  if (!TARGET_80387 && !TARGET_SSE_MATH)
+  if (!TARGET_80387 && !(TARGET_SSE && TARGET_SSE_MATH))
 return;
   tree exceptions_var = create_tmp_var_raw (integer_type_node);
   if (TARGET_80387)
@@ -50724,7 +50724,7 @@
   tree update_fldenv = build_call_expr (fldenv, 1, fenv_addr);
   *update = build2 (COMPOUND_EXPR, void_type_node, *update,
update_fldenv);
 }
-  if (TARGET_SSE_MATH)
+  if (TARGET_SSE && TARGET_SSE_MATH)
 {
   tree mxcsr_orig_var = create_tmp_var_raw (unsigned_type_node);
   tree mxcsr_mod_var = create_tmp_var_raw (unsigned_type_node);

[Bug c/89410] [7/8/9 Regression] ICE in calculate_line_spans, at diagnostic-show-locus.c:1237 after #line

2019-02-20 Thread dmalcolm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89410

David Malcolm  changed:

   What|Removed |Added

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

[Bug target/88055] ICE in extract_insn, at recog.c:2305 on ppc64le

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

Segher Boessenkool  changed:

   What|Removed |Added

   Priority|P3  |P2

[Bug c/89410] [7/8/9 Regression] ICE in calculate_line_spans, at diagnostic-show-locus.c:1237 after #line

2019-02-20 Thread jg at jguk dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89410

--- Comment #7 from Jonny Grant  ---
(In reply to Jonny Grant from comment #6)
> Could this show the offending number in the "line number out of range"
> message? And even the origin of the LINE1 macro too?

clang shows the origin of the offending LINE1 macro

#1 with x86-64 clang (trunk)
:4:7: error: #line directive requires a positive integer argument
#line LINE1
  ^
:1:15: note: expanded from macro 'LINE1'
#define LINE1 112147483647
  ^
1 error generated.
Compiler returned: 1

[Bug target/80505] FAIL: gcc.dg/ipa/iinline-attr.c scan-ipa-dump inline "hooray[^\\n]*inline copy in test"

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

Segher Boessenkool  changed:

   What|Removed |Added

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

--- Comment #6 from Segher Boessenkool  ---
This all works now.  Please reopen if you still see FAILs.

[Bug tree-optimization/88973] [8/9 Regression] New -Wrestrict warning since r268048

2019-02-20 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88973

--- Comment #8 from Martin Sebor  ---
The Asan warning is much clearer because it's based on actually observed
values.  This instance of the -Wrestrict warning is based on a heuristic: "we
think the copy may overlap because it is within the same object and we can't
prove that the offsets and the size assure it doesn't happen."

There may be a way to reword the warning to make things a little bit clearer
but I don't think we can match the Asan form.  When the offsets and the size
are completely unbounded we could just avoid printing them altogether.  That
would make it:

  'strcpy' accessing the same array may overlap [-Werror=restrict]

When the size is known it would give us:

  'strcpy' accessing N bytes of the same array may overlap [-Werror=restrict]

and when the offsets are known but the size isn't:

  'strcpy' accessing the same array at offsets [O1, O2] and [O3, O4] may
overlap [-Werror=restrict]

and so on.

There are many forms of the -Wrestrict warning already: singular size (1 byte)
vs plural size (bytes) vs closed range (between X and Y bytes) vs open range (X
or more bytes), constant offsets vs closed ranges ([X, Y]), definitely overlaps
vs may overlap, and others, and because of internationalization most have to be
hardcoded and can't be easily parameterized, so adding a new form into the mix
isn't completely straightforward.

[Bug c++/52130] missing check for matching underlying type during instantiation of enum member of class template

2019-02-20 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52130

Eric Gallager  changed:

   What|Removed |Added

 CC||redi at gcc dot gnu.org

--- Comment #4 from Eric Gallager  ---
What should the correct diagnostic message for it say instead then?

[Bug middle-end/89270] [9 regression] AVR ICE: verify_gimple failed

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

Jakub Jelinek  changed:

   What|Removed |Added

   Priority|P3  |P4
 CC||jakub at gcc dot gnu.org

[Bug sanitizer/89409] [9 Regression] FAIL: c-c++-common/ubsan/div-by-zero-[67].c

2019-02-20 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89409

--- Comment #5 from hjl at gcc dot gnu.org  ---
Author: hjl
Date: Wed Feb 20 16:20:50 2019
New Revision: 269042

URL: https://gcc.gnu.org/viewcvs?rev=269042&root=gcc&view=rev
Log:
libsanitizer: Restore internal_readlink for x32

Cherry-pick compiler-rt revision 354451:

r316591 has

@@ -389,13 +383,11 @@ uptr internal_dup2(int oldfd, int newfd) {
 }

 uptr internal_readlink(const char *path, char *buf, uptr bufsize) {
-#if SANITIZER_NETBSD
-  return internal_syscall_ptr(SYSCALL(readlink), path, buf, bufsize);
-#elif SANITIZER_USES_CANONICAL_LINUX_SYSCALLS
+#if SANITIZER_USES_CANONICAL_LINUX_SYSCALLS
   return internal_syscall(SYSCALL(readlinkat), AT_FDCWD,
   (uptr)path, (uptr)buf, bufsize);
 #else
-  return internal_syscall(SYSCALL(readlink), (uptr)path, (uptr)buf, bufsize);
+  return internal_syscall_ptr(SYSCALL(readlink), path, buf, bufsize);
 #endif
 }

which dropped the (uptr) cast and broke x32.  This patch puts back the
(uptr) cast to restore x32 and fixes:

https://bugs.llvm.org/show_bug.cgi?id=40783

Differential Revision: https://reviews.llvm.org/D58413

PR sanitizer/89409
* sanitizer_common/sanitizer_linux.cc (internal_readlink):
Cherry-pick compiler-rt r354451.

Modified:
trunk/libsanitizer/ChangeLog
trunk/libsanitizer/sanitizer_common/sanitizer_linux.cc

[Bug sanitizer/89308] [8 only] The sanitizers do no longer work on GCC 8 with newer kernels

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

Segher Boessenkool  changed:

   What|Removed |Added

 Status|NEW |SUSPENDED

--- Comment #9 from Segher Boessenkool  ---
We do not currently see problems in practice.  Suspending.

[Bug libgcc/89417] New: helgrind detects a lock order violation inside std::scoped_lock

2019-02-20 Thread federico.kircheis at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89417

Bug ID: 89417
   Summary: helgrind detects a lock order violation inside
std::scoped_lock
   Product: gcc
   Version: 8.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgcc
  Assignee: unassigned at gcc dot gnu.org
  Reporter: federico.kircheis at gmail dot com
  Target Milestone: ---

Created attachment 45776
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45776&action=edit
helgrind log output

Hello,

Im unsure if this is a bug or feature request, depending on who is "wrong"
(g++/valgrind)

I'm using g++ (Debian 8.2.0-14) 8.2.0, and the program is compiled with
following flags: "-std=c++17 -lpthread"

Consider following snippet of code:


int main(){
std::mutex m1;
std::mutex m2;
int data1{};
int data2{};
auto f1 = std::async(std::launch::async, [&](){
std::scoped_lock sl{m1, m2};
++data1;
++data2;
return data1;
});
auto f2 = std::async(std::launch::async, [&](){
std::scoped_lock sl{m2, m1};
++data1;
++data2;
return data2;
});
return f1.get() + f2.get(); // result should be 3
}


helgrind (valgrind-3.14.0) reports that the lock order is violated: error
message attached)


it prints exactly the same error for


int main(){
std::mutex m1;
std::mutex m2;
int data1{};
int data2{};
auto f1 = std::async(std::launch::async, [&](){
std::lock_guard lg1{m1};std::lock_guard lg2{m2};
++data1;
++data2;
return data1;
});
auto f2 = std::async(std::launch::async, [&](){
std::lock_guard lg1{m1};std::lock_guard lg2{m2};
++data1;
++data2;
return data2;
});
return f1.get() + f2.get(); // result should be 3
}


In case helgrind is correct, it seems that there are some issues behind
std::scoped_lock, since it was explicitly designed for solving issues with lock
order.

In case helgrind (and possibly for the same reason other tools) is wrong, this
is would be a feature request.


A possible fix (or improvement) would be for `std::scoped_lock` to sort its
arguments by address (since std::mutex are not copyable or movable, and thus
their address should remain constant):


auto make_lock(std::mutex& m1_, std::mutex& m2_) {
const auto mless = std::less{};
return std::scoped_lock{*std::min(&m1_, &m2_, mless), *std::max(&m1_,
&m2_, mless)}; 
}

int main(){
std::mutex m1;
std::mutex m2;
int data1{};
int data2{};
auto f1 = std::async(std::launch::async, [&](){
auto sl = make_lock(m1,m2);
++data1;
++data2;
return data1;
});
auto f2 = std::async(std::launch::async, [&](){
auto sl = make_lock(m2,m1);
++data1;
++data2;
return data2;
});
return f1.get() + f2.get(); // result should be 3
}


in this case, helgrind does not generate any warning.
I do not know the internal algorithm of `std::scoped_lock`, so it might be
completely wrong, but sorting by address might also avoid possible live-lock
issues.

[Bug c/35592] Want attribute to enable precision loss warning

2019-02-20 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35592

--- Comment #8 from Eric Gallager  ---
Created attachment 45777
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45777&action=edit
testcase

(In reply to felix-gcc from comment #6)
> Sure. For example:
> 
>   char* c=malloc(lseek(somefd,0,SEEK_END);
> 
> on a platform where off_t is 64-bit, but where size_t is 32-bit.  For
> example: i686-linux with #define _FILE_OFFSET_BITS 64.
> 
> Now that I'm thinking about it, would it be possible to have a generic
> overflow warning in that context?  For example,
> 
>   malloc(p->len+1)
> 
> So that gcc sees I'm adding something there, and if the range is not clamped
> down before that gives an error?

I combined those into a testcase which is attached. I thought the new
-Walloc-size-larger-than= warning that (I think it was) Martin added would
catch it, but apparently not?

[Bug c/89410] [7/8/9 Regression] ICE in calculate_line_spans, at diagnostic-show-locus.c:1237 after #line

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

--- Comment #8 from Segher Boessenkool  ---
The C standard does not allow the line number (in a #line directive) to be
smaller than 1 or bigger than 0x7fff.  It says nothing about actually
having this many lines, or overflowing the line number with following lines,
but I suppose we could disallow that as well.

As the ICEs show many parts of GCC assume line numbers increase, so the
wrap-around signed integer is a problem (it is anyway, it's UB in the compiler
itself).  We could make the line number saturate, but this particular ICE won't
go away unless line numbers are strictly increasing (or the code is changed).
Changing the type to 64 bit won't help at all either, of course (we never
actually see source files of 2G lines, already).

[Bug ipa/86395] add support of -fopt-info-inline in inliner

2019-02-20 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86395

Eric Gallager  changed:

   What|Removed |Added

 Status|ASSIGNED|WAITING

--- Comment #7 from Eric Gallager  ---
(In reply to Martin Liška from comment #6)
> David: Can the bug be marked as resolved?

WAITING on a reply

[Bug c/53063] encode group options in the .opt files

2019-02-20 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53063

Eric Gallager  changed:

   What|Removed |Added

 Status|NEW |WAITING

--- Comment #12 from Eric Gallager  ---
(In reply to Martin Liška from comment #11)
> Can the bug be marked as resolved?

WAITING on a reply

[Bug other/84889] Ideas on revamping how we format diagnostics

2019-02-20 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84889

Eric Gallager  changed:

   What|Removed |Added

 Status|ASSIGNED|WAITING

--- Comment #15 from Eric Gallager  ---
(In reply to Martin Liška from comment #14)
> David: Can the bug be marked as resolved?

WAITING on a reply

[Bug d/89418] New: D test cases fail on powerpc64le

2019-02-20 Thread seurer at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89418

Bug ID: 89418
   Summary: D test cases fail on powerpc64le
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: d
  Assignee: ibuclaw at gdcproject dot org
  Reporter: seurer at gcc dot gnu.org
  Target Milestone: ---

FAIL: gdc.test/compilable/ctfe_math.d -O2output-exists ctfe_math.o
FAIL: gdc.test/compilable/ctfe_math.d -O2 -freleaseoutput-exists
ctfe_math.o
FAIL: gdc.test/compilable/ctfe_math.d -freleaseoutput-exists ctfe_math.o
FAIL: gdc.test/compilable/ctfe_math.d -goutput-exists ctfe_math.o
FAIL: gdc.test/compilable/ctfe_math.d -g -O2output-exists ctfe_math.o
FAIL: gdc.test/compilable/ctfe_math.d -g -O2 -freleaseoutput-exists
ctfe_math.o
FAIL: gdc.test/compilable/ctfe_math.d -g -freleaseoutput-exists ctfe_math.o
FAIL: gdc.test/compilable/test5227.d   output-exists test5227.o

spawn -ignore SIGHUP
/home/seurer/gcc/build/gcc-test/gcc/testsuite/gdc8/../../gdc
-B/home/seurer/gcc/build/gcc-test/gcc/testsuite/gdc8/../../
-fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers
-fdiagnostics-color=never
-I/home/seurer/gcc/gcc-test/gcc/testsuite/../../libphobos/libdruntime
-I/home/seurer/gcc/gcc-test/gcc/testsuite/../../libphobos/src
-I/home/seurer/gcc/gcc-test/gcc/testsuite/../../libstdc++-v3/libsupc++ -g
-I/home/seurer/gcc/gcc-test/gcc/testsuite/gdc.test/compilable -c -o ctfe_math.o
compilable/ctfe_math.d
/home/seurer/gcc/gcc-test/libphobos/src/std/math.d:244:5: error: static assert 
"Only 64-bit, 80-bit, and 128-bit reals are supported for LittleEndian CPUs"
compiler exited with status 1

package:
// The following IEEE 'real' formats are currently supported.
version (LittleEndian)
{
static assert(real.mant_dig == 53 || real.mant_dig == 64
   || real.mant_dig == 113,
  "Only 64-bit, 80-bit, and 128-bit reals"~
  " are supported for LittleEndian CPUs");
}
else
{
static assert(real.mant_dig == 53 || real.mant_dig == 106
   || real.mant_dig == 113,
"Only 64-bit and 128-bit reals are supported for BigEndian CPUs."~
" double-double reals have partial support");
}


I don't really know enough about D to diagnose this much further.

[Bug target/80204] macosx-version-min wrong for macOS Sierra 10.12.3

2019-02-20 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80204

Eric Gallager  changed:

   What|Removed |Added

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

--- Comment #7 from Eric Gallager  ---
(In reply to simon from comment #6)
> Selected output from "gcc empty.c -v -Wl,-v" on macOS 10.14.1 (darwin
> 18.2.0), 
> with gcc 9.0.0 20181103 built on x86_64-apple-darwin15, correctly showing 
> -mmacosx-version-min=10.14.0 & equivalents throughout.
> 
> Equivalent success with 8.1.0.
> 
> 
> 
> Target: x86_64-apple-darwin15
> Configured with: /Volumes/Miscellaneous/tmp/gcc/configure
>  --prefix=/Volumes/Miscellaneous/tmp/opt/gcc-9.0.0 
>  --without-libiconv-prefix --disable-libmudflap --disable-libstdcxx-pch 
>  --disable-libsanitizer --disable-libcc1 --disable-libcilkrts 
>  --disable-multilib --disable-nls --enable-languages=c,c++,ada 
>  --disable-bootstrap --host=x86_64-apple-darwin15 
>  --target=x86_64-apple-darwin15 --build=x86_64-apple-darwin15 
>  --with-boot-ldflags='-static-libstdc++ -static-libgcc
> -Wl,-headerpad_max_install_names'
> Thread model: posix
> gcc version 9.0.0 20181103 (experimental) (GCC) 
> COLLECT_GCC_OPTIONS='-v' '-mmacosx-version-min=10.14.0' 
>  '-asm_macosx_version_min=10.14' '-mtune=core2'
>  /opt/gcc-9.0.0/bin/../libexec/gcc/x86_64-apple-darwin15/9.0.0/cc1
>  -quiet -v -iprefix
> /opt/gcc-9.0.0/bin/../lib/gcc/x86_64-apple-darwin15/9.0.0/
>  -D__DYNAMIC__ empty.c -fPIC -quiet -dumpbase empty.c
>  -mmacosx-version-min=10.14.0 -mtune=core2 -auxbase empty -version
>  -o /var/folders/_q/fvnxz46903z9hjh38fz0lyhmgs/T//cc2Zzpgh.s
> 
> 
> 
>  as -arch x86_64 -v -force_cpusubtype_ALL -mmacosx-version-min=10.14
>  -o /var/folders/_q/fvnxz46903z9hjh38fz0lyhmgs/T//cc9YzAyh.o
>  /var/folders/_q/fvnxz46903z9hjh38fz0lyhmgs/T//cc2Zzpgh.s
> Apple LLVM version 10.0.0 (clang-1000.10.44.4)
> Target: x86_64-apple-darwin18.2.0
> Thread model: posix
> InstalledDir: /Library/Developer/CommandLineTools/usr/bin
>  "/Library/Developer/CommandLineTools/usr/bin/clang" -cc1as
>  -triple x86_64-apple-macosx10.14.0 -filetype obj
>  -main-file-name cc2Zzpgh.s -target-cpu penryn -fdebug-compilation-dir
>  /Users/simon/tmp -dwarf-debug-producer Apple LLVM version 10.0.0
> (clang-1000.10.44.4) -dwarf-version=4 -mrelocation-model pic -o
> /var/folders/_q/fvnxz46903z9hjh38fz0lyhmgs/T//cc9YzAyh.o
> /var/folders/_q/fvnxz46903z9hjh38fz0lyhmgs/T//cc2Zzpgh.s
> 
> 
> 
> /usr/bin/ld -dynamic -arch x86_64 -macosx_version_min 10.14.0
>  -weak_reference_mismatches non-weak -o a.out
>  -L/opt/gcc-9.0.0/bin/../lib/gcc/x86_64-apple-darwin15/9.0.0
>  -L/opt/gcc-9.0.0/bin/../lib/gcc
>  -L/opt/gcc-9.0.0/bin/../lib/gcc/x86_64-apple-darwin15/9.0.0/../../..
>  -v /var/folders/_q/fvnxz46903z9hjh38fz0lyhmgs/T//cc9YzAyh.o
>  -no_compact_unwind -lSystem -lgcc_ext.10.5 -lgcc -lSystem -v

So, that sounds like a "yes, this can be closed"

[Bug d/89418] D test cases fail on powerpc64le

2019-02-20 Thread seurer at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89418

seurer at gcc dot gnu.org changed:

   What|Removed |Added

 Target||powerpc64le-unknown-linux-g
   ||nu
   Host||powerpc64le-unknown-linux-g
   ||nu
  Build||powerpc64le-unknown-linux-g
   ||nu

--- Comment #1 from seurer at gcc dot gnu.org ---
Note that these error messages only occur on powerpc64le.  BE seems to work OK.

[Bug c++/88294] [9 Regression] ICE on (invalid) C++11 code: in tsubst_copy, at cp/pt.c:15391

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

--- Comment #6 from Marek Polacek  ---
A similar test crashes:

bool b;

template struct A
{
  void g () noexcept (b) { }
};

int main ()
{
  A a;
  a.g ();
}

but that's PR88987.

[Bug c++/89357] alignas for automatic variables with alignment greater than 16 fails

2019-02-20 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89357

Martin Sebor  changed:

   What|Removed |Added

   Keywords|accepts-invalid |rejects-valid
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-02-20
 CC||msebor at gcc dot gnu.org
 Ever confirmed|0   |1
  Known to fail||8.2.0, 9.0

--- Comment #3 from Martin Sebor  ---
Confirmed.

The reason why the __attribute__ is accepted is because it's not considered a
C++ 11 form of specifying alignment and so it's subject to less checking (done
by the check_cxx_fundamental_alignment_constraints function).

The alignas form is considered a C++ form (has ATTR_FLAG_CXX11 bit set in flags
below) and so makes it pass the first test. The cxx_fundamental_alignment_p()
test also fails (the fundamental alignment on aarch64 is 16).  The third if
statement is entered, followed by the else block of the inner if.  There,
MAX_STACK_ALIGNMENT is used as the upper bound.  On aarch64,
MAX_STACK_ALIGNMENT is defined to STACK_BOUNDARY which is 16, and that is why
alignas(128) is considered invalid.  In contrast, on x86_64,
MAX_STACK_ALIGNMENT is defined to MAX_OFILE_ALIGNMENT, both of which are
2147483648.

So either MAX_STACK_ALIGNMENT on aarch64 is wrong or the test in
check_cxx_fundamental_alignment_constraint is wrong.

MAX_STACK_ALIGNMENT is defined in section 18.5 Storage Layout of the internals
manual as:

  Biggest stack alignment guaranteed by the backend. Use this macro to specify
the maximum alignment of a variable on stack.

and with the following (far more descriptive) comment in gcc/defaults.h:

/* MAX_STACK_ALIGNMENT is the maximum stack alignment guaranteed by
   the backend.  MAX_SUPPORTED_STACK_ALIGNMENT is the maximum best
   effort stack alignment supported by the backend.  If the backend
   supports stack alignment, MAX_SUPPORTED_STACK_ALIGNMENT and
   MAX_STACK_ALIGNMENT are the same.  Otherwise, the incoming stack
   boundary will limit the maximum guaranteed stack alignment.  */

It's a little ambiguous but my guess is that MAX_STACK_ALIGNMENT is meant to be
the maximum alignment the back-end will maintain for the stack pointer in
general, independent of any overaligned variables, and isn't intended as
constraint on the alignment of explicitly overaligned stack variables.  (I can
think of no reason why the back-end would impose any such constraint on the
stack.)  If that's correct the test for MAX_STACK_ALIGNMENT is the bug.  The
test was introduced with the implementation of the alignas specifier in
r192199.

check_cxx_fundamental_alignment_constraints (tree node,
 unsigned align_log,
 int flags)
{
  bool alignment_too_large_p = false;
  unsigned requested_alignment = (1U << align_log) * BITS_PER_UNIT;
  unsigned max_align = 0;

  if ((!(flags & ATTR_FLAG_CXX11) && !warn_cxx_compat)
  || (node == NULL_TREE || node == error_mark_node))
return true;

  if (cxx_fundamental_alignment_p (requested_alignment))
return true;

  if (VAR_P (node))
{
  if (TREE_STATIC (node) || DECL_EXTERNAL (node))
/* For file scope variables and static members, the target supports
   alignments that are at most MAX_OFILE_ALIGNMENT.  */
max_align = MAX_OFILE_ALIGNMENT;
  else
/* For stack variables, the target supports at most
   MAX_STACK_ALIGNMENT.  */
max_align = MAX_STACK_ALIGNMENT;
  if (requested_alignment > max_align)
alignment_too_large_p = true;
}

[Bug c/89410] [7/8/9 Regression] ICE in calculate_line_spans, at diagnostic-show-locus.c:1237 after #line

2019-02-20 Thread jg at jguk dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89410

--- Comment #9 from Jonny Grant  ---
(In reply to Segher Boessenkool from comment #8)
> The C standard does not allow the line number (in a #line directive) to be
> smaller than 1 or bigger than 0x7fff.  It says nothing about actually
> having this many lines, or overflowing the line number with following lines,
> but I suppose we could disallow that as well.

int main(void)
{
#line 0
}

#1 with x86-64 gcc (trunk)
Compiler returned: 0

Maybe zero could be disallowed too.



> As the ICEs show many parts of GCC assume line numbers increase, so the
> wrap-around signed integer is a problem (it is anyway, it's UB in the
> compiler
> itself).  We could make the line number saturate, but this particular ICE
> won't
> go away unless line numbers are strictly increasing (or the code is changed).
> Changing the type to 64 bit won't help at all either, of course (we never
> actually see source files of 2G lines, already).

Not sure what is best here, I'm not knowledgeable of GCC, but maybe setting it
to -1 if it goes above, and then never increment again if(-1 == line) ...

[Bug c/89410] [7/8/9 Regression] ICE in calculate_line_spans, at diagnostic-show-locus.c:1237 after #line

2019-02-20 Thread dmalcolm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89410

--- Comment #10 from David Malcolm  ---
(In reply to Jonny Grant from comment #4)
> There's another related issue, can it be covered on this ticket?
> 
> GCC does not show the part of the output below I marked with after
> commenting out line 4 <-
> 
> #1 with x86-64 gcc (trunk)
> : In function 'main':
> :6:7: warning: line number out of range
> 6 | #line 9223372036854775807<-
>   |   ^~~
> 
> 
> 
> 
> int main(void)
> {
> // Note: Comment back in the next line to reproduce
> //#line 12147483647
> 
> #line 9223372036854775807
> }

What's happening is that GCC is honoring the earlier #line directive, and it
attempts to load the source for that line; there aren't that many lines in the
file, so it doesn't print anything.

[Bug c++/88572] error: braces around scalar initializer - should be a warning

2019-02-20 Thread wjwray at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88572

Will Wray  changed:

   What|Removed |Added

  Attachment #45683|0   |1
is obsolete||

--- Comment #16 from Will Wray  ---
Created attachment 45778
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45778&action=edit
Updated patch addressing review comments

(Updated Change Log entry for decl.c)

Log:
PR c++/88572
* decl.c (reshape_init_r): Remove condition that was incorrectly
rejecting braces around scalar initializer within aggregate init. 
Produce no warning. Add a conditional block rejecting braced-init
of scalar variable, including empty-brace value-initialization
that was being incorrectly accepted.

[Bug fortran/89385] Incorrect members of C descriptor for an allocatable object

2019-02-20 Thread pault at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89385

Paul Thomas  changed:

   What|Removed |Added

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

--- Comment #3 from Paul Thomas  ---
Created attachment 45779
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45779&action=edit
Draft patch

One typo, one stupid error and a couple of misunderstood bits in the standard
led to this.

The testcase provided runs OK and the patch bootstraps and regtests.

I will go through the other PRs that you provided and will see what further
fixes are required.

Thanks

Paul

[Bug c++/89419] New: [8/9 Regression] ICE in is_normal_capture_proxy starting with r253601

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

Bug ID: 89419
   Summary: [8/9 Regression] ICE in is_normal_capture_proxy
starting with r253601
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jakub at gcc dot gnu.org
  Target Milestone: ---

The following testcase started to ICE with -std=c++17 in r253601:
struct A;
struct B {
  struct C { C (); C (C &); } b;
};
struct D { A operator* (); };
struct A {
  template  void foo (T x) { x (this); }
};
struct E {
  auto bar () { return e; }
  D e;
};
struct F { B f; int g; };

int
main ()
{
  E e;
  auto f = *e.bar ();
  auto i = [&] { F g; g.g = 1; auto h = [&](auto) { g.g = 0; }; f.foo (h);
return g; };
}

[Bug c++/89419] [8/9 Regression] ICE in is_normal_capture_proxy starting with r253601

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

Jakub Jelinek  changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
   Priority|P3  |P2
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-02-20
 CC||jason at gcc dot gnu.org
   Target Milestone|--- |8.3
 Ever confirmed|0   |1

[Bug c++/89420] New: [9 Regression] ICE: unexpected expression 'int()' of kind cast_expr

2019-02-20 Thread gs...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89420

Bug ID: 89420
   Summary: [9 Regression] ICE: unexpected expression 'int()' of
kind cast_expr
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gs...@t-online.de
  Target Milestone: ---

Changed between 20181028 and 20181104 (with any -std) :

$ cat z1.cc
template 


$ g++-9-20190217 -c z1.cc
z1.cc:1:11: warning: 'explicit(bool)' only available with -std=c++2a or
-std=gnu++2a
1 | template 
  |   ^~~~
z1.cc:1:26: internal compiler error: unexpected expression 'int()' of kind
cast_expr
1 | template 
  |  ^
0x620880 cxx_eval_constant_expression
../../gcc/cp/constexpr.c:5001
0x622104 cxx_eval_outermost_constant_expr
../../gcc/cp/constexpr.c:5115
0x6243d0 maybe_constant_value(tree_node*, tree_node*, bool)
../../gcc/cp/constexpr.c:5347
0x74ade7 check_narrowing(tree_node*, tree_node*, int, bool)
../../gcc/cp/typeck2.c:931
0x5f95b0 convert_like_real
../../gcc/cp/call.c:7366
0x603692 build_converted_constant_expr(tree_node*, tree_node*, int)
../../gcc/cp/call.c:4215
0x6466d2 build_explicit_specifier(tree_node*, int)
../../gcc/cp/decl.c:16687
0x6ab02c cp_parser_function_specifier_opt
../../gcc/cp/parser.c:14236
0x6b6be0 cp_parser_decl_specifier_seq
../../gcc/cp/parser.c:13945
0x6ce143 cp_parser_parameter_declaration
../../gcc/cp/parser.c:22266
0x6cf003 cp_parser_template_parameter
../../gcc/cp/parser.c:15979
0x6cf003 cp_parser_template_parameter_list
../../gcc/cp/parser.c:15562
0x6d457d cp_parser_explicit_template_declaration
../../gcc/cp/parser.c:27955
0x6d457d cp_parser_template_declaration_after_export
../../gcc/cp/parser.c:27989
0x6d7119 cp_parser_declaration
../../gcc/cp/parser.c:13122
0x6d775e cp_parser_translation_unit
../../gcc/cp/parser.c:4698
0x6d775e c_parse_file()
../../gcc/cp/parser.c:41039
0x7962a0 c_common_parse_file()
../../gcc/c-family/c-opts.c:1155

[Bug c++/89421] New: [9 Regression] ICE in retrieve_specialization, at cp/pt.c:1245

2019-02-20 Thread gs...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89421

Bug ID: 89421
   Summary: [9 Regression] ICE in retrieve_specialization, at
cp/pt.c:1245
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gs...@t-online.de
  Target Milestone: ---

Changed between 2018 and 20181118 :


$ cat z1.cc
template < //>
auto c = []{ return []{}; }();


$ g++-9-20190217 -c z1.cc
z1.cc:2:29: internal compiler error: Segmentation fault
2 | auto c = []{ return []{}; }();
  | ^
0xe32b7f crash_signal
../../gcc/toplev.c:326
0x7c6c75 tree_check(tree_node*, char const*, int, char const*, tree_code)
../../gcc/tree.h:3175
0x7c6c75 retrieve_specialization
../../gcc/cp/pt.c:1245
0x815564 instantiate_decl(tree_node*, bool, bool)
../../gcc/cp/pt.c:24335
0x6ef537 maybe_instantiate_decl
../../gcc/cp/decl2.c:5281
0x6f221c mark_used(tree_node*, int)
../../gcc/cp/decl2.c:5437
0x627aba build_over_call
../../gcc/cp/call.c:7945
0x63b0a8 build_op_call_1
../../gcc/cp/call.c:4671
0x63b0a8 build_op_call(tree_node*, vec**, int)
../../gcc/cp/call.c:4700
0x83c0b3 finish_call_expr(tree_node*, vec**, bool,
bool, int)
../../gcc/cp/semantics.c:2586
0x78cad6 cp_parser_postfix_expression
../../gcc/cp/parser.c:7373
0x79bc95 cp_parser_unary_expression
../../gcc/cp/parser.c:8459
0x77347f cp_parser_cast_expression
../../gcc/cp/parser.c:9345
0x773c92 cp_parser_binary_expression
../../gcc/cp/parser.c:9446
0x774da9 cp_parser_assignment_expression
../../gcc/cp/parser.c:9742
0x774705 cp_parser_constant_expression
../../gcc/cp/parser.c:10026
0x774d51 cp_parser_initializer_clause
../../gcc/cp/parser.c:22702
0x779737 cp_parser_initializer
../../gcc/cp/parser.c:22642
0x79e683 cp_parser_default_argument
../../gcc/cp/parser.c:22537
0x79e683 cp_parser_parameter_declaration
../../gcc/cp/parser.c:22430

[Bug c++/89420] [9 Regression] ICE: unexpected expression 'int()' of kind cast_expr

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

Marek Polacek  changed:

   What|Removed |Added

   Priority|P3  |P2

[Bug c++/89420] [9 Regression] ICE: unexpected expression 'int()' of kind cast_expr

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

Marek Polacek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2019-02-20
 CC||mpolacek at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |mpolacek at gcc dot 
gnu.org
   Target Milestone|--- |9.0
 Ever confirmed|0   |1

--- Comment #1 from Marek Polacek  ---
r265641

[Bug c++/89422] New: [8/9 Regression] ICE in field_byte_offset, at dwarf2out.c:19086

2019-02-20 Thread gs...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89422

Bug ID: 89422
   Summary: [8/9 Regression] ICE in field_byte_offset, at
dwarf2out.c:19086
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gs...@t-online.de
  Target Milestone: ---

Started with gcc-8 and option -g :


$ cat z1.cc
template  struct S
{
  friend void foo (int a = []{ return 0; }()) {}
  int b;
};
S<0> t;



$ g++-9-20190217 -c z1.cc
$
$ g++-9-20190217 -c z1.cc -g
z1.cc: In instantiation of 'struct S<0>':
z1.cc:6:6:   required from here
z1.cc:3:28: internal compiler error: Segmentation fault
3 |   friend void foo (int a = []{ return 0; }()) {}
  |^~~
0xba166f crash_signal
../../gcc/toplev.c:326
0x8ac58e field_byte_offset
../../gcc/dwarf2out.c:19086
0x8ad27d add_data_member_location_attribute
../../gcc/dwarf2out.c:19365
0x8adb96 gen_field_die
../../gcc/dwarf2out.c:24290
0x898b5f gen_field_die
../../gcc/dwarf2out.c:24266
0x898b5f gen_decl_die
../../gcc/dwarf2out.c:26419
0x89a6a7 gen_member_die
../../gcc/dwarf2out.c:25169
0x89a6a7 gen_struct_or_union_type_die
../../gcc/dwarf2out.c:25265
0x89a6a7 gen_tagged_type_die
../../gcc/dwarf2out.c:25466
0x89b1ac gen_type_die_with_usage
../../gcc/dwarf2out.c:25661
0x89a2b7 gen_tagged_type_die
../../gcc/dwarf2out.c:25435
0x89b1ac gen_type_die_with_usage
../../gcc/dwarf2out.c:25661
0x89ba66 gen_type_die
../../gcc/dwarf2out.c:25715
0x8988ce gen_decl_die
../../gcc/dwarf2out.c:26347
0x899376 dwarf2out_decl
../../gcc/dwarf2out.c:26892
0x89963c dwarf2out_type_decl
../../gcc/dwarf2out.c:26619
0xadd0c2 rest_of_type_compilation(tree_node*, int)
../../gcc/passes.c:339
0x615b4d finish_struct_1(tree_node*)
../../gcc/cp/class.c:7068
0x616f74 finish_struct(tree_node*, tree_node*)
../../gcc/cp/class.c:7212
0x6f97e6 tsubst_lambda_expr(tree_node*, tree_node*, int, tree_node*)
../../gcc/cp/pt.c:18126

[Bug c++/89403] [7/8/9 Regression] ICE in maybe_clone_body, at cp/optimize.c:693

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

Jakub Jelinek  changed:

   What|Removed |Added

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

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

Untested fix.  The problem is that maybe_clone_body really doesn't expect to be
called multiple times on the same function.

[Bug libfortran/78314] [aarch64] ieee_support_halting does not report unsupported fpu traps correctly

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

--- Comment #25 from Wilco  ---
(In reply to Steve Ellcey from comment #24)
> See email strings at:
> 
> https://gcc.gnu.org/ml/fortran/2019-01/msg00276.html
> https://gcc.gnu.org/ml/fortran/2019-02/msg00057.html
> 
> For more discussion.

Sure, it looks like we simply need to reinstate Szabolc's patch with a #ifdef
arm/aarch64 around it. I need to find out whether a feclearexcept
(FE_ALL_EXCEPT) is necessary on Arm targets which can trap (very few exist
IIRC).

[Bug middle-end/89423] New: -fvtable-verify does not work properly with -flto

2019-02-20 Thread ctice at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89423

Bug ID: 89423
   Summary: -fvtable-verify does not work properly with -flto
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ctice at gcc dot gnu.org
  Target Milestone: ---

When compiled with '-flto' the extra internal functions that VTV generates,and
which are necessary for it to work correctly, do not get propagated into the
final binary.  You can see this compiling the bb_tests.cc test case in the
libvtv testsuite, and grepping for 'GLOBAL' in the final output:

$ /usr/local/google3/cmtice/gcc-fsf.root/usr/local/bin/g++ -o bb_tests
bb_tests.cc -O1 -fvtable-verify=std  // Compile without flto
$ nm bb_tests | grep GLOBAL
00601000 d _GLOBAL_OFFSET_TABLE_
00400930 t _GLOBAL__sub_I.00099__Z14get_cond_value

$ /usr/local/google3/cmtice/gcc-fsf.root/usr/local/bin/g++ -o
bb_tests_flto bb_tests.cc -O1 -flto -fvtable-verify=std   // Compile
with flto
$ nm bb_tests_flto | grep GLOBAL
00601000 d _GLOBAL_OFFSET_TABLE_

[Bug middle-end/89423] -fvtable-verify does not work properly with -flto

2019-02-20 Thread ctice at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89423

ctice at gcc dot gnu.org changed:

   What|Removed |Added

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

[Bug fortran/80408] Problems with SIGNAL, pthread and print together

2019-02-20 Thread raphael.monod at wanadoo dot fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80408

--- Comment #4 from Raphael Monod  ---
Thank you for your answer. But I don't understand why adding -lpthread option
change the behavior if I do not use any thread. Moreover, if I refer to this
page ( https://docs.oracle.com/cd/E19455-01/806-5257/gen-26/index.html ) write
statement seems to be async-signal safe ? Where am I wrong ?
Finaly, what can I do if I want to print a message in my trap function ?
Thank you for your interest to my problem.

[Bug target/89400] [7/8/9 Regression] ICE: output_operand: invalid %-code with -march=armv6kz -mthumb -munaligned-access

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

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org
   Target Milestone|--- |7.5

--- Comment #1 from Jakub Jelinek  ---
r228540 compiled this fine with these options, r228940 already ICEs, though
with
pr89400.c: In function ‘foo’:
pr89400.c:7:1: error: unrecognizable insn:
 }
 ^
(insn 9 8 10 2 (set (reg:SI 116)
(zero_extend:SI (unspec:HI [
(mem:HI (reg/f:SI 111 [ b.1_3 ]) [0 MEM[(char *
{ref-all})b.1_3]+0 S2 A8])
] UNSPEC_UNALIGNED_LOAD))) pr89400.c:6 -1
 (nil))
Maybe started with r228643?
The invalid %-code appeared in between r230540 and r231340, maybe r231114 or
r230664 or r230663.

[Bug c++/89421] [9 Regression] ICE in retrieve_specialization, at cp/pt.c:1245

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

Marek Polacek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-02-20
 CC||mpolacek at gcc dot gnu.org
   Target Milestone|--- |9.0
 Ever confirmed|0   |1

--- Comment #1 from Marek Polacek  ---
r266056.

[Bug target/89400] [7/8/9 Regression] ICE: output_operand: invalid %-code with -march=armv6kz -mthumb -munaligned-access

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

Jakub Jelinek  changed:

   What|Removed |Added

 CC||ramana at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek  ---
All the "unaligned_access" instructions use %? in the patterns (except the last
one) where %? is TARGET_32BIT specific.
If the unaligned loads/stores don't really work for thumb1, then

  if (! opts_set->x_unaligned_access)
{
  opts->x_unaligned_access = (TARGET_32BIT_P (opts->x_target_flags)
  && arm_arch6 && (arm_arch_notm || arm_arch7));
}
  else if (opts->x_unaligned_access == 1
   && !(arm_arch6 && (arm_arch_notm || arm_arch7)))
{
  warning (0, "target CPU does not support unaligned accesses");
 opts->x_unaligned_access = 0;
}
should be changed to:
  else if (opts->x_unaligned_access == 1
   && (!(arm_arch6 && (arm_arch_notm || arm_arch7))
   || !TARGET_32BIT_P (opts->x_target_flags)))
If the unaligned_access instructions are also for thumb1, then perhaps they
need to set predicable to no for !TARGET_32BIT e.g. based on isa attribute and
avoid using %? in the thumb1 alternative patterns.

[Bug c/89410] [7/8/9 Regression] ICE in calculate_line_spans, at diagnostic-show-locus.c:1237 after #line

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

--- Comment #11 from Segher Boessenkool  ---
(In reply to Jonny Grant from comment #9)
> Maybe zero could be disallowed too.

Yes, but maybe we need that for historical reasons.

> Not sure what is best here, I'm not knowledgeable of GCC, but maybe setting
> it to -1 if it goes above, and then never increment again if(-1 == line) ...

The testcase will still ICE then...  The assert is

  /* The spans must be ordered.  */
  gcc_assert (prev->m_first_line < next->m_first_line);

  1   2   >