[Bug tree-optimization/55869] different bit shift/or optimization.

2021-05-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55869

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #3 from Andrew Pinski  ---
This is actually already fixed for GCC 11 by the patch which fixed PR 97690 and
is really a dup of it.

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

[Bug tree-optimization/97690] (cond ? 2 : 0) is not optimized to int(cond) << 1

2021-05-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97690

Andrew Pinski  changed:

   What|Removed |Added

 CC||pawel_sikora at zoho dot com

--- Comment #6 from Andrew Pinski  ---
*** Bug 55869 has been marked as a duplicate of this bug. ***

[Bug tree-optimization/58195] Missed optimization opportunity when returning a conditional

2021-05-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58195

Andrew Pinski  changed:

   What|Removed |Added

 Depends on||25290
 CC||pinskia at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |pinskia at gcc dot 
gnu.org
 Status|NEW |ASSIGNED

--- Comment #5 from Andrew Pinski  ---
Mine,  After PR 25290, the below match.pd pattern will just work :).

(In reply to Marc Glisse from comment #3) 
> and something that could be auto-generated from a pattern like:
> (cond (ne @0 0) (negate @0) 0) -> (negate @0)


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25290
[Bug 25290] PHI-OPT could be rewritten so that is uses match

[Bug bootstrap/97499] build dos cross compiler ICE

2021-05-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97499

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #3 from Andrew Pinski  ---
No feedback in over 6 months so closing.

[Bug target/100734] [12 Regression] /test/gnu/gcc/objdir/gcc/include-fixed/stdlib.h:291:8: internal compiler error: in from_mode_char, at attribs.h:304

2021-05-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100734

Andrew Pinski  changed:

   What|Removed |Added

  Component|bootstrap   |target
Summary|/test/gnu/gcc/objdir/gcc/in |[12 Regression]
   |clude-fixed/stdlib.h:291:8: |/test/gnu/gcc/objdir/gcc/in
   |internal compiler error: in |clude-fixed/stdlib.h:291:8:
   |from_mode_char, at  |internal compiler error: in
   |attribs.h:304   |from_mode_char, at
   ||attribs.h:304
   Target Milestone|--- |12.0
   Keywords||build, ice-on-valid-code

[Bug target/100734] [12 Regression] /test/gnu/gcc/objdir/gcc/include-fixed/stdlib.h:291:8: internal compiler error: in from_mode_char, at attribs.h:304

2021-05-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100734

--- Comment #1 from Andrew Pinski  ---


  /* The character codes corresponding to all the access modes.  */
  static constexpr char mode_chars[5] = { '-', 'r', 'w', 'x', '^' };
Is this after building stage 1 or after building stage 2 ?

[Bug tree-optimization/100732] [11/12 Regression] ICE with -Wall: in ao_ref_init_from_ptr_and_range, at tree-ssa-alias.c:824 since r11-959-gb825a22890740f34

2021-05-24 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100732

Martin Liška  changed:

   What|Removed |Added

 Ever confirmed|0   |1
Summary|ICE with -Wall: in  |[11/12 Regression] ICE with
   |ao_ref_init_from_ptr_and_ra |-Wall: in
   |nge, at |ao_ref_init_from_ptr_and_ra
   |tree-ssa-alias.c:824|nge, at
   ||tree-ssa-alias.c:824 since
   ||r11-959-gb825a22890740f34
 CC||marxin at gcc dot gnu.org,
   ||msebor at gcc dot gnu.org
   Last reconfirmed||2021-05-24
 Status|UNCONFIRMED |NEW

--- Comment #1 from Martin Liška  ---
Started with r11-959-gb825a22890740f34.

[Bug c++/100737] New: g++ segfaults in template substitution

2021-05-24 Thread henrik.nortamo at csc dot fi via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100737

Bug ID: 100737
   Summary: g++ segfaults in template substitution
   Product: gcc
   Version: 10.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: henrik.nortamo at csc dot fi
  Target Milestone: ---

Created attachment 50860
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50860&action=edit
version and configuration information for all the gcc versions for which the
issue has been observed.

The following code crashes g++, when compiled with   
g++ min.cpp


min.cpp
"""
template using __bool_constant=int;

template
struct duration { 

static constexpr int fun()
{ 
return 0;
} 

template
using __is_harmonic
= __bool_constant<(&duration::fun)()>;
template 
static constexpr __is_harmonic<_P2> a=55;
};
int main(){
duration g;
return g.a;

}
"""
Error produced is:

"""
min.cpp: In substitution of 'template template using
__is_harmonic = __bool_constant::fun()> [with _Period2 = _P2; R =
R]':
min.cpp:15:43:   required from here
min.cpp:13:43: internal compiler error: Segmentation fault
   13 | = __bool_constant<(&duration::fun)()>;
  |   ^~
0xc5e1af crash_signal
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/toplev.c:328
0x783e05 finish_call_expr(tree_node*, vec**, bool,
bool, int)
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/semantics.c:2587
0x752672 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/pt.c:20191
0x763de4 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/pt.c:19274
0x763de4 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/pt.c:18886
0x768926 tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/pt.c:13225
0x7562cd tsubst(tree_node*, tree_node*, int, tree_node*)
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/pt.c:15184
0x761c43 tsubst_decl
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/pt.c:14641
0x76dff2 instantiate_template_1
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/pt.c:20947
0x756414 instantiate_template(tree_node*, tree_node*, int)
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/pt.c:21004
0x756414 instantiate_alias_template
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/pt.c:21042
0x756414 tsubst(tree_node*, tree_node*, int, tree_node*)
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/pt.c:15185
0x76067f lookup_template_class_1
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/pt.c:9860
0x760d5c lookup_template_class(tree_node*, tree_node*, tree_node*, tree_node*,
int, int)
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/pt.c:10136
0x783a6d finish_template_type(tree_node*, tree_node*, int)
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/semantics.c:3408
0x72ad1f cp_parser_template_id
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/parser.c:16750
0x72af8c cp_parser_class_name
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/parser.c:23727
0x727c31 cp_parser_qualifying_entity
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/parser.c:6780
0x727c31 cp_parser_nested_name_specifier_opt
   
/local_scratch/build/spack-stage/nortamoh/spack-stage-gcc-10.3.0-viumsxju75yhxz3ydlpn5vquya47elp7/spack-src/gcc/cp/parser.c:6462
0x716d5a cp_parser_constructor_declarator_p
   
/local_scratch

[Bug c++/100737] g++ segfaults in template substitution

2021-05-24 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100737

Martin Liška  changed:

   What|Removed |Added

 Ever confirmed|0   |1
   Last reconfirmed||2021-05-24
 Status|UNCONFIRMED |NEW
   Keywords||rejects-valid
 CC||jason at gcc dot gnu.org,
   ||marxin at gcc dot gnu.org

--- Comment #1 from Martin Liška  ---
Likely started with r7-755-g23cb72663051cd3f, it was rejected before the
revision. Note that clang accepts it.

[Bug middle-end/100738] New: Gimple failed to simplify ((v4si) ~a) < 0 ? c : d to ((v4si)a) >= 0 ? c : d

2021-05-24 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100738

Bug ID: 100738
   Summary: Gimple failed to simplify ((v4si) ~a) < 0 ? c : d to
((v4si)a) >= 0 ? c : d
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: crazylht at gmail dot com
CC: hjl.tools at gmail dot com
  Target Milestone: ---
  Host: x86_64-pc-linux-gnu
Target: x86_64-*-* i?86-*-*

cat test.c



typedef int v4si __attribute__((vector_size (16)));
typedef char v16qi __attribute__((vector_size (16)));
v4si
foo (v16qi a, v4si b, v4si c, v4si d)
{
return ((v4si)~a) < 0 ? c : d;
}

gcc -Ofast -mavx2

foo(char __vector(16), int __vector(4), int __vector(4), int __vector(4)):
vpcmpeqd%xmm1, %xmm1, %xmm1
vpxor   %xmm1, %xmm0, %xmm0
vblendvps   %xmm0, %xmm2, %xmm3, %xmm0
ret

it can be better with 

vblendvps   xmm0, xmm3, xmm2, xmm0

gimple failed to simplify  ((v4si)~a) < 0 ? c : d to ((v4si)a) >= 0 ? c : d

With https://gcc.gnu.org/pipermail/gcc-patches/2021-May/571056.html, i observe
rtl also won't simplify things like (vec_merge op1 op2 (lt (subreg (not op3) 0)
const0_rtx)) to (vec_merge op2 op1 (lt (subreg op3 0) const0_rtx))

[Bug c++/97938] [9/10 Regression] g++ crash when inferring type of auto parameter pack in lambda capture

2021-05-24 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97938

--- Comment #9 from CVS Commits  ---
The releases/gcc-9 branch has been updated by Christophe Lyon
:

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

commit r9-9553-gba19b5543d31a76f494e76c32a548d70ac4d3cc1
Author: Christophe Lyon 
Date:   Mon May 24 07:35:44 2021 +

c++: lambda pack init-capture within generic lambda

In gcc-9-branch, the testsuite does not support the c++20 target
selector: use c++2a instead, to avoid Dejagnu errors when running the
testsuite.

2021-05-24  Christophe Lyon  

PR c++/97938
gcc/testsuite/
* g++.dg/cpp2a/lambda-pack-init6.C: Use c++2a target selector.

[Bug middle-end/100738] Gimple failed to simplify ((v4si) ~a) < 0 ? c : d to ((v4si)a) >= 0 ? c : d

2021-05-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100738

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||missed-optimization
   Severity|normal  |enhancement

--- Comment #1 from Andrew Pinski  ---
One thing is VCE<~A> should be converted to ~VCE which might allow ~B < 0 to
be converted to B >= 0.

On RTL, it might be useful to still simplify:
(subreg (not op3) 0)
To:
(not (subreg op3 0))

[Bug c++/100739] New: Definition of function template doesn't match declaration

2021-05-24 Thread raffael at casagrande dot ch via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100739

Bug ID: 100739
   Summary: Definition of function template doesn't match
declaration
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: raffael at casagrande dot ch
  Target Milestone: ---

The following code fails to compile with the newest gcc (gcc 12.0.0 20210523):
-
#include 
#include 

template 
requires std::integral using debug_t = T;

template
struct X {
  auto operator()(std::integral auto const& i) const ->
std::array,1>;
};

template
auto X::operator()(std::integral auto const& i) const ->
std::array,1>{

};
--
The error message is:
--
:13:6: error: no declaration matches 'std::array,
1> X::operator()(const auto:4&) const'
   13 | auto X::operator()(std::integral auto const& i) const ->
std::array,1>{
  |  ^~~~
:9:8: note: candidate is: 'template template 
requires  integral std::array, 1>
X::operator()(const auto:3&) const'
9 |   auto operator()(std::integral auto const& i) const ->
std::array,1>;
  |^~~~
:8:8: note: 'struct X' defined here
8 | struct X {
  |^
--

If we further simplify the code in one of the following ways, the problem
disappears:
1) If we remove the `std::array<...>`
2) If we remove the requires clause in the definition of debug_t

[Bug libstdc++/91383] C++17 should remove some library feature deprecated in C++14

2021-05-24 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91383

--- Comment #8 from Jonathan Wakely  ---
Why don't you have CI that builds with other implementations, so that your
co-workers are told automatically when they do that? It seems like you're
expecting GCC to solve a non-technical problem with your team.

[Bug c++/100739] Definition of function template doesn't match declaration

2021-05-24 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100739

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2021-05-24
 Ever confirmed|0   |1
   Keywords||rejects-valid

[Bug bootstrap/100345] gcc 11.1 build "make -n install" fails linking gcov undefined reference to std::__throw_bad_array_new_length()

2021-05-24 Thread forum at docmax dot tk via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100345

DocMAX  changed:

   What|Removed |Added

 CC||forum at docmax dot tk

--- Comment #6 from DocMAX  ---
check: https://github.com/xenia-project/xenia/issues/1819

[Bug libstdc++/91383] C++17 should remove some library feature deprecated in C++14

2021-05-24 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91383

--- Comment #9 from Jonathan Wakely  ---
Some of the removed features are missing deprecated attributes, which should be
fixed.

[Bug other/100735] -fno-trampolines doc wrongly implies it affects C, C++ etc.

2021-05-24 Thread bruno at clisp dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100735

Bruno Haible  changed:

   What|Removed |Added

 CC||bruno at clisp dot org

--- Comment #1 from Bruno Haible  ---
(In reply to Paul Eggert from comment #0)
> it is silently ignored for these languages, and I assume for any language
> other than Ada.

Confirmed: flag_trampolines matters only for calls with the ECF_BY_DESCRIPTOR
bit set or CALL_EXPR_BY_DESCRIPTOR being true. Other than from the Ada backend,
such calls are generated only from gimple nodes with subcode bit
GF_CALL_BY_DESCRIPTOR set. GF_CALL_BY_DESCRIPTOR gets set through
gimple_call_set_by_descriptor with argument true, and such calls exist only as
consequence of tree nodes with CALL_EXPR_BY_DESCRIPTOR being true.

[Bug debug/100725] dwarf error with --whole-program

2021-05-24 Thread fx at gnu dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100725

--- Comment #2 from Dave Love  ---
(In reply to Jakub Jelinek from comment #1)
> Those binutils are too old for dwarf5.
> When the linker doesn't print any diagnostics, that isn't a big deal, but if
> it needs to diagnose something and parse DWARF for that, you need 2.35 or
> later.

Does that mean you can't reasonably use 11 on most distributions without
explicitly using -gdwarf-4?  The release notes suggested to me it would still
work, just not with full functionality somehow, and there is some adjustment
for the binutils version.  Is there some way to configure it to default to
DWARF 4 other than, I guess, adding specs to treat -g as -gdwarf-4?

[Bug fortran/100724] -fwhole-program breaks module use

2021-05-24 Thread fx at gnu dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100724

--- Comment #2 from Dave Love  ---
The manual says not to use -flto with -fwhole-program.  Is that misleading?

I checked self-built gfortran 10.2.0 again, and it definitely works for me
without -flto on Debian 10, but it fails with Red Hat devtoolset's 10.2.1 on
RHEL7.  Odd...

[Bug middle-end/100733] -fcompare-debug failure for pr85213.c at -O1 -fdisable-tree-phiopt2

2021-05-24 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100733

Jakub Jelinek  changed:

   What|Removed |Added

 CC||aoliva at gcc dot gnu.org,
   ||jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek  ---
I think this is another -gstatement-frontiers issue.
Without -g, during folding we are folding a COND_EXPR with x != 0, 0 and 1
arguments, but with -g it has a STATEMENT_LIST with DEBUG_BEGIN_STMT and x != 0
And that one e.g. in fold_ternary_loc doesn't satisfy truth_value_p, so the
  /* Convert A ? 0 : 1 to !A.  This prefers the use of NOT_EXPR
 over COND_EXPR in cases such as floating point comparisons.  */
  if (integer_zerop (op1)
  && code == COND_EXPR
  && integer_onep (op2)
  && !VECTOR_TYPE_P (type)
  && truth_value_p (TREE_CODE (arg0)))
return fold_convert_loc (loc, type,
 invert_truthvalue_loc (loc, arg0));
folding doesn't happen.  In the past, most of the -gstatement-frontiers related
-fdebug-compare bugfixes were about making sure we gimplify it the same (and we
still have some unresolved (almost unresolvable) ones).  But this shows whole
new category of bugs, the folders aren't really prepared for it, guess neither
generic-match.c (or its callers) or fold-const.c.
E.g. fold_ternary_loc starts with
  if (op0)
{
  arg0 = op0;
  STRIP_NOPS (arg0);
}
shouldn't we use expr_single in that code somehow?  Like after the STRIP_NOPS
add
  do
{
  tree narg0 = expr_single (arg0);
  if (narg0 == arg0)
break;
  arg0 = narg0;
  STRIP_NOPS (arg0);
}
  while (1);
perhaps in some macro/inline fn?
Or reconsider the DEBUG_BEGIN_STMT stuff.

[Bug tree-optimization/100740] New: wrong code at -O1 and above on x86_64-linux-gnu

2021-05-24 Thread zhendong.su at inf dot ethz.ch via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100740

Bug ID: 100740
   Summary: wrong code at -O1 and above on x86_64-linux-gnu
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: zhendong.su at inf dot ethz.ch
  Target Milestone: ---

This seems to be quite long-latent, impacting GCC 9.1 and later. 

[636] % gcctk -v
Using built-in specs.
COLLECT_GCC=gcctk
COLLECT_LTO_WRAPPER=/local/suz-local/software/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-trunk/configure --disable-bootstrap
--prefix=/local/suz-local/software/local/gcc-trunk --enable-languages=c,c++
--disable-werror --enable-multilib --with-system-zlib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20210524 (experimental) [master revision
dc084c487e9:bd7ae6b8ef8:9d38e096c5e3b1c2233b28d0e6ff8ee81517af56] (GCC) 
[637] % 
[637] % gcctk -O0 small.c; ./a.out
[638] % 
[638] % gcctk -O1 small.c
[639] % ./a.out
Aborted
[640] % 
[640] % cat small.c
unsigned a, b;
int main() {
  unsigned c = 0;
  for (a = 0; a < 2; a++)
for (b = 0; b < 2; b++)
  if (++c < a)
__builtin_abort ();
  return 0;
}

[Bug middle-end/100733] [8/9/10/11/12 Regression] -fcompare-debug failure for pr85213.c at -O1 -fdisable-tree-phiopt2

2021-05-24 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100733

Jakub Jelinek  changed:

   What|Removed |Added

Summary|-fcompare-debug failure for |[8/9/10/11/12 Regression]
   |pr85213.c at -O1|-fcompare-debug failure for
   |-fdisable-tree-phiopt2  |pr85213.c at -O1
   ||-fdisable-tree-phiopt2
   Target Milestone|--- |9.4

--- Comment #3 from Jakub Jelinek  ---
-gstatement-frontiers has been introduced in
r8-5241-g8697bf9f46f36168ddba5752db582e673e3cbe8c or so.

[Bug c++/100741] New: [enhancement] Should show better error message if using ‘typedef’ instead of ‘using’.

2021-05-24 Thread cyp561 at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100741

Bug ID: 100741
   Summary: [enhancement] Should show better error message if
using ‘typedef’ instead of ‘using’.
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: cyp561 at gmail dot com
  Target Milestone: ---

Test code:
  typedef Rng = std::mt19937_64;

Actual error message:
  error: ‘Rng’ does not name a type

Useful error message:
  error: Used ‘typedef’ with ‘using’ syntax
   11 | typedef Rng = std::mt19937_64;
^~~
using

[Bug c++/100741] [enhancement] Should show better error message if using ‘typedef’ instead of ‘using’.

2021-05-24 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100741

Jonathan Wakely  changed:

   What|Removed |Added

   Last reconfirmed||2021-05-24
 Ever confirmed|0   |1
   Keywords||diagnostic
 Status|UNCONFIRMED |NEW

[Bug c++/100741] [enhancement] Should show better error message if using ‘typedef’ instead of ‘using’.

2021-05-24 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100741

--- Comment #1 from Jonathan Wakely  ---
Complete testcase:

struct X { };
typedef Rng = X;

[Bug tree-optimization/100740] [9/10/11/12 Regression] wrong code at -O1 and above on x86_64-linux-gnu since r9-4145

2021-05-24 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100740

Jakub Jelinek  changed:

   What|Removed |Added

Summary|wrong code at -O1 and above |[9/10/11/12 Regression]
   |on x86_64-linux-gnu |wrong code at -O1 and above
   ||on x86_64-linux-gnu since
   ||r9-4145
   Last reconfirmed||2021-05-24
 Ever confirmed|0   |1
   Target Milestone|--- |9.4
 Status|UNCONFIRMED |NEW
   Priority|P3  |P2
 CC||amker at gcc dot gnu.org,
   ||jakub at gcc dot gnu.org
Version|unknown |11.1.1

--- Comment #1 from Jakub Jelinek  ---
Started with r9-4145-ga81e2c6240655f60a49c16e0d8bbfd2ba40bba51

[Bug target/100734] [12 Regression] /test/gnu/gcc/objdir/gcc/include-fixed/stdlib.h:291:8: internal compiler error: in from_mode_char, at attribs.h:304

2021-05-24 Thread dave.anglin at bell dot net via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100734

--- Comment #2 from dave.anglin at bell dot net ---
It's after stage1.  I'm bisecting.

[Bug bootstrap/100345] gcc 11.1 build "make -n install" fails linking gcov undefined reference to std::__throw_bad_array_new_length()

2021-05-24 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100345

--- Comment #7 from Jonathan Wakely  ---
(In reply to DocMAX from comment #6)
> check: https://github.com/xenia-project/xenia/issues/1819

I don't think this is related, I think you're just linking wrong.

[Bug tree-optimization/100740] [9/10/11/12 Regression] wrong code at -O1 and above on x86_64-linux-gnu since r9-4145

2021-05-24 Thread amker at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100740

bin cheng  changed:

   What|Removed |Added

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

--- Comment #2 from bin cheng  ---
mine.  Sorry for the breakage.

[Bug c++/100742] New: False positive -Wignored-attributes with std::map and aligned(8) attribute

2021-05-24 Thread liavonlida at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100742

Bug ID: 100742
   Summary: False positive -Wignored-attributes with std::map and
aligned(8) attribute
   Product: gcc
   Version: 9.3.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: liavonlida at gmail dot com
  Target Milestone: ---

Check following code:

#include 

template 
class VecBase
{
typedef __attribute__((aligned(8))) Type value_data;
};

typedef std::map test_passed;

struct S1
{
  inline void f1(VecBase p1) {}
};

typedef std::map test_failed;

int main()
{
  return 0;
}


This leads to -Wignored-attributes warning:

:16:32: warning: ignoring attributes on template argument 'const
double' [-Wignored-attributes]
   16 | typedef std::map test_failed;
  | 

This looks very strange and false positive. 
Could be reproduced with GCC from 6 to 10 versions. GCC 11 is ok with this
code. Other compilers are also ok. I tried on https://godbolt.org/.

[Bug target/99960] MVE: Wrong code storing V2DI vector

2021-05-24 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99960

--- Comment #5 from CVS Commits  ---
The releases/gcc-11 branch has been updated by Alex Coplan
:

https://gcc.gnu.org/g:32d4fa7d3792566b378ba0de003d50c0301de3a0

commit r11-8460-g32d4fa7d3792566b378ba0de003d50c0301de3a0
Author: Alex Coplan 
Date:   Mon May 10 09:46:45 2021 +0100

arm: Fix wrong code with MVE V2DImode loads and stores [PR99960]

As the PR shows, we currently miscompile V2DImode loads and stores for
MVE.  We're currently using 64-bit loads/stores, but need to be using
128-bit vector loads and stores. Fixed thusly.

Some intrinsics tests were checking that we (incorrectly) used the
64-bit loads/stores: these have been updated.

gcc/ChangeLog:

PR target/99960
* config/arm/mve.md (*mve_mov): Simplify output code. Use
vldrw.u32 and vstrw.32 for V2D[IF]mode loads and stores.

gcc/testsuite/ChangeLog:

PR target/99960
* gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_s64.c:
Update now that we're (correctly) using full 128-bit vector
loads/stores.
* gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_u64.c:
Likewise.
* gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_s64.c:
Likewise.
* gcc.target/arm/mve/intrinsics/vldrdq_gather_base_wb_z_u64.c:
Likewise.
* gcc.target/arm/mve/intrinsics/vuninitializedq_int.c: Likewise.
* gcc.target/arm/mve/intrinsics/vuninitializedq_int1.c:
Likewise.

(cherry picked from commit 7596c762137f26f495b53ec93471273887832e31)

[Bug fortran/100743] New: Segmentation fault passing a polymorphic as an optional argument

2021-05-24 Thread jhaiduce at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100743

Bug ID: 100743
   Summary: Segmentation fault passing a polymorphic as an
optional argument
   Product: gcc
   Version: 11.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jhaiduce at gmail dot com
  Target Milestone: ---

The following program crashes with a segmentation fault:

```
module my_exceptions

  implicit none

  type::error_container
  end type error_container

  type, abstract::base_exception
  end type base_exception

  type, extends(base_exception)::exception
  end type exception

contains

  function new_exception()
type(exception)::new_exception
  end function new_exception

  subroutine throw(status,exc)
type(error_container), intent(inout), optional::status
class(base_exception)::exc
  end subroutine throw

  subroutine test_throw(status)
class(error_container), intent(inout), optional::status

call throw(status,new_exception())

  end subroutine test_throw

end module my_exceptions

program test
  use my_exceptions, ONLY: error_container, test_throw
  implicit none
  type(error_container)::status

  call test_throw()

end program test
```

It works as expected when compiled with ifort. With gfortran it produces a
segmentation fault. The problem occurs with multiple versions of gfortran (have
tried 4.9.4, 7.5.0, 10.2.0, 10.3.0, 11.1.0).

The segmentation fault does not occur if the optional status argument is
declared as non-polymorphic type (i.e. ```type(error_container)``` instead of
```class(error_container)```).

[Bug gcov-profile/100744] New: Undefined symbol __gcov_flush when building with -fprofile-arcs

2021-05-24 Thread raffael at casagrande dot ch via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100744

Bug ID: 100744
   Summary: Undefined symbol __gcov_flush when building with
-fprofile-arcs
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: gcov-profile
  Assignee: unassigned at gcc dot gnu.org
  Reporter: raffael at casagrande dot ch
CC: marxin at gcc dot gnu.org
  Target Milestone: ---

Trying to link the following simple program with `-fprofile-arcs` fails:
--
extern "C" void __gcov_flush();

int main() {
  __gcov_flush();
}
--
Command line: `g++ source.cc -fprofile-arcs`

This used to work with gcc-10.3. It seems to be a regression of gcc-11.1/trunk?

[Bug target/100745] New: GCC generates suboptimal assembly from vector extensions on AArch64

2021-05-24 Thread ajidala at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100745

Bug ID: 100745
   Summary: GCC generates suboptimal assembly from vector
extensions on AArch64
   Product: gcc
   Version: 10.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ajidala at gmail dot com
  Target Milestone: ---

Created attachment 50861
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50861&action=edit
The profile.c file minimal benchmark/test case

As part of an attempt to make mpv's scaletempo2 audio filter faster, two
vectorised implementations were written:

The first one, mine, uses aarch64 intrinsics. It shows a 3.14x speedup on my
test system, and is referred to as "new" or "nicolas" in the code.

The second one, by haasn, also referred to as "niklas" in the code, uses GCC's
vector extensions to automatically generate vectorised code for a wide variety
of architectures. It shows a slower speedup on my system and another aarch64
test system (1.45x) but shows a much better speedup on x86_64 (>2x for generic,
>10x for -march=native on this zen+ laptop thanks to avx).

Clang, on the other hand compiles the vector extension code down to something
more efficient than gcc, beating my intrinsics SIMD (even in absolute terms
compared to gcc). I believe this is due to a bug in gcc making it produce
subpar vector assembly on aarch64 in this case.

Since we'd rather not keep platform specific vector code around in mpv, and
clang's codegen is overall worse in non-vector code, we'd much appreciate it if
someone could look into what gcc is tripping over here.

Attached is the minimal microbenchmark profile.c, which needs no special
options or includes aside from stdio so no .i file if that's alright. My test
system is a cortex-a53 in-order core, though -mtune -march for that does not
fix it, and the problem also exhibits itself on a cortex-a55 in-order core.

The test was compiled with gcc -O3 -o profile profile.c, though it is worth
noting that the pure C implementation performs much better under -O2 (possibly
a separate bug) while both SIMD versions are largely unaffected by this.

GCC Version: 10.2.0
Distribution: Arch Linux ARM
Platform: ROCK64 with a RK3328 (4x Cortex A-53, 2GB RAM)

The options used for building gcc can be found here, in build():
https://archlinuxarm.org/packages/aarch64/gcc/files/PKGBUILD

I've looked at the disassembly of gcc trunk on godbolt, but it did not look
significantly different enough to me to think this has already been fixed in
trunk. If required, I can try building gcc trunk from source.

[Bug gcov-profile/100744] Undefined symbol __gcov_flush when building with -fprofile-arcs

2021-05-24 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100744

Martin Liška  changed:

   What|Removed |Added

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

--- Comment #1 from Martin Liška  ---
Note that __gcov_flush() is not part of the provided API:
https://gcc.gnu.org/onlinedocs/gcc/Gcov-and-Optimization.html

We only support __gcov_reset and __gcov_dump.

[Bug gcov-profile/100744] Undefined symbol __gcov_flush when building with -fprofile-arcs

2021-05-24 Thread raffael at casagrande dot ch via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100744

--- Comment #2 from Raffael Casagrande  ---
Oh, I didn't notice this change. Thanks for pointing this out!

[Bug fortran/86470] [8/9/10/11 Regression] [OOP] ICE with OMP

2021-05-24 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86470

--- Comment #15 from CVS Commits  ---
The master branch has been updated by Tobias Burnus :

https://gcc.gnu.org/g:0e3b3b77e13cac764a135a7118613c47686e0a62

commit r12-1016-g0e3b3b77e13cac764a135a7118613c47686e0a62
Author: Tobias Burnus 
Date:   Mon May 24 16:50:51 2021 +0200

OpenMP/Fortran: Handle polymorphic scalars in data-sharing FIRSTPRIVATE
[PR86470]

gcc/fortran/ChangeLog:

PR fortran/86470
* trans-expr.c (gfc_copy_class_to_class): Add unshare_expr.
* trans-openmp.c (gfc_is_polymorphic_nonptr,
gfc_is_unlimited_polymorphic_nonptr): New.
(gfc_omp_clause_copy_ctor, gfc_omp_clause_dtor): Handle
polymorphic scalars.

libgomp/ChangeLog:

PR fortran/86470
* testsuite/libgomp.fortran/class-firstprivate-1.f90: New test.
* testsuite/libgomp.fortran/class-firstprivate-2.f90: New test.
* testsuite/libgomp.fortran/class-firstprivate-3.f90: New test.

gcc/testsuite/ChangeLog:

PR fortran/86470
* gfortran.dg/gomp/class-firstprivate-1.f90: New test.
* gfortran.dg/gomp/class-firstprivate-2.f90: New test.
* gfortran.dg/gomp/class-firstprivate-3.f90: New test.
* gfortran.dg/gomp/class-firstprivate-4.f90: New test.

[Bug fortran/86470] [8/9/10/11 Regression] [OOP] ICE with OMP

2021-05-24 Thread burnus at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86470

--- Comment #16 from Tobias Burnus  ---
(In reply to Tobias Burnus from comment #14)
> It looks as if the committed patch handles this specific testcase correctly,
> however, there are still many issues with PRIVATE and FIRSTPRIVATE with
> polymorphic list items.
> 
> See PR99519 for the follow-up PR, which already contains a link to a
> FIRSTPRIVATE patch (but not yet for PRIVATE).

I forgot to update the PR of the commit of comment 15 to the follow-up PR...

[Bug fortran/99519] [OpenMP] PRIVATE/FIRSTPRIVATE with CLASS / polymorphic list items

2021-05-24 Thread burnus at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99519

--- Comment #1 from Tobias Burnus  ---
The patch was now committed as:

commit r12-1016-g0e3b3b77e13cac764a135a7118613c47686e0a62
Author: Tobias Burnus 
Date:   Mon May 24 16:50:51 2021 +0200

OpenMP/Fortran: Handle polymorphic scalars in data-sharing FIRSTPRIVATE
[PR86470]

(The PR is the original PR instead of the one of this follow-up PR.)

To be done:

Missing:
* PRIVATE - which causes still ICEs, even though not for PR86470.
  → use dynamic type of var, apply default initializers
* Polymorphic arrays not supported by FIRSTPRIVATE patch
* Check that for TYPE (the patch was for CLASS),
  the default initializer is applied - and what about the finalizer?

[Bug go/100537] Bootstrap-O3 and bootstrap-debug fail on 32-bit ARM after gcc-12-657-ga076632e274a

2021-05-24 Thread ian at airs dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100537

--- Comment #16 from Ian Lance Taylor  ---
I have a patch for this.

[Bug c++/100746] New: NRVO should not introduce aliasing

2021-05-24 Thread antoshkka at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100746

Bug ID: 100746
   Summary: NRVO should not introduce aliasing
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: antoshkka at gmail dot com
  Target Milestone: ---

Consider the example:

struct NrvoPassed {
NrvoPassed() = default;
NrvoPassed(const NrvoPassed&);
NrvoPassed(NrvoPassed&&);

int i = 0;
};

auto test(int* data) {
NrvoPassed x;
*data = 3;
if (x.i != 0) __builtin_abort();
return x;
}


Resulting assembly contains call to `abort`:

test(int*):
  mov DWORD PTR [rdi], 0
  mov DWORD PTR [rsi], 3
  mov edx, DWORD PTR [rdi]
  test edx, edx
  jne .L3
  mov rax, rdi
  ret
test(int*) [clone .cold]:
.L3:
  push rax
  call abort

Optimizer thinks that the value of `x.i` is aliased by `data`, however `data`
is a local variable and it's address could not leak before the object is
constructed.

Some other compilers already have the proposed optimization:
https://godbolt.org/z/aqdveadnE

Adding `__restrict` to `data` fixes the codegen:

test2(int*):
  mov DWORD PTR [rdi], 0
  mov rax, rdi
  mov DWORD PTR [rsi], 3
  ret

Probably `__restrict` should be always added to the storage address passed for
NRVO.

[Bug c++/100368] Missing guaranteed elision in constexpr evaluation

2021-05-24 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100368

Patrick Palka  changed:

   What|Removed |Added

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

[Bug c++/100666] [9/10/11/12 Regression] warning: ignoring return value of 'constexpr _Tp&& std::forward(typename std::remove_reference<_Tp>::type&) [with _Tp = std::nullptr_t; ...]', declared with at

2021-05-24 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100666

Jakub Jelinek  changed:

   What|Removed |Added

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

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

Untested fix.

[Bug libgcc/61238] Getting Linker error

2021-05-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61238

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #2 from Andrew Pinski  ---
No feedback in almost 5 years and it has been over 7 years since this was filed
without enough information on how to reproduce the bug so closing as invalid.

[Bug lto/81612] lto1: internal compiler error: Segmentation fault

2021-05-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81612

Andrew Pinski  changed:

   What|Removed |Added

 Resolution|--- |DUPLICATE
 Status|WAITING |RESOLVED

--- Comment #7 from Andrew Pinski  ---
No feedback in almost 4 years and GCC 6.x is no longer supported.  Just closing
as a dup of bug 79760.

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

[Bug lto/79760] ICE in type_in_anonymous_namespace_p in ipa-utils.h:219

2021-05-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79760

Andrew Pinski  changed:

   What|Removed |Added

 CC||vctrex at mailfence dot com

--- Comment #8 from Andrew Pinski  ---
*** Bug 81612 has been marked as a duplicate of this bug. ***

[Bug rtl-optimization/81955] corrupted double-linked list (not small)

2021-05-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81955

Andrew Pinski  changed:

   What|Removed |Added

 Ever confirmed|1   |0
 Status|WAITING |UNCONFIRMED

[Bug other/78889] GCC fails to build due to graphite-dependences.c

2021-05-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78889

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #4 from Andrew Pinski  ---
Closing as invalid as there has been no feedback in almost 4 years after saying
there was a solution.

[Bug c/84187] -O0 fails inline assembly compile

2021-05-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84187

Andrew Pinski  changed:

   What|Removed |Added

 Ever confirmed|1   |0
 Status|WAITING |UNCONFIRMED

[Bug c++/84862] collect2: fatal error: lto-wrapper returned 1 exit status

2021-05-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84862

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #2 from Andrew Pinski  ---
No testcase provided in over 3 years so closing as invalid.

[Bug libgomp/100573] [OpenMP] 'omp target teams' fails with nvptx and GCN offloading: FAIL libgomp.c-c++-common/for-3.c + for-9.c

2021-05-24 Thread burnus at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100573

--- Comment #6 from Tobias Burnus  ---
(In reply to Jakub Jelinek from comment #5)
> I think we want to fix both for-3.c and for-9.c similarly to
> r11-2571-g916c7a201a9a1dc94f2c056a773826a26d1daca9 i.e.
> #define DO_PRAGMA(x) _Pragma (#x)
> #define OMPTEAMS DO_PRAGMA (omp target teams)
> #define OMPFROM(v) DO_PRAGMA (omp target update from(v))
> #define OMPTO(v) DO_PRAGMA (omp target update to(v))
> and changing main not to do #pragma omp target teams reduction(|:err)

When trying this, it (still) works as host fallback but offloading gives:

  219 |   OMPTO (a);
for-2.h:219:1: error: variable '.omp_data_kinds.116' has been referenced in
offloaded code but hasn't been marked to be included in the offloaded code

  222 |   OMPFROM (a);
for-2.h:222:1: error: variable '.omp_data_sizes.118' has been referenced in
offloaded code but hasn't been marked to be included in the offloaded code

(And likewise for additional OMPTO/OMPFROM.)

[Bug c++/90217] Greater optimization of C++ Code

2021-05-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90217

Andrew Pinski  changed:

   What|Removed |Added

 Resolution|--- |FIXED
   Target Milestone|--- |10.0
 Status|WAITING |RESOLVED

--- Comment #3 from Andrew Pinski  ---
Fixed in GCC 10.x.

[Bug target/89694] Redundant code with optimization

2021-05-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89694

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #2 from Andrew Pinski  ---
No testcase provided in over 2 years so closing as invalid.

[Bug target/88360] internal compiler error: in extract_insn, at recog.c 2343

2021-05-24 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88360

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #2 from Andrew Pinski  ---
No feedback in over 2 years so closing as invalid.

[Bug libgomp/100573] [OpenMP] 'omp target teams' fails with nvptx and GCN offloading: FAIL libgomp.c-c++-common/for-3.c + for-9.c

2021-05-24 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100573

--- Comment #7 from Jakub Jelinek  ---
Guess that is because the functions that have #pragma omp target teams
directive in it are marked declare target to.
So, either we'd need to play with macros etc. to make sure that those functions
aren't declare target to but the ones with #pragma omp distribute are, or
better we should fix this.  Will have a look tomorrow.

Basically this is about
#pragma omp declare target
void
foo (void)
{
  int a = 0;
  #pragma omp target map(tofrom:+a)
  a++;
}
#pragma omp end declare target

int
main ()
{
  foo ();
}

Encountering #pragma omp target (except for reverse-offload) in a target region
is undefined, but if it is never called from there and only from host routines,
we should compile/link it (even when we can just abort or whatever else if
called in the offloaded code).

[Bug libstdc++/100479] range adaptors handle cached iterators incorrectly

2021-05-24 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100479

--- Comment #1 from CVS Commits  ---
The master branch has been updated by Patrick Palka :

https://gcc.gnu.org/g:46ed811bcb4b86a81ef3d78ea8cfffc6cd043144

commit r12-1018-g46ed811bcb4b86a81ef3d78ea8cfffc6cd043144
Author: Patrick Palka 
Date:   Mon May 24 15:24:44 2021 -0400

libstdc++: Fix iterator caching inside range adaptors [PR100479]

This fixes two issues with our iterator caching as described in detail
in the PR.  Since we recently added the __non_propagating_cache class
template as part of r12-336 for P2328, this patch just rewrites the
problematic _CachedPosition partial specialization in terms of this
class template.

For the offset partial specialization, it's safe to propagate the cached
offset on copy/move, but we should still invalidate the cached offset in
the source object on move.

libstdc++-v3/ChangeLog:

PR libstdc++/100479
* include/std/ranges (__detail::__non_propagating_cache): Move
definition up to before that of _CachedPosition.  Make base
class _Optional_base protected instead of private.  Add const
overload for operator*.
(__detail::_CachedPosition): Rewrite the partial specialization
for forward ranges as a derived class of __non_propagating_cache.
Remove the size constraint on the partial specialization for
random access ranges.  Add
copy/move/copy-assignment/move-assignment
members to the offset partial specialization for random
access ranges that propagate the cached value but additionally
invalidate it in the source object on move.
* testsuite/std/ranges/adaptors/100479.cc: New test.

[Bug other/100747] New: Possibly Wrong Permissions in "liboffloadmic"

2021-05-24 Thread firasuke at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100747

Bug ID: 100747
   Summary: Possibly Wrong Permissions in "liboffloadmic"
   Product: gcc
   Version: 11.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
  Assignee: unassigned at gcc dot gnu.org
  Reporter: firasuke at gmail dot com
  Target Milestone: ---

Hey there,

I noticed that `liboffloadmic/configure' and
`liboffloadmic/plugin/configure' lack execute permissions (`644' instead of
`755'), and I was wondering if that was intended.

Thanks for your time and effort.

[Bug fortran/100724] -fwhole-program breaks module use

2021-05-24 Thread anlauf at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100724

anlauf at gcc dot gnu.org changed:

   What|Removed |Added

  Known to fail||10.3.1, 11.1.0, 12.0,
   ||8.5.0, 9.3.1
  Known to work||9.2.0

--- Comment #3 from anlauf at gcc dot gnu.org ---
(In reply to Dave Love from comment #2)
> The manual says not to use -flto with -fwhole-program.  Is that misleading?

I guess the manual entry has a reason, but I do not know why the optimimzations
implied by these options should not be combined.

> I checked self-built gfortran 10.2.0 again, and it definitely works for me
> without -flto on Debian 10, but it fails with Red Hat devtoolset's 10.2.1 on
> RHEL7.  Odd...

I checked against gfortran 9.2.0, which works fine, whereas the current
development version 9.3.1 fails too.

The change likely happened in a newer developer version and was backported
to the release branches.

[Bug c++/95298] [9/10/11/12 Regression] sorry, unimplemented: mangling record_type

2021-05-24 Thread ppalka at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95298

Patrick Palka  changed:

   What|Removed |Added

   Last reconfirmed||2021-05-24
  Known to fail||10.3.0, 11.1.0, 7.5.0,
   ||8.5.0, 9.3.0
 CC||ppalka at gcc dot gnu.org
   Target Milestone|--- |9.4
 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1
   Keywords||rejects-valid
Summary|sorry, unimplemented:   |[9/10/11/12 Regression]
   |mangling record_type|sorry, unimplemented:
   ||mangling record_type
  Known to work||6.4.0

--- Comment #2 from Patrick Palka  ---
Started with r7-2030.

[Bug go/100537] Bootstrap-O3 and bootstrap-debug fail on 32-bit ARM after gcc-12-657-ga076632e274a

2021-05-24 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100537

--- Comment #17 from CVS Commits  ---
The master branch has been updated by Ian Lance Taylor :

https://gcc.gnu.org/g:358832c46a378e5a0b8a2fa3c2739125e3e680c7

commit r12-1022-g358832c46a378e5a0b8a2fa3c2739125e3e680c7
Author: Ian Lance Taylor 
Date:   Sat May 22 19:19:13 2021 -0700

compiler: mark global variables whose address is taken

To implement this, change the backend to use flag bits for variables.

Fixes https://gcc.gnu.org/PR100537

PR go/100537
* go-gcc.cc (class Gcc_backend): Update methods that create
variables to take a flags parameter.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/322129

[Bug target/100745] GCC generates suboptimal assembly from vector extensions on AArch64

2021-05-24 Thread ajidala at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100745

--- Comment #1 from Nicolas F.  ---
I'll attach a second version of profile.c, with the vector extension code
that's actually going to be used in mpv (some cleanup has been done).
Performance is unchanged. Some absolute numbers from gcc 11.1.0:

$ ./profile 
old: 811703
nicolas: 262007 (3.10x as fast)
niklas: 679524 (1.19x as fast)

Some absolute numbers from Clang -O3:

$ ./profile 
old: 1547552
nicolas: 269081 (5.75x as fast)
niklas: 246508 (6.28x as fast)

As you can see, Clang does significantly worse on the C version (yay GCC!), but
significantly, and most importantly, in absolute terms, better on the vector
version. Like more than twice as fast than GCC's code.

Looking at GCC's assembly output, I can see some odd choices, such as shuffling
vectors around on the stack instead of using the other scratch registers
(v21-v30), whereas clang does use those scratch registers.

[Bug target/100745] GCC generates suboptimal assembly from vector extensions on AArch64

2021-05-24 Thread ajidala at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100745

Nicolas F.  changed:

   What|Removed |Added

  Attachment #50861|0   |1
is obsolete||

--- Comment #2 from Nicolas F.  ---
Created attachment 50863
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50863&action=edit
Updated profile.c with the haasn code that will end up in mpv

[Bug c++/100746] NRVO should not introduce aliasing

2021-05-24 Thread glisse at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100746

--- Comment #1 from Marc Glisse  ---
PR 80740 ?

[Bug go/100537] Bootstrap-O3 and bootstrap-debug fail on 32-bit ARM after gcc-12-657-ga076632e274a

2021-05-24 Thread ian at airs dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100537

Ian Lance Taylor  changed:

   What|Removed |Added

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

--- Comment #18 from Ian Lance Taylor  ---
Should be fixed.

[Bug testsuite/100748] New: [12 regression] 30_threads/jthread/95989.cc fails after r12-843

2021-05-24 Thread seurer at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100748

Bug ID: 100748
   Summary: [12 regression] 30_threads/jthread/95989.cc fails
after r12-843
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
  Assignee: unassigned at gcc dot gnu.org
  Reporter: seurer at gcc dot gnu.org
  Target Milestone: ---

g:60a156ae53e976dfe44689f7c89e607596e7cf67, r12-843
make  -k check RUNTESTFLAGS="conformance.exp=30_threads/jthread/95989.cc"
FAIL: 30_threads/jthread/95989.cc execution test
# of expected passes1
# of unexpected failures1

It looks like this fails on power 7 BE since it was reactivated.  Looks OK on
LE and power 8 BE. 

commit 60a156ae53e976dfe44689f7c89e607596e7cf67
Author: Jonathan Wakely 
Date:   Mon May 17 14:55:22 2021 +0100

libstdc++: Fix std::jthread assertion and re-enable skipped test


spawn -ignore SIGHUP /home/seurer/gcc/git/build/gcc-test/./gcc/xg++
-shared-libgcc -B/home/seurer/gcc/git/build/gcc-test/./gcc -nostdinc++
-L/home/seurer/gcc/git/build/gcc-test/powerpc64-unknown-linux-gnu/libstdc++-v3/src
-L/home/seurer/gcc/git/build/gcc-test/powerpc64-unknown-linux-gnu/libstdc++-v3/src/.libs
-L/home/seurer/gcc/git/build/gcc-test/powerpc64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs
-B/home/seurer/gcc/git/install/gcc-test/powerpc64-unknown-linux-gnu/bin/
-B/home/seurer/gcc/git/install/gcc-test/powerpc64-unknown-linux-gnu/lib/
-isystem
/home/seurer/gcc/git/install/gcc-test/powerpc64-unknown-linux-gnu/include
-isystem
/home/seurer/gcc/git/install/gcc-test/powerpc64-unknown-linux-gnu/sys-include
-B/home/seurer/gcc/git/build/gcc-test/powerpc64-unknown-linux-gnu/./libstdc++-v3/src/.libs
-fmessage-length=0 -fno-show-column -ffunction-sections -fdata-sections -g -O2
-D_GNU_SOURCE -DLOCALEDIR="." -nostdinc++
-I/home/seurer/gcc/git/build/gcc-test/powerpc64-unknown-linux-gnu/libstdc++-v3/include/powerpc64-unknown-linux-gnu
-I/home/seurer/gcc/git/build/gcc-test/powerpc64-unknown-linux-gnu/libstdc++-v3/include
-I/home/seurer/gcc/git/gcc-test/libstdc++-v3/libsupc++
-I/home/seurer/gcc/git/gcc-test/libstdc++-v3/include/backward
-I/home/seurer/gcc/git/gcc-test/libstdc++-v3/testsuite/util
/home/seurer/gcc/git/gcc-test/libstdc++-v3/testsuite/30_threads/jthread/95989.cc
-std=gnu++2a -pthread -static -fdiagnostics-plain-output ./libtestc++.a
-Wl,--gc-sections
-L/home/seurer/gcc/git/build/gcc-test/powerpc64-unknown-linux-gnu/libstdc++-v3/src/filesystem/.libs
-lm -o ./95989.exe^M
PASS: 30_threads/jthread/95989.cc (test for excess errors)
Setting LD_LIBRARY_PATH to
:/home/seurer/gcc/git/build/gcc-test/gcc:/home/seurer/gcc/git/build/gcc-test/powerpc64-unknown-linux-gnu/./libstdc++-v3/../libatomic/.libs:/home/seurer/gcc/git/build/gcc-test/powerpc64-unknown-linux-gnu/./libstdc++-v3/../libgomp/.libs:/home/seurer/gcc/git/build/gcc-test/powerpc64-unknown-linux-gnu/./libstdc++-v3/src/.libs:/home/seurer/gcc/git/build/gcc-test/gcc/32::/home/seurer/gcc/git/build/gcc-test/gcc:/home/seurer/gcc/git/build/gcc-test/powerpc64-unknown-linux-gnu/./libstdc++-v3/../libatomic/.libs:/home/seurer/gcc/git/build/gcc-test/powerpc64-unknown-linux-gnu/./libstdc++-v3/../libgomp/.libs:/home/seurer/gcc/git/build/gcc-test/powerpc64-unknown-linux-gnu/./libstdc++-v3/src/.libs:/home/seurer/gcc/git/build/gcc-test/gcc/32::/home/seurer/gcc/git/build/gcc-test/gcc:/home/seurer/gcc/git/build/gcc-test/powerpc64-unknown-linux-gnu/./libstdc++-v3/../libgomp/.libs:/home/seurer/gcc/git/build/gcc-test/powerpc64-unknown-linux-gnu/./libstdc++-v3/src/.libs::/home/seurer/gcc/git/build/gcc-test/gcc:/home/seurer/gcc/git/build/gcc-test/powerpc64-unknown-linux-gnu/./libstdc++-v3/../libgomp/.libs:/home/seurer/gcc/git/build/gcc-test/powerpc64-unknown-linux-gnu/./libstdc++-v3/src/.libs:/home/seurer/gcc/git/build/gcc-test/./gmp/.libs:/home/seurer/gcc/git/build/gcc-test/./prev-gmp/.libs:/home/seurer/gcc/git/build/gcc-test/./mpfr/src/.libs:/home/seurer/gcc/git/build/gcc-test/./prev-mpfr/src/.libs:/home/seurer/gcc/git/build/gcc-test/./mpc/src/.libs:/home/seurer/gcc/git/build/gcc-test/./prev-mpc/src/.libs:/home/seurer/gcc/git/build/gcc-test/./isl/.libs:/home/seurer/gcc/git/build/gcc-test/./prev-isl/.libs:/home/seurer/gcc/install/gcc-7.2.0/lib64
Execution timeout is: 300
spawn [open ...]^M
terminate called after throwing an instance of 'std::system_error'
  what():  Unknown error 4398050832512
FAIL: 30_threads/jthread/95989.cc execution test

[Bug testsuite/100748] [12 regression] 30_threads/jthread/95989.cc fails after r12-843

2021-05-24 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100748

Jonathan Wakely  changed:

   What|Removed |Added

   Last reconfirmed||2021-05-24
 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1

--- Comment #1 from Jonathan Wakely  ---
And apparently even on x86_64-pc-linux-gnu, though I don't see it:
https://gcc.gnu.org/pipermail/libstdc++/2021-May/052592.html

[Bug testsuite/100749] New: [12 regression] gcc.dg/pch/valid-1.c fails after r12-949

2021-05-24 Thread seurer at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100749

Bug ID: 100749
   Summary: [12 regression] gcc.dg/pch/valid-1.c fails after
r12-949
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
  Assignee: unassigned at gcc dot gnu.org
  Reporter: seurer at gcc dot gnu.org
  Target Milestone: ---

g:459d84e9b6e925922246b6aff76a5202b1d4d4ba, r12-949
make  -k check-gcc RUNTESTFLAGS="pch.exp=gcc.dg/pch/valid-1.c"
FAIL: gcc.dg/pch/valid-1.c  -O0 -g -I. -Dwith_PCH  (test for warnings, line 4)
FAIL: gcc.dg/pch/valid-1.c  -O0 -g -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/valid-1.c   -O0  -I. -Dwith_PCH  (test for warnings, line 4)
FAIL: gcc.dg/pch/valid-1.c   -O0  -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/valid-1.c   -O1  -I. -Dwith_PCH  (test for warnings, line 4)
FAIL: gcc.dg/pch/valid-1.c   -O1  -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/valid-1.c   -O2  -I. -Dwith_PCH  (test for warnings, line 4)
FAIL: gcc.dg/pch/valid-1.c   -O2  -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/valid-1.c   -O3 -g  -I. -Dwith_PCH  (test for warnings, line
4)
FAIL: gcc.dg/pch/valid-1.c   -O3 -g  -I. -Dwith_PCH (test for excess errors)
FAIL: gcc.dg/pch/valid-1.c   -Os  -I. -Dwith_PCH  (test for warnings, line 4)
FAIL: gcc.dg/pch/valid-1.c   -Os  -I. -Dwith_PCH (test for excess errors)
# of expected passes24
# of unexpected failures12

Looks like the adjusted error message doesn't match.

commit 459d84e9b6e925922246b6aff76a5202b1d4d4ba
Author: Indu Bhagat 
Date:   Fri Apr 30 07:52:40 2021 -0700

opts: change write_symbols to support bitmasks

* gcc.dg/pch/valid-1.c: Adjust diagnostic message in testcase.

[Bug testsuite/100748] [12 regression] 30_threads/jthread/95989.cc fails after r12-843

2021-05-24 Thread seurer at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100748

--- Comment #2 from seurer at gcc dot gnu.org ---
I do see it failing on at least one powerpc64 LE machine.  PR97944 said it used
to fail randomly.

[Bug target/100085] Bad code for union transfer from __float128 to vector types

2021-05-24 Thread segher at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100085

--- Comment #8 from Segher Boessenkool  ---
(In reply to luoxhu from comment #7)
> (In reply to Segher Boessenkool from comment #3)
> > The rotates in 6 and 7 are not merged, and neither are the vec_selects in
> > 8 and 9.  Both should be pretty easy to do, there is no unspec in sight,
> > etc.
> 
> Should this be done in pass bswaps or combine or by peephole2? :)

It should be done by simplify-rtx.c at least (which will make it work in
combine
and other places): two rotates that together do nothing should be optimised to
that, or generally, two rotates should be optimised to just one (which then can
be optimised to nothing).  Similar for vec_select.  Maybe something in bswaps
can help as well, I don't know, I haven't looked closely yet.

[Bug c++/74765] missing uninitialized warning (parenthesis, TREE_NO_WARNING abuse)

2021-05-24 Thread msebor at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=74765

Martin Sebor  changed:

   What|Removed |Added

   Keywords||patch

--- Comment #7 from Martin Sebor  ---
Patch: https://gcc.gnu.org/pipermail/gcc-patches/2021-May/571120.html

[Bug c++/74762] [9/10/11/12 Regression] missing uninitialized warning (C++, parenthesized expr, TREE_NO_WARNING)

2021-05-24 Thread msebor at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=74762

Martin Sebor  changed:

   What|Removed |Added

   Keywords||patch
   Assignee|unassigned at gcc dot gnu.org  |msebor at gcc dot 
gnu.org
 Status|NEW |ASSIGNED

--- Comment #17 from Martin Sebor  ---
Patch: https://gcc.gnu.org/pipermail/gcc-patches/2021-May/571120.html

[Bug testsuite/100750] New: new test case gcc.target/powerpc/rop-5.c fails on BE

2021-05-24 Thread seurer at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100750

Bug ID: 100750
   Summary: new test case gcc.target/powerpc/rop-5.c fails on BE
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
  Assignee: unassigned at gcc dot gnu.org
  Reporter: seurer at gcc dot gnu.org
  Target Milestone: ---

g:5bd66c6826e5f3a38ba393702923feb88959f845, r12-814
make  -k check-gcc RUNTESTFLAGS="powerpc.exp=gcc.target/powerpc/rop-5.c"
FAIL: gcc.target/powerpc/rop-5.c (test for excess errors)
# of unexpected failures1

Fails on both power 7 and power 8 BE.

/home/seurer/gcc/git/gcc-test/gcc/testsuite/gcc.target/powerpc/rop-5.c: In
function 'foo':
/home/seurer/gcc/git/gcc-test/gcc/testsuite/gcc.target/powerpc/rop-5.c:12:1:
error: '-mrop-protect' requires the ELFv2 ABI
(lots more instances of that message)

commit 5bd66c6826e5f3a38ba393702923feb88959f845
Author: Bill Schmidt 
Date:   Thu May 13 13:33:35 2021 -0500

[Bug testsuite/100748] [12 regression] 30_threads/jthread/95989.cc fails after r12-843

2021-05-24 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100748

--- Comment #3 from Jonathan Wakely  ---
I'd better disable it again until I have time to figure it out.

[Bug target/100310] [AVX512] Missing support for v{,p}expand* instructions that w/o mask operands

2021-05-24 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100310

--- Comment #2 from Hongtao.liu  ---
w/o mask operands, v{,p}expand* are equal to mov instructions.

[Bug target/95782] [ppc64le] ICE in _cpp_pop_context

2021-05-24 Thread evan--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95782

--- Comment #1 from Evan Nemerson  ---
This seems to also happen on s390x with -mzvector:


# s390x-linux-gnu-gcc-10 -march=z14 -mzvector -o test test.c
test.c:4:1: internal compiler error: in _cpp_pop_context, at
libcpp/macro.c:2644
4 | b(vector double)
  | ^
0x11da337 _cpp_pop_context
../../src/libcpp/macro.c:2644
0x11dcd67 expand_arg
../../src/libcpp/macro.c:2601
0x11dc41f replace_args
../../src/libcpp/macro.c:1879
0x11dc41f enter_macro_context
../../src/libcpp/macro.c:1421
0x11dc7e8 cpp_get_token_1
../../src/libcpp/macro.c:2891
0x6393fe c_lex_with_flags(tree_node**, unsigned int*, unsigned char*, int)
../../src/gcc/c-family/c-lex.c:458
0x5c96a5 c_lex_one_token
../../src/gcc/c/c-parser.c:270
0x5f6517 c_parser_peek_token(c_parser*)
../../src/gcc/c/c-parser.c:474
0x5f6517 c_parse_file()
../../src/gcc/c/c-parser.c:21742
0x64054b c_common_parse_file()
../../src/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/100711] Miss optimization for pandn

2021-05-24 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100711

--- Comment #3 from Hongtao.liu  ---


(In reply to Segher Boessenkool from comment #2)
> (In reply to Richard Biener from comment #1)
> > I suppose we're confused about the vec_duplicate.  Would generally swapping
> > the duplicate and the bit_not be profitable?  Eventually it's a
> > simplification
> > combine could try - I belive it has some cases where it tries variants of 
> > the
> > original instructions when combining.  Adding a combine helper pattern
> > looks like putting too much burden on the backend IMHO.
> > 
> > We don't have a generic nand optab so handling this in ISEL on gimple
> > isn't straight-forward.
> > 
> > But combine and/or forwprop could do this.
> 
> Combine never tries anything.  Combine makes *one* result; if that does not
> work,
> it does not do the combination.  (This is not completely true, but in essence
> that is how it works, and it has to to not have exponential complexity).
> 
> It would be good to define a canonical form for anything vec_duplicate.  It
> probably is a good idea to pull the vec_duplicate as far outside as possible?
> 
> Canonical forms hugely reduce the amount of work needed.  Compare to how
> "andc"
> is represented (canonically with the inverted input first), or how "nand" is
> (we
> write that as an "orcc", an "or" with both inputs inverted, in canonical
> RTL).
> Because only one form is allowed, we only have to check for that one form
> everywhere.
> 
> Confirmed.

Even w/ canonical RTL, i think a combine splitter is also needed here, the
canonical RTL only helps combine/forwprop to match more possibility but won't
split patterns by itselies.

[Bug ipa/100513] [10/11 Regression] ICE: Segmentation fault (in lookup_page_table_entry) for bootstrap-O3 since r11-6411-gae99b315ba5b9e1c

2021-05-24 Thread dcb314 at hotmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100513

David Binderman  changed:

   What|Removed |Added

 CC||dcb314 at hotmail dot com

--- Comment #25 from David Binderman  ---
(In reply to Jiu Fu Guo from comment #21)
> When build the go on trunk with the patch, an error occur:
> In function 'syscall.forkExec':
> go1: error: address taken, but ADDRESSABLE bit not set

I see this also on a go build on raspberry pi. Interesting.

[Bug target/100711] Miss optimization for pandn

2021-05-24 Thread crazylht at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100711

--- Comment #4 from Hongtao.liu  ---
(In reply to Hongtao.liu from comment #3)
> 
> (In reply to Segher Boessenkool from comment #2)
> > (In reply to Richard Biener from comment #1)
> > > I suppose we're confused about the vec_duplicate.  Would generally 
> Even w/ canonical RTL, i think a combine splitter is also needed here, the
> canonical RTL only helps combine/forwprop to match more possibility but
> won't split patterns by itselies.

I was wrong, i thought combine only support n->1 combining, but actually
pass_combine also support 3->2 combining which means a define_split is not
needed here.

[Bug gcov-profile/100751] New: __gcov_dump and __gcov_reset usage

2021-05-24 Thread gejoed at rediffmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100751

Bug ID: 100751
   Summary: __gcov_dump and __gcov_reset usage
   Product: gcc
   Version: 8.3.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: gcov-profile
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gejoed at rediffmail dot com
CC: marxin at gcc dot gnu.org
  Target Milestone: ---

Created attachment 50864
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50864&action=edit
sample-prog.i which is the preprocessed version of sample-prog.c

I did go through the online manual of gcc gcov  on __gcov_dump() and
__gcov_reset() :
https://gcc.gnu.org/onlinedocs/gcc/Gcov-and-Optimization.html#Gcov-and-Optimization

I tried out using the functions in a sample program (sample-prog.c) that is
attached here.

The steps followed were :

(1)  gcc -fprofile-arcs -ftest-coverage sample-prog.c 
(2)  ./a.out
(3)  gcov sample-prog.c

While running a.out, when I give character 'g', the __gcov_dump() must be
invoked.
What I could observe is that first time __gcov_dump() is invoked , the
sample-prog.gcda file gets created.
For the second time and then onwards, __gcov_dump() invocation (by giving 'g'
character during the a.out run) doesn't happen.
This is concluded by looking at the time stamp of sample-prog.gcda file in the
same folder. It was still having the same time stamp of first time invocation
of __gcov_dump().

Another thing is  that, __gcov_reset() also doesn't appear to work. I tried
giving the character 'r' during the run of the program but couldn't see the
counters getting reset to 0 in the sample-prog.gcov file. The previous values
of lines covered were there.

Let me know if my approach is correct or if I miss any information here.

I'm attaching the preprocessed file (sample-prog.i) and the logs of the gcc
step used for the preprocessed file.

[Bug gcov-profile/100751] __gcov_dump and __gcov_reset usage

2021-05-24 Thread gejoed at rediffmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100751

Gejoe  changed:

   What|Removed |Added

 CC||gejoed at rediffmail dot com

--- Comment #1 from Gejoe  ---
Created attachment 50865
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50865&action=edit
Preprocessing logs giving gcc version