[Bug fortran/96312] [10/11 Regression] Reallocation on assignment uses undefined variables

2020-08-09 Thread cvs-commit at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96312

--- Comment #7 from CVS Commits  ---
The master branch has been updated by Paul Thomas :

https://gcc.gnu.org/g:abb276d0eca218e62e5ed50babf12ff544250759

commit r11-2625-gabb276d0eca218e62e5ed50babf12ff544250759
Author: Paul Thomas 
Date:   Mon Aug 10 06:22:22 2020 +0100

This patch fixes PR96312. Cures a used uninitialized warning.

2020-08-10  Paul Thomas  

gcc/fortran
PR fortran/96312
* trans-expr.c (fcncall_realloc_result): Only compare shapes if
lhs was allocated..

gcc/testsuite/
PR fortran/96312
* gfortran.dg/pr96312.f90: New test.

[Bug fortran/96102] ICE in check_host_association, at fortran/resolve.c:5994

2020-08-09 Thread cvs-commit at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96102

--- Comment #4 from CVS Commits  ---
The master branch has been updated by Paul Thomas :

https://gcc.gnu.org/g:359815ad136ee6ad142fb54470ce79609e43ff5d

commit r11-2624-g359815ad136ee6ad142fb54470ce79609e43ff5d
Author: Paul Thomas 
Date:   Mon Aug 10 06:19:25 2020 +0100

This patch fixes PR96102. See the explanatory comment in the testcase.

2020-08-10  Paul Thomas  

gcc/fortran
PR fortran/96102
* resolve.c (check_host_association): Replace the gcc_assert
with an error for internal procedures.

gcc/testsuite/
PR fortran/96102
* gfortran.dg/pr96102.f90: New test.

[Bug gcov-profile/96534] keep gcov intermediate format

2020-08-09 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96534

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from Martin Liška  ---
(In reply to xlwu from comment #0)
> since gcc9, the gcov did not support intermediate format and replace with
> json format , our application deeply depend on intermediate format , is it
> possible to restore the intermediate format ?

No, the support was removed from the GCC.

> or could you let me know any
> workaround ? 

Sure, it's very easy. One can get the very same information from the new JSON
format (which is fairly simple):

https://gcc.gnu.org/onlinedocs/gcc/Invoking-Gcov.html

> 
> background :
> I am a software engineer from SNPS , we have an application that extract all
> file+functions and it's related lines per test case, and we save this data
> into DB which help us to predict the test to verify when RnD updated any
> lines in source code before their check in. we call this application as
> "smart regression". 

That's a nice usage of the GCOV and the new format should simplify your life.

> 
> now , when gcov move to json file, it increase the size a lot which affect
> the efficiency to parse the data

I'm aware of the limitation. Note that the JSON format is compressed with gzip.
Can you please share more statistics?

> , what's worse, we had to revise our code
> to support the new json format while we need to support the old format in
> the same time , as our company have many products and each product have many
> live branches , some of them still using gcc6 version.

I see. As mentioned, porting to the new format should be fairly simple.

> 
> I tried to use older gcov version on the new gcc instructed gcda and gcno
> file , it did not work.

Please don't do it.

[Bug target/96454] [11 Regression] wrong code with -Og -march=cascadelake since r11-1445

2020-08-09 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96454

Martin Liška  changed:

   What|Removed |Added

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

--- Comment #2 from Martin Liška  ---
Mine then.

[Bug tree-optimization/96466] [11 Regression] ICE: in gimple_expand_vec_cond_expr, at gimple-isel.cc:122 with -Og -finline-functions-called-once -fno-tree-ccp

2020-08-09 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96466

Martin Liška  changed:

   What|Removed |Added

 Ever confirmed|0   |1
   Last reconfirmed||2020-08-10
   Assignee|unassigned at gcc dot gnu.org  |marxin at gcc dot 
gnu.org
 Status|UNCONFIRMED |ASSIGNED

--- Comment #1 from Martin Liška  ---
Let me take a look.

[Bug bootstrap/96492] : internal compiler error: Segmentation fault

2020-08-09 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96492

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID
 CC||marxin at gcc dot gnu.org

--- Comment #6 from Martin Liška  ---
Let's close it as invalid then.

[Bug tree-optimization/96512] wrong code generated with avx512 intrinsics in some cases

2020-08-09 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96512

Martin Liška  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org

--- Comment #5 from Martin Liška  ---
Running that within Intel SDE:
https://software.intel.com/content/www/us/en/develop/articles/intel-software-development-emulator.html

All 8.x releases are fine:

Releases
  8.1.0 (406c2abec3f998e9)(02 May 2018 10:13): [took: 0.892s] result: OK
SIMD: avx512 -- vector size = 8
:: 0 == 0
:: 0.067 == 0.067
:: 0.13 == 0.13
:: 0.2 == 0.2
:: 0.27 == 0.27
:: 0.33 == 0.33
:: 0.4 == 0.4
:: 0.47 == 0.47
:: 0.53 == 0.53
:: 0.6 == 0.6
:: 0.67 == 0.67
:: 0.73 == 0.73
:: 0.8 == 0.8
:: 0.87 == 0.87
:: 0.93 == 0.93
:: 1 == 1
  8.2.0 (ddeb81e76461fc00)(26 Jul 2018 09:47): [took: 0.866s] result: OK
SIMD: avx512 -- vector size = 8
:: 0 == 0
:: 0.067 == 0.067
:: 0.13 == 0.13
:: 0.2 == 0.2
:: 0.27 == 0.27
:: 0.33 == 0.33
:: 0.4 == 0.4
:: 0.47 == 0.47
:: 0.53 == 0.53
:: 0.6 == 0.6
:: 0.67 == 0.67
:: 0.73 == 0.73
:: 0.8 == 0.8
:: 0.87 == 0.87
:: 0.93 == 0.93
:: 1 == 1
  8.3.0 (4c44b708f11eec6f)(22 Feb 2019 14:20): [took: 0.856s] result: OK
SIMD: avx512 -- vector size = 8
:: 0 == 0
:: 0.067 == 0.067
:: 0.13 == 0.13
:: 0.2 == 0.2
:: 0.27 == 0.27
:: 0.33 == 0.33
:: 0.4 == 0.4
:: 0.47 == 0.47
:: 0.53 == 0.53
:: 0.6 == 0.6
:: 0.67 == 0.67
:: 0.73 == 0.73
:: 0.8 == 0.8
:: 0.87 == 0.87
:: 0.93 == 0.93
:: 1 == 1
  8.4.0 (8cd3bffead2ed1d1)(04 Mar 2020 08:30): [took: 0.853s] result: OK
SIMD: avx512 -- vector size = 8
:: 0 == 0
:: 0.067 == 0.067
:: 0.13 == 0.13
:: 0.2 == 0.2
:: 0.27 == 0.27
:: 0.33 == 0.33
:: 0.4 == 0.4
:: 0.47 == 0.47
:: 0.53 == 0.53
:: 0.6 == 0.6
:: 0.67 == 0.67
:: 0.73 == 0.73
:: 0.8 == 0.8
:: 0.87 == 0.87
:: 0.93 == 0.93
:: 1 == 1

[Bug c/96545] ICE in get_atomic_generic_size

2020-08-09 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96545

Martin Liška  changed:

   What|Removed |Added

   Last reconfirmed||2020-08-10
Summary|[10/11] internal compiler   |ICE in
   |error: Segmentation fault   |get_atomic_generic_size
 Status|UNCONFIRMED |NEW
 CC||marxin at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Martin Liška  ---
All releases I have ICE (4.8.0+).

[Bug c/96546] ICE in default_conversion

2020-08-09 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96546

Martin Liška  changed:

   What|Removed |Added

   Last reconfirmed||2020-08-10
 Ever confirmed|0   |1
Summary|[10/11] internal compiler   |ICE in default_conversion
   |error: in   |
   |default_conversion  |
 CC||marxin at gcc dot gnu.org
 Status|UNCONFIRMED |NEW

--- Comment #1 from Martin Liška  ---
All releases I have ICE (4.8.0+).

[Bug web/96547] Two errors on https://gcc.gnu.org/gcc-11/changes.html

2020-08-09 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96547

Martin Liška  changed:

   What|Removed |Added

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

--- Comment #1 from Martin Liška  ---
Thank you for the notes, fixed.

[Bug tree-optimization/96548] [11 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:247 since r11-2574-g6aec53ee4f75a64c

2020-08-09 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96548

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2020-08-10
 CC||marxin at gcc dot gnu.org,
   ||rguenth at gcc dot gnu.org
 Ever confirmed|0   |1
Summary|[11 Regression] ICE in  |[11 Regression] ICE in
   |compute_live_loop_exits, at |compute_live_loop_exits, at
   |tree-ssa-loop-manip.c:247   |tree-ssa-loop-manip.c:247
   ||since
   ||r11-2574-g6aec53ee4f75a64c

--- Comment #1 from Martin Liška  ---
Started with r11-2574-g6aec53ee4f75a64c.

[Bug tree-optimization/96548] New: [11 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:247

2020-08-09 Thread asolokha at gmx dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96548

Bug ID: 96548
   Summary: [11 Regression] ICE in compute_live_loop_exits, at
tree-ssa-loop-manip.c:247
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: asolokha at gmx dot com
  Target Milestone: ---

gcc-11.0.0-alpha20200809 snapshot (g:71197a5d13d0b540a9b5efe7ae2512d76386e9d1)
ICEs when compiling the following testcase w/ -O1:

int c9, d3;

void
sg (int *rs, int f2)
{
  for (;;)
{
  if (*rs < 1)
__builtin_unreachable ();

  for (c9 = 0; c9 < 1; ++c9)
while (f2 < 1)
  ++c9;

  if (d3)
c9 += !!f2 ? 0 : d3;
}
}

% gcc-11.0.0 -O1 -c tr7hy0bz.c
during GIMPLE pass: lim
tr7hy0bz.c: In function 'sg':
tr7hy0bz.c:4:1: internal compiler error: in compute_live_loop_exits, at
tree-ssa-loop-manip.c:247
4 | sg (int *rs, int f2)
  | ^~
0x6d7a54 compute_live_loop_exits
   
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200809/work/gcc-11-20200809/gcc/tree-ssa-loop-manip.c:247
0x6d7a54 add_exit_phis_var
   
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200809/work/gcc-11-20200809/gcc/tree-ssa-loop-manip.c:334
0x6d7a54 add_exit_phis
   
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200809/work/gcc-11-20200809/gcc/tree-ssa-loop-manip.c:356
0x6d7a54 rewrite_into_loop_closed_ssa_1(bitmap_head*, unsigned int, int, loop*)
   
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200809/work/gcc-11-20200809/gcc/tree-ssa-loop-manip.c:678
0x6d7a54 rewrite_into_loop_closed_ssa_1(bitmap_head*, unsigned int, int, loop*)
   
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200809/work/gcc-11-20200809/gcc/tree-ssa-loop-manip.c:631
0xec3e83 tree_ssa_lim
   
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200809/work/gcc-11-20200809/gcc/tree-ssa-loop-im.c:3126
0xec3e83 execute
   
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200809/work/gcc-11-20200809/gcc/tree-ssa-loop-im.c:3173

[Bug testsuite/96525] new test gcc.target/powerpc/pr96493.c fails

2020-08-09 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96525

--- Comment #5 from Peter Bergner  ---
(In reply to Alan Modra from comment #4)
> I could make the test { do-do link } but running the test is just that
> little bit better test of the linker output, and as far as I know there
> isn't a way of saying "link this but only run on power10".

Does this work?

-/* { dg-do run } */
+/* { dg-do run { target power10_hw } } */
+/* { dg-do link { target { ! power10_hw } } } */
 /* { dg-options "-mdejagnu-cpu=power8 -O2" } */
 /* { dg-require-effective-target powerpc_elfv2 } */
+/* { dg-require-effective-target power10_ok } */

[Bug web/96547] New: Two errors on https://gcc.gnu.org/gcc-11/changes.html

2020-08-09 Thread schnetter at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96547

Bug ID: 96547
   Summary: Two errors on https://gcc.gnu.org/gcc-11/changes.html
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: web
  Assignee: unassigned at gcc dot gnu.org
  Reporter: schnetter at gmail dot com
  Target Milestone: ---

There are currently two misspellings on the "changes" page for GCC 11:

"limitted" -> "limited"
"reinterpreter_casts" -> "reinterpret_casts"

-erik

[Bug tree-optimization/96481] SLP fail to vectorize VEC_COND_EXPR pattern.

2020-08-09 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96481

Martin Liška  changed:

   What|Removed |Added

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

--- Comment #4 from Martin Liška  ---
I can try working on that..

[Bug c/96546] New: [10/11] internal compiler error: in default_conversion

2020-08-09 Thread anbu1024.me at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96546

Bug ID: 96546
   Summary: [10/11] internal compiler error: in default_conversion
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: anbu1024.me at gmail dot com
  Target Milestone: ---

$ cat test.c 

void foo () {} 

__attribute__ ( ( constructor ( foo ) ) ) void bar () { return 0 ; }

---

$ gcc-snapshot11 --version
gcc (GCC) 11.0.0 20200802 (experimental)
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

---

$ gcc-snapshot11 test.c 
test.c:4:1: internal compiler error: in default_conversion, at
c/c-typeck.c:2185
4 | __attribute__ ( ( constructor ( foo ) ) ) void bar () { return 0 ; }
  | ^
0x5fcc39 default_conversion(tree_node*)
../../gcc-11-20200802/gcc/c/c-typeck.c:2185
0x8d7896 get_priority
../../gcc-11-20200802/gcc/c-family/c-attribs.c:1571
0x8d7ace handle_constructor_attribute
../../gcc-11-20200802/gcc/c-family/c-attribs.c:1622
0x7e61e7 decl_attributes(tree_node**, tree_node*, int, tree_node*)
../../gcc-11-20200802/gcc/attribs.c:714
0x802a35 start_function(c_declspecs*, c_declarator*, tree_node*)
../../gcc-11-20200802/gcc/c/c-decl.c:9184
0x85d226 c_parser_declaration_or_fndef
../../gcc-11-20200802/gcc/c/c-parser.c:2434
0x866893 c_parser_external_declaration
../../gcc-11-20200802/gcc/c/c-parser.c:1773
0x867389 c_parser_translation_unit
../../gcc-11-20200802/gcc/c/c-parser.c:1646
0x867389 c_parse_file()
../../gcc-11-20200802/gcc/c/c-parser.c:21812
0x8c020d c_common_parse_file()
../../gcc-11-20200802/gcc/c-family/c-opts.c:1188
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See  for instructions.

---

$ gcc-snapshot10 --version
gcc (GCC) 10.2.1 20200725
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

---

$ gcc-snapshot10 test.c 
test.c:4:1: internal compiler error: in default_conversion, at
c/c-typeck.c:2182
4 | __attribute__ ( ( constructor ( foo ) ) ) void bar () { return 0 ; }
  | ^
0x59e720 default_conversion(tree_node*)
../../gcc-10-20200725/gcc/c/c-typeck.c:2182
0x6a61ac get_priority
../../gcc-10-20200725/gcc/c-family/c-attribs.c:1571
0x6a7d1f handle_constructor_attribute
../../gcc-10-20200725/gcc/c-family/c-attribs.c:1622
0x5e26e5 decl_attributes(tree_node**, tree_node*, int, tree_node*)
../../gcc-10-20200725/gcc/attribs.c:714
0x5f94e0 start_function(c_declspecs*, c_declarator*, tree_node*)
../../gcc-10-20200725/gcc/c/c-decl.c:9153
0x641be2 c_parser_declaration_or_fndef
../../gcc-10-20200725/gcc/c/c-parser.c:2406
0x649723 c_parser_external_declaration
../../gcc-10-20200725/gcc/c/c-parser.c:1745
0x64a221 c_parser_translation_unit
../../gcc-10-20200725/gcc/c/c-parser.c:1618
0x64a221 c_parse_file()
../../gcc-10-20200725/gcc/c/c-parser.c:21745
0x69440b c_common_parse_file()
../../gcc-10-20200725/gcc/c-family/c-opts.c:1190
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See  for instructions.

[Bug target/96446] ICE when spilling an MMA accumulator

2020-08-09 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96446

Peter Bergner  changed:

   What|Removed |Added

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

--- Comment #7 from Peter Bergner  ---
Fixed everywhere.

[Bug target/96453] [11 Regression] ICE: in gimple_expand_vec_cond_expr, at gimple-isel.cc:167 with -Og -fno-early-inlining -fno-tree-ccp -mavx -mno-sse4.2

2020-08-09 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96453

Martin Liška  changed:

   What|Removed |Added

 Ever confirmed|0   |1
 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2020-08-10
   Assignee|unassigned at gcc dot gnu.org  |marxin at gcc dot 
gnu.org

--- Comment #1 from Martin Liška  ---
Mine.

[Bug target/96530] MMA built-ins reject typedefs of MMA types

2020-08-09 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96530

Peter Bergner  changed:

   What|Removed |Added

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

--- Comment #5 from Peter Bergner  ---
Fixed everywhere.

[Bug target/96530] MMA built-ins reject typedefs of MMA types

2020-08-09 Thread cvs-commit at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96530

--- Comment #4 from CVS Commits  ---
The releases/gcc-10 branch has been updated by Peter Bergner
:

https://gcc.gnu.org/g:a8c8ff7712d2cce5d7f26224160d8422b87babfc

commit r10-8597-ga8c8ff7712d2cce5d7f26224160d8422b87babfc
Author: Peter Bergner 
Date:   Sat Aug 8 11:54:48 2020 -0500

rs6000: MMA built-ins reject typedefs of MMA types

We do not allow conversions between the MMA types and other types.
However, we are being too strict in not matching MMA types with
typdefs of those types.  Use TYPE_CANONICAL to see through the
types to their canonical types before comparing them.

2020-08-08  Peter Bergner  

gcc/
PR target/96530
* config/rs6000/rs6000.c (rs6000_invalid_conversion): Use canonical
types for type comparisons.  Refactor code to simplify it.

gcc/testsuite/
PR target/96530
* gcc.target/powerpc/pr96530.c: New test.

(cherry picked from commit e2882e76089cecdc268d0835c54cabfa80b5b0be)

[Bug tree-optimization/96512] wrong code generated with avx512 intrinsics in some cases

2020-08-09 Thread crazylht at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96512

--- Comment #4 from Hongtao.liu  ---
It's ok with GCC8.4.0.

/export/liuhongt/install/gcc8.4.0/bin/gcc -O1 -D_GCC_VEC_=1
-march=skylake-avx512 test.c -lm 

./a.out 

SIMD: avx512 -- vector size = 8
:: 0 == 0
:: 0.067 == 0.067
:: 0.13 == 0.13
:: 0.2 == 0.2
:: 0.27 == 0.27
:: 0.33 == 0.33
:: 0.4 == 0.4
:: 0.47 == 0.47
:: 0.53 == 0.53
:: 0.6 == 0.6
:: 0.67 == 0.67
:: 0.73 == 0.73
:: 0.8 == 0.8
:: 0.87 == 0.87
:: 0.93 == 0.93
:: 1 == 1

[Bug target/96243] For vector compare to mask register, UNSPEC is needed instead of comparison operator

2020-08-09 Thread crazylht at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96243

Hongtao.liu  changed:

   What|Removed |Added

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

--- Comment #4 from Hongtao.liu  ---
Fixed in GCC11.

[Bug target/96243] For vector compare to mask register, UNSPEC is needed instead of comparison operator

2020-08-09 Thread cvs-commit at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96243

--- Comment #3 from CVS Commits  ---
The master branch has been updated by hongtao Liu :

https://gcc.gnu.org/g:99e4891ed552aca4ca147671701edd0b31015f66

commit r11-2623-g99e4891ed552aca4ca147671701edd0b31015f66
Author: liuhongt 
Date:   Mon Jul 20 10:13:58 2020 +0800

Using UNSPEC for vector compare to mask register.

For rtx like (eq:HI (V8SI 90) (V8SI 91)), cse will take it as a
boolean value and try to do some optimization. But it is not true for
vector compare, also other places in rtl passes hold the same
assumption.

2020-07-20  Hongtao Liu  

gcc/
PR target/96243
* config/i386/i386-expand.c (ix86_expand_sse_cmp): Refine for
maskcmp.
(ix86_expand_mask_vec_cmp): Change prototype.
* config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): Change
prototype.
* config/i386/i386.c (ix86_print_operand): Remove operand
modifier 'I'.
* config/i386/sse.md
(*_cmp3):
Deleted.
(*_cmp3): Ditto.
(*_ucmp3): Ditto.
(*_ucmp3,
avx512f_maskcmp3): Ditto.

gcc/testsuite
* gcc.target/i386/pr92865-1.c: Adjust testcase.

[Bug c/96545] New: [10/11] internal compiler error: Segmentation fault

2020-08-09 Thread anbu1024.me at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96545

Bug ID: 96545
   Summary: [10/11] internal compiler error: Segmentation fault
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: anbu1024.me at gmail dot com
  Target Milestone: ---

$ cat test.c

extern char x[]; 
extern char y[];
extern char z[];

void foo ()
{
__atomic_exchange ( & x , & y , & z , & z ) ;
}

---

$ gcc-snapshot11 --version
gcc (GCC) 11.0.0 20200802 (experimental)
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

---

$ gcc-snapshot11 test.c 
test.c: In function ‘foo’:
test.c:8:5: internal compiler error: Segmentation fault
8 | __atomic_exchange ( & x , & y , & z , & z ) ;
  | ^
0xdd207f crash_signal
../../gcc-11-20200802/gcc/toplev.c:328
0x871826 get_atomic_generic_size
../../gcc-11-20200802/gcc/c-family/c-common.c:7021
0x8a164d resolve_overloaded_atomic_exchange
../../gcc-11-20200802/gcc/c-family/c-common.c:7219
0x8a164d resolve_overloaded_builtin(unsigned int, tree_node*, vec*)
../../gcc-11-20200802/gcc/c-family/c-common.c:7564
0x82a674 c_build_function_call_vec(unsigned int, vec, tree_node*, vec*, vec*)
../../gcc-11-20200802/gcc/c/c-typeck.c:3202
0x848c1c c_parser_postfix_expression_after_primary
../../gcc-11-20200802/gcc/c/c-parser.c:10536
0x840901 c_parser_postfix_expression
../../gcc-11-20200802/gcc/c/c-parser.c:10209
0x8449fa c_parser_unary_expression
../../gcc-11-20200802/gcc/c/c-parser.c:8306
0x84620d c_parser_cast_expression
../../gcc-11-20200802/gcc/c/c-parser.c:8148
0x846499 c_parser_binary_expression
../../gcc-11-20200802/gcc/c/c-parser.c:7951
0x847475 c_parser_conditional_expression
../../gcc-11-20200802/gcc/c/c-parser.c:7685
0x847ab0 c_parser_expr_no_commas
../../gcc-11-20200802/gcc/c/c-parser.c:7600
0x847d21 c_parser_expression
../../gcc-11-20200802/gcc/c/c-parser.c:10672
0x8484c7 c_parser_expression_conv
../../gcc-11-20200802/gcc/c/c-parser.c:10705
0x83de7b c_parser_statement_after_labels
../../gcc-11-20200802/gcc/c/c-parser.c:6329
0x8400d1 c_parser_compound_statement_nostart
../../gcc-11-20200802/gcc/c/c-parser.c:5833
0x85c7b4 c_parser_compound_statement
../../gcc-11-20200802/gcc/c/c-parser.c:5645
0x85e20b c_parser_declaration_or_fndef
../../gcc-11-20200802/gcc/c/c-parser.c:2533
0x866893 c_parser_external_declaration
../../gcc-11-20200802/gcc/c/c-parser.c:1773
0x867389 c_parser_translation_unit
../../gcc-11-20200802/gcc/c/c-parser.c:1646
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See  for instructions.

---

$ gcc-snapshot10 --version
gcc (GCC) 10.2.1 20200725
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

---

$ gcc-snapshot10 test.c 
test.c: In function ‘foo’:
test.c:8:5: internal compiler error: Segmentation fault
8 | __atomic_exchange ( & x , & y , & z , & z ) ;
  | ^
0xaecd9f crash_signal
../../gcc-10-20200725/gcc/toplev.c:328
0x65199b get_atomic_generic_size
../../gcc-10-20200725/gcc/c-family/c-common.c:6952
0x67d277 resolve_overloaded_atomic_exchange
../../gcc-10-20200725/gcc/c-family/c-common.c:7117
0x67d277 resolve_overloaded_builtin(unsigned int, tree_node*, vec*)
../../gcc-10-20200725/gcc/c-family/c-common.c:7462
0x615203 c_build_function_call_vec(unsigned int, vec, tree_node*, vec*, vec*)
../../gcc-10-20200725/gcc/c/c-typeck.c:3199
0x62f5de c_parser_postfix_expression_after_primary
../../gcc-10-20200725/gcc/c/c-parser.c:10501
0x627eb1 c_parser_postfix_expression
../../gcc-10-20200725/gcc/c/c-parser.c:10176
0x62b77a c_parser_unary_expression
../../gcc-10-20200725/gcc/c/c-parser.c:8273
0x62cefd c_parser_cast_expression
../../gcc-10-20200725/gcc/c/c-parser.c:8115
0x62d18e c_parser_binary_expression
../../gcc-10-20200725/gcc/c/c-parser.c:7918
0x62e0c5 c_parser_conditional_expression
../../gcc-10-20200725/gcc/c/c-parser.c:7652
0x62e5f0 c_parser_expr_no_commas

[Bug target/96544] New: ICE in simplify_gen_subreg_concatn, at lower-subreg.c:717

2020-08-09 Thread asolokha at gmx dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96544

Bug ID: 96544
   Summary: ICE in simplify_gen_subreg_concatn, at
lower-subreg.c:717
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: asolokha at gmx dot com
  Target Milestone: ---
Target: powerpc-*-linux-gnu

gcc-11.0.0-alpha20200802 snapshot (g:6e46b3f3da5c03bc529b3690dd0995927feb9142)
ICEs when compiling gcc/testsuite/gcc.dg/pr94574.c w/ -O1 -fno-dce
-fno-tree-fre:

% powerpc-e300c3-linux-gnu-gcc-11.0.0 -O1 -fno-dce -fno-tree-fre -w -c
gcc/testsuite/gcc.dg/pr94574.c
during RTL pass: subreg2
gcc/testsuite/gcc.dg/pr94574.c: In function 'foo':
gcc/testsuite/gcc.dg/pr94574.c:15:1: internal compiler error: in
simplify_gen_subreg_concatn, at lower-subreg.c:717
   15 | }
  | ^
0x77b21d simplify_gen_subreg_concatn
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200802/work/gcc-11-20200802/gcc/lower-subreg.c:717
0x169048a resolve_simple_move
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200802/work/gcc-11-20200802/gcc/lower-subreg.c:1091
0x16917fb decompose_multiword_subregs
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200802/work/gcc-11-20200802/gcc/lower-subreg.c:1657
0x169229d execute
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200802/work/gcc-11-20200802/gcc/lower-subreg.c:1821

[Bug tree-optimization/94919] Failure to recognize max pattern

2020-08-09 Thread gabravier at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94919

Gabriel Ravier  changed:

   What|Removed |Added

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

--- Comment #4 from Gabriel Ravier  ---
Looks like this is now recognized by GCC 11, I can't really identify what exact
patch does this but it was fixed in some way since I now get optimal code
generation.

[Bug testsuite/96525] new test gcc.target/powerpc/pr96493.c fails

2020-08-09 Thread amodra at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96525

Alan Modra  changed:

   What|Removed |Added

   Last reconfirmed||2020-08-10
   Assignee|unassigned at gcc dot gnu.org  |amodra at gmail dot com
 CC|amodra at gcc dot gnu.org  |
 Status|UNCONFIRMED |ASSIGNED
 Ever confirmed|0   |1

--- Comment #4 from Alan Modra  ---
Yes, the test needs power10_ok, but *not* power10_hw.  Despite being a "run"
test with one function cpu=power10, no power10 insns are generated.  So the
executable could in fact be run (even on a power3).

If you make the test power10_hw, then it won't be linked unless of course you
have power10 hardware or a simulator.  Most people don't.   We really do want
to at least link the compiler output as it is the link stage that shows up the
pr96493 problem.

I could make the test { do-do link } but running the test is just that little
bit better test of the linker output, and as far as I know there isn't a way of
saying "link this but only run on power10".

[Bug target/94892] (x >> 31) + 1 not getting narrowed to compare

2020-08-09 Thread gabravier at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94892

--- Comment #4 from Gabriel Ravier  ---
Harald, for the specific code you wrote, I now see this from GCC :

f(int):
  test edi, edi
  js .L2
  jmp f1()
.L2:
  jmp f2()

So for that specific code, GCC has improved, though for the original test case
it has not. I must note, though, that this still means that either :
- GCC fails to properly optimize `(x >> 31) + 1`
- GCC fails to properly optimize my original test case

[Bug c++/96543] New: null check on template pointer parameter fails

2020-08-09 Thread vlad at petric dot cc
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96543

Bug ID: 96543
   Summary: null check on template pointer parameter fails
   Product: gcc
   Version: 10.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vlad at petric dot cc
  Target Milestone: ---

static unsigned c = 0;

template 
struct A {
  static void test() {
if constexpr (c) ++ *c;
  }
};

int main() {
  A<>::test();
  A::test();
}

The error is:

bug.cc: In instantiation of ‘static void A::test() [with unsigned int* c =
(& c)]’:
bug.cc:11:10:   required from here
bug.cc:11:5: error: the address of ‘c’ will never be NULL [-Werror=address]
   11 |   A<>::test();

The only fix is to remove the if constexpr (nothing else helps).

[Bug target/71321] [6 Regression] x86: worse code for uint8_t % 10 and / 10

2020-08-09 Thread cvs-commit at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71321

--- Comment #11 from CVS Commits  ---
The master branch has been updated by Roger Sayle :

https://gcc.gnu.org/g:71197a5d13d0b540a9b5efe7ae2512d76386e9d1

commit r11-2621-g71197a5d13d0b540a9b5efe7ae2512d76386e9d1
Author: Roger Sayle 
Date:   Sun Aug 9 23:14:58 2020 +0100

middle-end: Correct calculation of mul_widen_cost and mul_highpart_cost.

This patch fixes a subtle bug in the depths of GCC's synth_mult,
where the middle-end queries whether (how well) the target supports
widening and highpart multiplications by calling targetm.rtx_costs.
The code in init_expmed and init_expmed_one_mode iterates over various
RTL patterns querying the cost of each.  To avoid generating & garbage
collecting too much junk, it reuses the same RTL over and over, but
adjusting the modes between each call.

Alas this reuse of state is a little fragile, and at some point a
change to init_expmed_one_conv has resulted in the state (mode of
a register) being changed, but not reset before being used again.

Using the old software engineering/defensive programming maxim of
"why fix a bug just once, if it can be fixed in multiple places",
this patch both restores the original value in init_expmed_one_conv,
and also sets it to the expected value in init_expmed_one_mode.
This should hopefully signal the need to be careful of invariants for
anyone modifying this code in future.

2020-08-09  Roger Sayle  

gcc/ChangeLog
* expmed.c (init_expmed_one_conv): Restore all->reg's mode.
(init_expmed_one_mode): Set all->reg to desired mode.

gcc/testsuite/ChangeLog
PR target/71321
* gcc.target/i386/pr71321.c: Check that the code doesn't use
the 4B zero displacement lea, not that it uses lea.

[Bug tree-optimization/96542] New: Failure to optimize simple code to a constant when storing part of the operation in a variable

2020-08-09 Thread gabravier at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96542

Bug ID: 96542
   Summary: Failure to optimize simple code to a constant when
storing part of the operation in a variable
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gabravier at gmail dot com
  Target Milestone: ---

uint8_t f(uint32_t x)
{
bool tmp = x;
return (0xFF >> tmp) * 2;
}

This can be optimized to `return -2;`. This transformation is done by LLVM, but
not by GCC. Strangely, this only seems to happen if `(bool)x` is stored in an
intermediate variable, otherwise the transformation is done by GCC.

[Bug c++/96521] Suggest signal.h missing include

2020-08-09 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96521

Andrew Pinski  changed:

   What|Removed |Added

   Severity|normal  |enhancement

[Bug fortran/96101] [9/10/11 Regression] ICE in fold_convert_loc, at fold-const.c:2398

2020-08-09 Thread pault at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96101

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 49032
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49032=edit
Patch for the PR

Regtests OK and is about as simple as it can get :-)

Paul

[Bug c++/96533] ICE with three-way comparison when error occurs in templated operator< overload

2020-08-09 Thread natattak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96533

Nathaniel Shead  changed:

   What|Removed |Added

Summary|ICE with -Wunused-parameter |ICE with three-way
   |when using three-way|comparison when error
   |comparison  |occurs in templated
   ||operator< overload

--- Comment #2 from Nathaniel Shead  ---
(Correction with my previous comment, apologies; should be 

  struct S {};
  auto operator<=>(S, S) { return std::strong_ordering::equal; }

— see https://godbolt.org/z/aPxv8d, or otherwise a friend as in my first post.)

[Bug c++/96533] ICE with -Wunused-parameter when using three-way comparison

2020-08-09 Thread natattak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96533

--- Comment #1 from Nathaniel Shead  ---
On further investigation, I suspect this is more general than just
`-Wunused-parameter`; the error looks to be caused by any error occurring
within `operator<`. For example,

  #include 
  #include 

  struct S {};
  auto operator<=>(S, S) = default;

  template 
  auto operator<(Lhs&&, Rhs&& rhs) {
return rhs.nonexistent;
  }

  int main() {
return std::less{}(S{}, S{});
  }

produces the same issue.

I also discovered that the issue is only when the templated `operator<` has
deduced type.

[Bug bootstrap/96541] New: Bootstrap fails on Daerwin 19.6.0

2020-08-09 Thread juergen.reuter at desy dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96541

Bug ID: 96541
   Summary: Bootstrap fails on Daerwin 19.6.0
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
  Assignee: unassigned at gcc dot gnu.org
  Reporter: juergen.reuter at desy dot de
  Target Milestone: ---

After I upgraded to Darwin 19.6.0 (MACOSX 10.15.6) and XCode 11.6
bootstrapping/compiling gcc does not work any more with the following error:

make[3]: Nothing to be done for `all'.
make[3]: Nothing to be done for `all'.
g++ -std=c++11  -fno-PIE -c  -DIN_GCC_FRONTEND -g  -DIN_GCC   
-fno-strict-aliasing -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W
-Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-error=format-diag
-Wno-format -Wmissing-format-attribute -Woverloaded-virtual -pedantic
-Wno-long-long -Wno-variadic-macros -Wno-overlength-strings   -DHAVE_CONFIG_H
-I. -Ic -I../../gcc -I../../gcc/c -I../../gcc/../include -I./../intl
-I../../gcc/../libcpp/include -I/usr/local//include -I/usr/local//include 
-I../../gcc/../libdecnumber -I../../gcc/../libdecnumber/dpd -I../libdecnumber
-I../../gcc/../libbacktrace -I/usr/local//include  -o c/gimple-parser.o -MT
c/gimple-parser.o -MMD -MP -MF c/.deps/gimple-parser.TPo
../../gcc/c/gimple-parser.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is
deprecated [-Wdeprecated]
warning: unknown warning option '-Werror=format-diag'
[-Wunknown-warning-option]
In file included from ../../gcc/c/gimple-parser.c:22:
In file included from ../../gcc/coretypes.h:476:
In file included from ../../gcc/hash-table.h:248:

[...]
In file included from ../../gcc/c/gimple-parser.c:44:
In file included from ../../gcc/tree-vrp.h:23:
../../gcc/value-range.h:347:1: error: static declaration of 'gt_ggc_mx' follows
non-static declaration
gt_ggc_mx (int_range *x)
^
../../gcc/value-range.h:150:37: note: previous declaration is here
  template  friend void gt_ggc_mx (int_range *);
^
../../gcc/value-range.h:358:1: error: static declaration of 'gt_pch_nx' follows
non-static declaration
gt_pch_nx (int_range *x)
^
../../gcc/value-range.h:151:37: note: previous declaration is here
  template  friend void gt_pch_nx (int_range *);
^
../../gcc/value-range.h:369:1: error: static declaration of 'gt_pch_nx' follows
non-static declaration
gt_pch_nx (int_range *x, gt_pointer_operator op, void *cookie)
^

[Bug c/96540] New: gcc fails to build on Darwin 19.6.0

2020-08-09 Thread juergen.reuter at desy dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96540

Bug ID: 96540
   Summary: gcc fails to build on Darwin 19.6.0
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: juergen.reuter at desy dot de
  Target Milestone: ---

I am using the following setup:
Darwin 19.6.0, macOS Catalina 10.15.6, XCode v11.6, with clang
Apple clang version 11.0.3 (clang-1103.0.32.62)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

g++ -std=c++11  -fno-PIE -c  -DIN_GCC_FRONTEND -g  -DIN_GCC   
-fno-strict-aliasing -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W
-Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-error=format-diag
-Wno-format -Wmissing-format-attribute -Woverloaded-virtual -pedantic
-Wno-long-long -Wno-variadic-macros -Wno-overlength-strings   -DHAVE_CONFIG_H
-I. -Ic -I../../gcc -I../../gcc/c -I../../gcc/../include -I./../intl
-I../../gcc/../libcpp/include -I/usr/local//include -I/usr/local//include 
-I../../gcc/../libdecnumber -I../../gcc/../libdecnumber/dpd -I../libdecnumber
-I../../gcc/../libbacktrace -I/usr/local//include  -o c/gimple-parser.o -MT
c/gimple-parser.o -MMD -MP -MF c/.deps/gimple-parser.TPo
../../gcc/c/gimple-parser.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is
deprecated [-Wdeprecated]
warning: unknown warning option '-Werror=format-diag'
[-Wunknown-warning-option]
In file included from ../../gcc/c/gimple-parser.c:22:
In file included from ../../gcc/coretypes.h:476:
In file included from ../../gcc/hash-table.h:248:
../../gcc/vec.h:543:13: warning: 'constexpr' non-static member function will
not be implicitly 'const' in C++14; add
  'const' to avoid a change in behavior [-Wconstexpr-not-const]
  CONSTEXPR operator vec () { return vec(); }
^
 const
In file included from ../../gcc/c/gimple-parser.c:28:
../../gcc/cgraph.h:1741:1: warning: 'cgraph_edge' defined as a class here but
previously declared as a struct; this is
  valid, but may result in linker errors under the Microsoft C++ ABI
[-Wmismatched-tags]
class GTY((chain_next ("%h.next_caller"), chain_prev ("%h.prev_caller"),
^
../../gcc/cgraph.h:903:1: note: did you mean class here?
struct cgraph_edge;
^~
class
../../gcc/coretypes.h:144:1: note: did you mean class here?
struct cgraph_edge;
^~
class
In file included from ../../gcc/c/gimple-parser.c:28:
../../gcc/cgraph.h:2254:10: warning: struct 'cgraph_edge' was previously
declared as a class; this is valid, but may
  result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags]
  friend struct cgraph_edge;
 ^
../../gcc/cgraph.h:1742:16: note: previous use is here
   for_user)) cgraph_edge
  ^
../../gcc/cgraph.h:2254:10: note: did you mean class here?
  friend struct cgraph_edge;
 ^~
 class
../../gcc/cgraph.h:2662:32: warning: struct 'cgraph_edge' was previously
declared as a class; this is valid, but may
  result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags]
void initialize_inline_failed (struct cgraph_edge *);
   ^
../../gcc/cgraph.h:1742:16: note: previous use is here
   for_user)) cgraph_edge
  ^
../../gcc/cgraph.h:2662:32: note: did you mean class here?
void initialize_inline_failed (struct cgraph_edge *);
   ^~
   class
../../gcc/cgraph.h:2663:28: warning: struct 'cgraph_edge' was previously
declared as a class; this is valid, but may
  result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags]
bool speculation_useful_p (struct cgraph_edge *e, bool anticipate_inlining);
   ^
../../gcc/cgraph.h:1742:16: note: previous use is here
   for_user)) cgraph_edge
  ^
../../gcc/cgraph.h:2663:28: note: did you mean class here?
bool speculation_useful_p (struct cgraph_edge *e, bool anticipate_inlining);
   ^~
   class
In file included from ../../gcc/c/gimple-parser.c:44:
In file included from ../../gcc/tree-vrp.h:23:
../../gcc/value-range.h:347:1: error: static declaration of 'gt_ggc_mx' follows
non-static declaration
gt_ggc_mx (int_range *x)
^
../../gcc/value-range.h:150:37: note: previous declaration is here
  template  friend void gt_ggc_mx (int_range *);
^
../../gcc/value-range.h:358:1: error: static declaration of 'gt_pch_nx' follows
non-static declaration
gt_pch_nx (int_range *x)
^
../../gcc/value-range.h:151:37: note: previous declaration is here
  template  friend void gt_pch_nx (int_range *);
^