[Bug libstdc++/104191] New: Incorrect max_size() for node-based containers

2022-01-22 Thread frankhb1989 at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104191

Bug ID: 104191
   Summary: Incorrect max_size() for node-based containers
   Product: gcc
   Version: 11.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: frankhb1989 at gmail dot com
  Target Milestone: ---

Case:

#include 
#include 

template
struct one_alloc : std::allocator
{
template struct rebind { using other = one_alloc;};

T* allocate(std::size_t n)
{
if(n > 1)
throw std::bad_array_new_length();
return std::allocator::allocate(n);
}

std::size_t max_size() const noexcept
{
return 1;
}
};

int main()
{
std::list> l;

l.push_back(0);
l.push_back(0);
assert(l.size() <= l.max_size());
}

This looks very wrong. The changes in
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=29134 seem too aggressive on
containers like list.

Logically, the container's max_size() should have nothing to do with the
allocator's max_size() (which limits the number of object of value_type in a
single allocation), and it should be solely determined by the internal node
count type. This is also consistent to the cases where the container's
size_type is always size_t (instead of size_type of the allocator).

There are some more subtleties concerned with
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78448. Not sure if extra checks
are required to make it conforming.

[Bug c++/104182] [12 Regression] Wrong code since r12-6329-g4f6bc28fc7dd86bd

2022-01-22 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104182

--- Comment #1 from CVS Commits  ---
The master branch has been updated by Jason Merrill :

https://gcc.gnu.org/g:9718bc4b03c1a94f7cf64860bbc828aa53c56234

commit r12-6822-g9718bc4b03c1a94f7cf64860bbc828aa53c56234
Author: Jason Merrill 
Date:   Sat Jan 22 17:11:54 2022 -0500

c++: array temporary at file scope [PR104182]

This is the same issue as PR104031, but that patch doesn't fix this
testcase because in this case, current_function_decl isn't set when we get
to cp_genericize_target_expr.  But there seems to be no need for
is_local_temp to check for function scope; !TREE_STATIC should be enough.

PR c++/104182

gcc/cp/ChangeLog:

* cp-gimplify.cc (cp_genericize_target_expr): Make sure nothing
has set DECL_INITIAL on a TARGET_EXPR slot.
* tree.cc (is_local_temp): Don't check DECL_CONTEXT.

gcc/testsuite/ChangeLog:

* g++.dg/cpp0x/initlist127.C: New test.

[Bug c++/101072] [12 Regression] ICE in build_target_expr_with_type, at cp/tree.c:845 since r11-5681-gd9288bd28e24c755

2022-01-22 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101072

--- Comment #5 from CVS Commits  ---
The master branch has been updated by Jason Merrill :

https://gcc.gnu.org/g:053bcc97f4a59e3f2811b8a1edf60fd733a580a0

commit r12-6821-g053bcc97f4a59e3f2811b8a1edf60fd733a580a0
Author: Jason Merrill 
Date:   Thu Jan 20 05:45:02 2022 -0500

c++: constexpr and -fno-elide-constructors [PR101072]

We've been trying for a while to avoid TARGET_EXPRs in template code, but
there were still a few that snuck through, and the one in this case broke
the code that tried to handle it.  Fixed by using IMPLICIT_CONV_EXPR, as we
have done elsewhere.

I also noticed that finish_compound_literal was assuming that all T{init}
were for aggregate T, and we got a few more TARGET_EXPRs from that.  Fixed
by only messing with TARGET_EXPR if we actually have an aggregate init.

PR c++/101072

gcc/cp/ChangeLog:

* cp-tree.h (build_implicit_conv_flags): Declare.
* call.cc (build_implicit_conv_flags): Split out from...
(perform_implicit_conversion_flags): ...here.
* decl.cc (check_initializer): Use it.
* pt.cc (tsubst_copy_and_build): Remove TARGET_EXPR handling.
* semantics.cc (finish_compound_literal): Don't treat
scalar values like CONSTRUCTORs.

gcc/testsuite/ChangeLog:

* g++.dg/cpp0x/constexpr-empty14a.C: New test.

[Bug libstdc++/104190] arm-linux-gnueabi shows warnings of use-after-free of libstdc++?

2022-01-22 Thread unlvsur at live dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104190

--- Comment #1 from cqwrteur  ---
Created attachment 52271
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52271&action=edit
warnings

[Bug libstdc++/104190] New: arm-linux-gnueabi shows warnings of use-after-free?

2022-01-22 Thread unlvsur at live dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104190

Bug ID: 104190
   Summary: arm-linux-gnueabi shows warnings of use-after-free?
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: unlvsur at live dot com
  Target Milestone: ---

[Bug target/104189] New: [sparc] Inconsistent behavior for -mcpu=v9 -m32 on Linux and Solaris

2022-01-22 Thread glaubitz at physik dot fu-berlin.de via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104189

Bug ID: 104189
   Summary: [sparc] Inconsistent behavior for -mcpu=v9 -m32 on
Linux and Solaris
   Product: gcc
   Version: 11.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: glaubitz at physik dot fu-berlin.de
CC: ebotcazou at gcc dot gnu.org, jrtc27 at jrtc27 dot com,
matorola at gmail dot com
  Target Milestone: ---
Target: sparc-*-*-*

On Solaris and Linux, 32-bit V9 behave differently in regards to what size of
atomic operations are supported.

On Linux, the maximum size for an atomic operation on 32-bit V9 is 32 bits, on
Solaris it is 64 bits. Moreover, setting -mcpu=ultrasparc3 makes the two match
again.

Linux:

glaubitz@gcc202:~$ echo | gcc -m32 -mcpu=v9 -E -dM -|grep -i SWAP
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
glaubitz@gcc202:~$ echo | gcc -m32 -mcpu=ultrasparc3 -E -dM -|grep -i SWAP
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
glaubitz@gcc202:~$

Solaris:

sysadmin@deimos:~$ echo | gcc -m32 -mcpu=v9 -E -dM -|grep -i SWAP
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
sysadmin@deimos:~$ echo | gcc -m32 -mcpu=ultrasparc3 -E -dM -|grep -i SWAP
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
sysadmin@deimos:~$

Unless there is a specific reason, it would nice if the behavior was consistent
for both Linux and Solaris such that code that wants to use 64-bit atomics
would behave the same on the two platforms.

[Bug c++/104184] [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes

2022-01-22 Thread glisse at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104184

--- Comment #4 from Marc Glisse  ---
https://geometrica.saclay.inria.fr/team/Marc.Glisse/tmp/mybug.cc.xz
(1.7M after compression still exceeds the limit)

With -Wall -Wextra

Internal compiler error: Error reporting routines re-entered.
0xec0348 xref_basetypes(tree_node*, tree_node*)
../../src/gcc/cp/decl.cc:15783
0x101d194 instantiate_class_template_1
../../src/gcc/cp/pt.cc:11953
0x101ec31 instantiate_class_template(tree_node*)
../../src/gcc/cp/pt.cc:12311
0x10714d8 complete_type(tree_node*)
../../src/gcc/cp/typeck.cc:143
0xff0ad6 get_template_base
../../src/gcc/cp/pt.cc:23282
0xff2720 unify
../../src/gcc/cp/pt.cc:24348
0xff10d4 unify
../../src/gcc/cp/pt.cc:24499
0xfee75b unify_one_argument
../../src/gcc/cp/pt.cc:22472
0xfffd65 type_unification_real
../../src/gcc/cp/pt.cc:22595
0x1019da9 fn_type_unification(tree_node*, tree_node*, tree_node*, tree_node*
const*, unsigned int, tree_node*, unification_kind_t, int, conversion**, bool,
bool)
../../src/gcc/cp/pt.cc:21923
0xe146d9 add_template_candidate_real
../../src/gcc/cp/call.cc:3544
0xe15633 add_template_candidate
../../src/gcc/cp/call.cc:3632
0xe15633 add_candidates
../../src/gcc/cp/call.cc:6165
0xe1c362 add_candidates
../../src/gcc/cp/call.cc:6051
0xe1c362 build_new_method_call(tree_node*, tree_node*, vec**, tree_node*, int, tree_node**, int)
../../src/gcc/cp/call.cc:11012
0x1039e3d finish_call_expr(tree_node*, vec**,
bool, bool, int)
../../src/gcc/cp/semantics.cc:2788
0xfe96d4 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
../../src/gcc/cp/pt.cc:20780
0xff5e8c tsubst(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.cc:16162
0x100494e tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.cc:13423
0xff635e tsubst(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.cc:15461

[Bug target/104188] [11/12 Regression] gcc omitting AVX-512 broadcast instruction

2022-01-22 Thread kvr000 at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104188

--- Comment #10 from Zbynek Vyskovsky  ---
Thanks for quick fix!

[Bug c++/104184] [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes

2022-01-22 Thread glisse at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104184

--- Comment #3 from Marc Glisse  ---
comment #1 actually reduces to

struct voider {
  using type = void;
};
template  struct rename : P {};
template  using ignore = voider;
template  typename ignore::type>::type g(T a) {}
void f() { g(1); }

(still questionable and rejected by clang, I think I'll also attach the
compressed initial preprocessed file, in case the reductions hit different
bugs)

[Bug target/104172] [9/10/11/12 Regression] ppc64le mangling ICE with -flto -ffat-lto-objects

2022-01-22 Thread orion at cora dot nwra.com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104172

Orion Poplawski  changed:

   What|Removed |Added

 CC||orion at cora dot nwra.com

--- Comment #7 from Orion Poplawski  ---
I believe this is causing the ccache compile failure in Fedora rawhide:
https://koji.fedoraproject.org/koji/buildinfo?buildID=1881086

[Bug target/104188] [11/12 Regression] gcc omitting AVX-512 broadcast instruction

2022-01-22 Thread hjl.tools at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104188

H.J. Lu  changed:

   What|Removed |Added

   Keywords||patch

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

https://gcc.gnu.org/pipermail/gcc-patches/2022-January/589109.html

[Bug tree-optimization/104156] [12 Regression] -fcompare-debug failure with -O2 -funswitch-loops since r12-4526-gd8edfadfc7a9795b

2022-01-22 Thread cnsun at uwaterloo dot ca via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104156

--- Comment #9 from Chengnian Sun  ---
Thanks, Andrew. 

What about -flto? Does GCC still guarantee such a compilation consistency wrt
to debug info in the presence of -flto?

If yes, I can enable this flag for several testing runs.

Thanks.

[Bug c/92479] missing warnings for unreachable codes with break (i.e. revive the subset of -Wunreachable-code that fits under clang's -Wunreachable-code-break)

2022-01-22 Thread egallager at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92479

--- Comment #14 from Eric Gallager  ---
(In reply to David Binderman from comment #12)
> Interestingly, both gcc and clang have nothing to say about this code:
> 
> extern void g( int);
> 
> void f( int a)
> {
>   if (a >= 0)
>   {
>   if (a < 0)
>   {
>   g(a);
>   }
>   }
> }
> 
> $ /home/dcb/gcc/results/bin/gcc -c -g -O2 -Wall -Wextra -Wunreachable-code
> jan20e.cc
> $
> 
> cppcheck finds the problem:
> 
> $ cppcheck --enable=all jan20e.cc
> Checking jan20e.cc ...
> jan20e.cc:10:9: warning: Opposite inner 'if' condition leads to a dead code
> block. [oppositeInnerCondition]
>   if (a < 0)
> ^
> jan20e.cc:8:8: note: outer condition: a>=0
>  if (a >= 0)
>^

That's bug 82100, which is already linked under "See Also"

[Bug target/101785] aarch64-linux-android is not supported

2022-01-22 Thread unlvsur at live dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101785

--- Comment #9 from cqwrteur  ---
Created attachment 52270
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52270&action=edit
fix linker searching issue for aarch64-linux-android

[Bug target/101785] aarch64-linux-android is not supported

2022-01-22 Thread unlvsur at live dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101785

--- Comment #8 from cqwrteur  ---
(In reply to Andrew Pinski from comment #5)
> *** Bug 104155 has been marked as a duplicate of this bug. ***

https://gcc.gnu.org/pipermail/gcc-patches/2022-January/589107.html

Hi Andrew pinski, Can you review this patch?

[Bug libstdc++/104166] Implement C++20 std::format

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104166

Andrew Pinski  changed:

   What|Removed |Added

   Last reconfirmed||2022-01-22
 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1

--- Comment #1 from Andrew Pinski  ---
Confirmed.

[Bug c++/104179] Truncated representation of character arrays as non-type template parameters

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104179

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1
   Last reconfirmed||2022-01-22

--- Comment #1 from Andrew Pinski  ---
Confirmed.

[Bug tree-optimization/104156] [12 Regression] -fcompare-debug failure with -O2 -funswitch-loops since r12-4526-gd8edfadfc7a9795b

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104156

--- Comment #8 from Andrew Pinski  ---
(In reply to Chengnian Sun from comment #7)
> A quick question. Besides the flags `-fcompare-debug -g3 -O3`, are there any
> other flags I should enable to better/faster find such -fcompare-debug
> failures?

-fcompare-debug failures will be spread out through the compiler so I really
doubt there are any flag besides -O2 or -O3 will help in finding the failures
really. Most passes are designed to ignore the debug information statements
(instructions in the case of RTL) but some mistakes happen so I doubt there is
any pattern to them really.

[Bug c++/104173] [12 Regression] wrong overload resolution for ref-qualifiers

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104173

--- Comment #3 from Andrew Pinski  ---
(In reply to Patrick Palka from comment #2)
> Interestingly, here's a non-template variant of the testcase that seems to
> be rejected by every GCC version:

Yes this one is definitely interesting. Changing applicationName to be
non-static choses a different overload too.

[Bug c++/104182] [12 Regression] Wrong code since r12-6329-g4f6bc28fc7dd86bd

2022-01-22 Thread jason at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104182

Jason Merrill  changed:

   What|Removed |Added

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

[Bug target/104188] [11/12 Regression] gcc omitting AVX-512 broadcast instruction

2022-01-22 Thread hjl.tools at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104188

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

This this.

[Bug target/104188] [11/12 Regression] gcc omitting AVX-512 broadcast instruction

2022-01-22 Thread hjl.tools at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104188

--- Comment #7 from H.J. Lu  ---
Since vbroadcastf32x4 != vbroadcastss, we can't replace vbroadcastf32x4
with {1to16} broadcast.

[Bug target/104188] [11/12 Regression] gcc omitting AVX-512 broadcast instruction

2022-01-22 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104188

Jakub Jelinek  changed:

   What|Removed |Added

   Priority|P3  |P2
   Target Milestone|--- |11.3
Summary|gcc omitting AVX-512|[11/12 Regression] gcc
   |broadcast instruction   |omitting AVX-512 broadcast
   ||instruction

--- Comment #6 from Jakub Jelinek  ---
Started with r11-4203-g7026bb9504eb0f95e114f832cd6dd14302376861

[Bug target/104188] gcc omitting AVX-512 broadcast instruction

2022-01-22 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104188

Jakub Jelinek  changed:

   What|Removed |Added

 Status|WAITING |NEW

--- Comment #5 from Jakub Jelinek  ---
I came up with:
#include 

union U {
  float m[4][4];
  __m128 r[4];
  __m512 s;
};

__attribute__((noipa)) void
foo (union U *x, union U *a, union U *b)
{
  __m512 c = _mm512_loadu_ps (&a->s);
  __m512 d = _mm512_broadcast_f32x4 (b->r[0]);
  __m512 e = _mm512_broadcast_f32x4 (b->r[1]);
  __m512 f = _mm512_broadcast_f32x4 (b->r[2]);
  __m512 g = _mm512_broadcast_f32x4 (b->r[3]);
  __m512 h = _mm512_mul_ps (_mm512_permute_ps (c, 0x00), d);
  h = _mm512_fmadd_ps (_mm512_permute_ps (c, 0x55), e, h);
  h = _mm512_fmadd_ps (_mm512_permute_ps (c, 0xaa), f, h);
  h = _mm512_fmadd_ps (_mm512_permute_ps (c, 0xff), g, h);
  _mm512_storeu_ps (&x->s, h);
}

int
main ()
{
  union U a = { .m = { { 1.0f, 2.0f, 3.0f, 4.0f },
   { 5.0f, 6.0f, 7.0f, 8.0f },
   { 9.0f, 10.0f, 11.0f, 12.0f },
   { 13.0f, 14.0f, 15.0f, 16.0f } } };
  union U b = { .m = { { 17.0f, 18.0f, 19.0f, 20.0f },
   { 21.0f, 22.0f, 23.0f, 24.0f },
   { 25.0f, 26.0f, 27.0f, 28.0f },
   { 29.0f, 30.0f, 31.0f, 32.0f } } };
  union U c;
  foo (&c, &a, &b);
  if (c.m[0][0] != 250.0f || c.m[0][1] != 260.0f || c.m[0][2] != 270.0f ||
c.m[0][3] != 280.0f)
__builtin_abort ();
  if (c.m[1][0] != 618.0f || c.m[1][1] != 644.0f || c.m[1][2] != 670.0f ||
c.m[1][3] != 696.0f)
__builtin_abort ();
  if (c.m[2][0] != 986.0f || c.m[2][1] != 1028.0f || c.m[2][2] != 1070.0f ||
c.m[2][3] != 1112.0f)
__builtin_abort ();
  if (c.m[3][0] != 1354.0f || c.m[3][1] != 1412.0f || c.m[3][2] != 1470.0f ||
c.m[3][3] != 1528.0f)
__builtin_abort ();
  return 0;
}

[Bug target/104188] gcc omitting AVX-512 broadcast instruction

2022-01-22 Thread kvr000 at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104188

--- Comment #4 from Zbynek Vyskovsky  ---
Sure, the code:

#include 

#ifndef NO_VECTORIZE
#ifdef __x86_64__
#include 
#include 
#endif
#ifdef __aarch64__
#include 
#endif
#endif

typedef union Mat44 {
float m[4][4];
#ifndef NO_VECTORIZE
#ifdef __x86_64__
__m128 row[4];
__m256 rowDuet[2];
__m512 rowQuad;
#endif
#ifdef __aarch64__
float32x4_t row[4];
#endif
#endif
} Mat44;

__attribute__((noipa)) void matmult_avx512(union Mat44 *out, const Mat44 *a,
const Mat44 *b)
{
__m512 a0123 = _mm512_loadu_ps(a->m[0]);
__m512 b = _mm512_broadcast_f32x4(b->row[0]);
__m512 b = _mm512_broadcast_f32x4(b->row[1]);
__m512 b = _mm512_broadcast_f32x4(b->row[2]);
__m512 b = _mm512_broadcast_f32x4(b->row[3]);

__m512 result = _mm512_mul_ps(_mm512_permute_ps(a0123, 0x00), b);
result = _mm512_fmadd_ps(_mm512_permute_ps(a0123, 0x55), b,
result);
result = _mm512_fmadd_ps(_mm512_permute_ps(a0123, 0xaa), b,
result);
result = _mm512_fmadd_ps(_mm512_permute_ps(a0123, 0xff), b,
result);

_mm512_storeu_ps(out->m[0], result);
}

__attribute__((noipa)) void matmult_ref(Mat44 *out, const Mat44 *a, const Mat44
*b)
{
Mat44 t;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
t.m[i][j] = a->m[i][0]*b->m[0][j] +
a->m[i][1]*b->m[1][j] + a->m[i][2]*b->m[2][j] + a->m[i][3]*b->m[3][j];
}
}

*out = t;
}

int main(void)
{
Mat44 in = { m: { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 }, {
13, 14, 15, 16 } } };
Mat44 avx512_out;
Mat44 ref_out;
matmult_ref(&ref_out, &in, &in);
matmult_avx512(&avx512_out, &in, &in);
for (int r = 0; r < 4; ++r) {
printf("%5.0f %5.0f %5.0f %5.0f      %5.0f %5.0f %5.0f
%5.0f\n", avx512_out.m[r][0], avx512_out.m[r][1], avx512_out.m[r][2],
avx512_out.m[r][3], ref_out.m[r][0], ref_out.m[r][1], ref_out.m[r][2],
ref_out.m[r][3]);
}
return 0;
}


Output (note the repeating first column on first side, caused by duplicating
single element instead of four):

  90909090 90   100   110   120
 202   202   202   202202   228   254   280
 314   314   314   314314   356   398   440
 426   426   426   426426   484   542   600

[Bug other/104176] [12 Regression] opts-global.cc:420:62: error: unquoted option name '--enable-plugin' in format

2022-01-22 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104176

Jakub Jelinek  changed:

   What|Removed |Added

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

--- Comment #3 from Jakub Jelinek  ---
Fixed.

[Bug other/104176] [12 Regression] opts-global.cc:420:62: error: unquoted option name '--enable-plugin' in format

2022-01-22 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104176

--- Comment #2 from CVS Commits  ---
The master branch has been updated by Jakub Jelinek :

https://gcc.gnu.org/g:9ea451e27934939d490553d3a394e8cbf9cefda8

commit r12-6819-g9ea451e27934939d490553d3a394e8cbf9cefda8
Author: Jakub Jelinek 
Date:   Sat Jan 22 19:04:41 2022 +0100

ootstrap: Fix bootstrap with --disable-plugin [PR104176]

With --disable-plugin, bootstrap fails on x86_64-linux or probably
all other targets with:
../../gcc/opts-global.cc: In function âvoid
handle_common_deferred_options()â:
../../gcc/opts-global.cc:420:62: error: unquoted option name
â--enable-pluginâ in format [-Werror=format-diag]
  420 |   error ("plugin support is disabled; configure with
--enable-plugin");
  | 
^~~
../../gcc/opts-global.cc:428:62: error: unquoted option name
â--enable-pluginâ in format [-Werror=format-diag]
  428 |   error ("plugin support is disabled; configure with
--enable-plugin");
  | 
^~~

The following patch fixes that.

2022-01-22  Jakub Jelinek  

PR other/104176
* opts-global.cc (handle_common_deferred_options): Quote
--enable-plugin in diagnostics to avoid -Werror=format-diag.

[Bug demangler/99935] Stack exhaustion demangling rust mangled name

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99935

Andrew Pinski  changed:

   What|Removed |Added

 CC||terrynini38514 at gmail dot com

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

[Bug demangler/100968] libiberty: stuck in infinite loop in nm-new while demangling rust symbols

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100968

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #2 from Andrew Pinski  ---
Dup of bug 99935.

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

[Bug demangler/99935] Stack exhaustion demangling rust mangled name

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99935

Andrew Pinski  changed:

   What|Removed |Added

 Ever confirmed|0   |1
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2022-01-22

[Bug target/104188] gcc omitting AVX-512 broadcast instruction

2022-01-22 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104188

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek  ---
So, can you please turn add main to your testcase, add __attribute__((noipa))
on
the function and add a caller that prepares arguments and check the result?

[Bug demangler/99935] Stack exhaustion demangling rust mangled name

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99935

Andrew Pinski  changed:

   What|Removed |Added

 CC||featherrain26 at gmail dot com

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

[Bug demangler/98889] stack overflow in cxxfilt, peek, rust-demangle.c:85

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98889

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #1 from Andrew Pinski  ---
Dup of bug 99935.

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

[Bug demangler/99935] Stack exhaustion demangling rust mangled name

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99935

Andrew Pinski  changed:

   What|Removed |Added

 CC||eliz at gnu dot org

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

[Bug demangler/101779] Compilation of rust-demangle.c fails on MinGW

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101779

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #5 from Andrew Pinski  ---
Dup of bug 99935.

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

[Bug demangler/99935] Stack exhaustion demangling rust mangled name

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99935

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

[Bug demangler/104186] Stack overflow in demangle_type() -> print_str() in libiberty/rust-demangle.c:869, cxxfilt

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104186

Andrew Pinski  changed:

   What|Removed |Added

 Resolution|--- |DUPLICATE
 Status|UNCONFIRMED |RESOLVED

--- Comment #1 from Andrew Pinski  ---
Dup of bug 99935.

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

[Bug demangler/99935] Stack exhaustion demangling rust mangled name

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99935

Andrew Pinski  changed:

   What|Removed |Added

 CC||sanjayr at ymail dot com

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

[Bug demangler/104185] Stack Overflow in str_buf_append(): rust-demangle.c:1493 in cxxfilt

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104185

Andrew Pinski  changed:

   What|Removed |Added

 Resolution|--- |DUPLICATE
 Status|UNCONFIRMED |RESOLVED

--- Comment #1 from Andrew Pinski  ---
Dup of bug 99935.

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

[Bug target/104188] gcc omitting AVX-512 broadcast instruction

2022-01-22 Thread kvr000 at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104188

--- Comment #2 from Zbynek Vyskovsky  ---
> {1to16} says to broadcast  from first element to all 16.

The vbroadcastf32x4 is supposed to copy first four elmenents to 4-7, 8-11 and
12-15 .

> Why do you think this is wrong code?

It doesn't work.  It produces the same number for each column for the same row,
likely as a result of above as it uses single element to multiply instead of
four different elements.

[Bug ipa/104187] Call site specific attribute to control inliner

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104187

Andrew Pinski  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org
   Keywords||missed-optimization
   Severity|normal  |enhancement
  Component|c   |ipa

[Bug target/104188] gcc omitting AVX-512 broadcast instruction

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104188

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2022-01-22
 Ever confirmed|0   |1
   Keywords||wrong-code

--- Comment #1 from Andrew Pinski  ---
There is a broadcast as part of the other instruction, optimizing it correctly:
vfmadd132ps 16(%rdx){1to16}, %zmm1, %zmm2


{1to16} says to broadcast  from first element to all 16.

Why do you think this is wrong code?

[Bug target/104188] New: gcc omitting AVX-512 broadcast instruction

2022-01-22 Thread kvr000 at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104188

Bug ID: 104188
   Summary: gcc omitting AVX-512 broadcast instruction
   Product: gcc
   Version: 11.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: kvr000 at gmail dot com
  Target Milestone: ---

Hi,
there is a bug when generating AVX-512 instructions from intrinsics.  The code
is generated correctly in gcc-10 but gcc-11 completely omits the
vbroadcastf32x4 .

gcc version: 11.2.0-7ubuntu2 - 11.2.0

Source code of minimal working example:
// Matrix 4*4 multiplication:

#ifndef NO_VECTORIZE
#ifdef __x86_64__
#include 
#include 
#endif
#ifdef __aarch64__
#include 
#endif
#endif

union Mat44 {
float m[4][4];
#ifndef NO_VECTORIZE
#ifdef __x86_64__
__m128 row[4];
__m256 rowDuet[2];
__m512 rowQuad;
#endif
#ifdef __aarch64__
float32x4_t row[4];
#endif
#endif
};

void matmult_avx512(union Mat44 *out, union Mat44 *a, union Mat44 *b)
{
__m512 a0123 = _mm512_loadu_ps(a->m[0]);
__m512 b = _mm512_broadcast_f32x4(b->row[0]);
__m512 b = _mm512_broadcast_f32x4(b->row[1]);
__m512 b = _mm512_broadcast_f32x4(b->row[2]);
__m512 b = _mm512_broadcast_f32x4(b->row[3]);

__m512 result = _mm512_mul_ps(_mm512_permute_ps(a0123, 0x00), b);
result = _mm512_fmadd_ps(_mm512_permute_ps(a0123, 0x55), b,
result);
result = _mm512_fmadd_ps(_mm512_permute_ps(a0123, 0xaa), b,
result);
result = _mm512_fmadd_ps(_mm512_permute_ps(a0123, 0xff), b,
result);

_mm512_storeu_ps(out->m[0], result);
}


gcc-10 (correct):

endbr64
vmovups (%rsi), %zmm0
vbroadcastf32x4 (%rdx), %zmm6   // note here
vpermilps   $0, %zmm0, %zmm1
vmulps  %zmm6, %zmm1, %zmm1
vbroadcastf32x4 16(%rdx), %zmm5 // note here
vpermilps   $85, %zmm0, %zmm2
vbroadcastf32x4 32(%rdx), %zmm4 // note here
vbroadcastf32x4 48(%rdx), %zmm3 // note here
vfmadd132ps %zmm5, %zmm1, %zmm2
vpermilps   $170, %zmm0, %zmm1
vpermilps   $255, %zmm0, %zmm0
vfmadd132ps %zmm4, %zmm2, %zmm1
vfmadd132ps %zmm3, %zmm1, %zmm0
vmovups %zmm0, (%rdi)
vzeroupper
ret


gcc-11 (missing vbroadcasatf32x4) :

endbr64
vmovups (%rsi), %zmm0
vpermilps   $0, %zmm0, %zmm1
vmulps  (%rdx){1to16}, %zmm1, %zmm1
vpermilps   $85, %zmm0, %zmm2
vfmadd132ps 16(%rdx){1to16}, %zmm1, %zmm2
vpermilps   $170, %zmm0, %zmm1
vpermilps   $255, %zmm0, %zmm0
vfmadd132ps 32(%rdx){1to16}, %zmm2, %zmm1
vfmadd132ps 48(%rdx){1to16}, %zmm1, %zmm0
vmovups %zmm0, (%rdi)
vzeroupper
ret

[Bug c/104187] New: Call site specific attribute to control inliner

2022-01-22 Thread david.bolvansky at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104187

Bug ID: 104187
   Summary: Call site specific attribute to control inliner
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: david.bolvansky at gmail dot com
  Target Milestone: ---

It could be useful to have more control over inlining. Use cases:



int foo();

void bar();

int g; 

void test()
{
 g = __builtin_always_inline(foo()); // force inlining of foo() here
 __builtin_noinline(bar()); // never inline bar to this function
}

[Bug other/104181] [12 Regression] The redundant build.log file in the root directory

2022-01-22 Thread egallager at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104181

Eric Gallager  changed:

   What|Removed |Added

 CC||egallager at gcc dot gnu.org
   Keywords||build
   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=103331

--- Comment #3 from Eric Gallager  ---
How does build.log even get generated, anyways? Wondering for bug 103331...

[Bug analyzer/104159] ICE: in finalize, at vector-builder.h:513 with -O -fanalyzer

2022-01-22 Thread dmalcolm at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104159

David Malcolm  changed:

   What|Removed |Added

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

--- Comment #5 from David Malcolm  ---
Should be fixed by the above patch.

[Bug analyzer/104150] New test case gcc.dg/analyzer/pr104089.c fails after its introduction in r12-6700

2022-01-22 Thread dmalcolm at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104150

David Malcolm  changed:

   What|Removed |Added

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

--- Comment #2 from David Malcolm  ---
Thanks for filing this bug; hopefully the above patch fixes it.  Marking as
resolved; please reopen it if I messed up.

[Bug analyzer/104150] New test case gcc.dg/analyzer/pr104089.c fails after its introduction in r12-6700

2022-01-22 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104150

--- Comment #1 from CVS Commits  ---
The master branch has been updated by David Malcolm :

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

commit r12-6818-ga1fb81bda97014ba14d55c4c2e143d31ffe2e264
Author: David Malcolm 
Date:   Fri Jan 21 16:50:11 2022 -0500

testsuite: guard usage of _Float16 in analyzer test [PR104150]

gcc/testsuite/ChangeLog:
PR analyzer/104150
* gcc.dg/analyzer/pr104089.c: Add "dg-add-options float16"
and "dg-require-effective-target float16" directives.

Signed-off-by: David Malcolm 

[Bug analyzer/104159] ICE: in finalize, at vector-builder.h:513 with -O -fanalyzer

2022-01-22 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104159

--- Comment #4 from CVS Commits  ---
The master branch has been updated by David Malcolm :

https://gcc.gnu.org/g:45b999f642a531c083c982dda79fa6ad65730a7c

commit r12-6817-g45b999f642a531c083c982dda79fa6ad65730a7c
Author: David Malcolm 
Date:   Fri Jan 21 09:56:56 2022 -0500

analyzer: fix ICE on vector casts [PR104159]

PR analyzer/104159 describes an ICE attempting to convert a vector_cst,
which occurs when symbolically executing within a recursive call on:

  _4 = BIT_FIELD_REF ;
  _1 = VIEW_CONVERT_EXPR(_4);

where the BIT_FIELD_REF leads to a get_or_create_cast from
  VEC to VEC
which get_code_for_cast erroneously picks NOP_EXPR for the cast, leading
to a bogus input to the VIEW_CONVERT_EXPR.

This patch fixes the issue by giving up on attempts to cast symbolic
values of vector types, treating the result of such casts as unknowable.

gcc/analyzer/ChangeLog:
PR analyzer/104159
* region-model-manager.cc
(region_model_manager::get_or_create_cast): Bail out if the types
are the same.  Don't attempt to handle casts involving vector
types.

gcc/testsuite/ChangeLog:
PR analyzer/104159
* gcc.dg/analyzer/torture/pr104159.c: New test.

Signed-off-by: David Malcolm 

[Bug demangler/104186] New: Stack overflow in demangle_type() -> print_str() in libiberty/rust-demangle.c:869, cxxfilt

2022-01-22 Thread sanjayr at ymail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104186

Bug ID: 104186
   Summary: Stack overflow in demangle_type() -> print_str() in
libiberty/rust-demangle.c:869, cxxfilt
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: demangler
  Assignee: unassigned at gcc dot gnu.org
  Reporter: sanjayr at ymail dot com
  Target Milestone: ---

Created attachment 52268
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52268&action=edit
Commandline input for the crash (cxxfilt < PoV)

Hello,
While evaluating our new fuzzer on cxxfilt, we found several stack overflows in
libiberty/rust-demangle.c. This issue is specific to a stack overflow in
demangle_type(), which internally called a macro PRINT() that unfolds in
calling to print_str(). Looks like, the copy operation in this function does
not check buf length properly.

We compiled the utility (binutils cxxfilt) with ASAN. 

Comandline: cxxfilt < input_file (PoV that is attached)

ASan outupt:

===
status:  1
sanitizer:   ASAN
error class: stack-overflow
location:__interceptor_strlen.part.0 in
/home/xyzz/build/llvm_tools/llvm-11.0.0.src/projects/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:370:31
backtrace:
  #0   46ec57 __interceptor_strlen.part.0 in
/home/xyzz/build/llvm_tools/llvm-11.0.0.src/projects/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:370:31
  #1   857cb1 demangle_type in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:869:7
  #3   853d83 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:747:7
  #4   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #5   8542e4 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:774:11
  #6   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #7   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #8   8542e4 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:774:11
  #9   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #10   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #11   8542e4 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:774:11
  #12   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #13   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #14   8542e4 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:774:11
  #15   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #16   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #17   8542e4 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:774:11
  #18   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #19   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #20   8542e4 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:774:11
  #21   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #22   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #23   8542e4 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/buil

[Bug fortran/104127] [9/10/11/12 Regression] ICE in get_array_charlen, at fortran/trans-array.c:7244

2022-01-22 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104127

--- Comment #6 from CVS Commits  ---
The master branch has been updated by Harald Anlauf :

https://gcc.gnu.org/g:6c1a93102b41a558f3ad49a7c66015257535c747

commit r12-6816-g6c1a93102b41a558f3ad49a7c66015257535c747
Author: Harald Anlauf 
Date:   Thu Jan 20 22:36:50 2022 +0100

Fortran: fix simplification of TRANSFER for zero-sized character array
result

gcc/fortran/ChangeLog:

PR fortran/104127
* simplify.cc (gfc_simplify_transfer): Ensure that the result
typespec is set up for TRANSFER with MOLD of type CHARACTER
including character length even if the result is a zero-sized
array.

gcc/testsuite/ChangeLog:

PR fortran/104127
* gfortran.dg/transfer_simplify_11.f90: Fix logic.
* gfortran.dg/transfer_simplify_13.f90: New test.

[Bug middle-end/103641] [11/12 regression] Severe compile time regression in SLP vectorize step

2022-01-22 Thread roger at nextmovesoftware dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103641

--- Comment #20 from Roger Sayle  ---
IMHO, the problem is in tree-vect-patterns.cc's vect_synth_mult_by_constant.
The comment above line 3054 reads:
  /* Use MAX_COST here as we don't want to limit the sequence on rtx costs.
 The vectorizer's benefit analysis will decide whether it's beneficial
 to do this.  */
  bool possible = choose_mult_variant (mode, hwval, &alg, &variant, MAX_COST);

By using MAX_COST here, synth_mult is being allowed to take an unbounded
amount of time, considering all possible permutations/implementations to
find an optimal synthetic multiply sequence.  A more pragmatic bound might
be to compare the target's vector_multiply cost, or failing that use an
arbitrary, but reasonable limit, say COSTS_N_INSNS(8) machine instructions.
In the worst case, if it takes 100 instructions to do a vector multiply,
then the loop probably shouldn't be vectorized.

[Bug demangler/104185] New: Stack Overflow in str_buf_append(): rust-demangle.c:1493 in cxxfilt

2022-01-22 Thread sanjayr at ymail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104185

Bug ID: 104185
   Summary: Stack Overflow in str_buf_append():
rust-demangle.c:1493 in cxxfilt
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: demangler
  Assignee: unassigned at gcc dot gnu.org
  Reporter: sanjayr at ymail dot com
  Target Milestone: ---

Created attachment 52267
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52267&action=edit
PoV input for the above mentioned crash.

Hello,

While evaluating our new fuzzer on cxxfilt (binutils 2.37), we found a stack
overflow in str_buf_append() of libiberty/rust-demangle.c:1493. This function
calls memcpy, which probably copies more data to the destination that it can
hold.

Commit id (of github repo of binutils-gdb/libiberty/rust-demangle.c):
1657026ccd

commandline: cxxfilt < input_file (PoV)

ASan enabled binary execution output:


sanitizer:   ASAN
error class: stack-overflow
location:__asan_memcpy in
/home/xyzz/build/llvm_tools/llvm-11.0.0.src/projects/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cpp:22:3
backtrace:
  #0   4c120e __asan_memcpy in
/home/xyzz/build/llvm_tools/llvm-11.0.0.src/projects/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cpp:22:3
  #1   85735b str_buf_append in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:1493:3
  #2   85735b str_buf_demangle_callback in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:1500:3
  #3   85832e print_str in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:273:5
  #4   85832e demangle_type in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:877:7
  #5   853d83 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:747:7
  #6   8542e4 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:774:11
  #7   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #8   8542e4 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:774:11
  #9   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #10   8542e4 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:774:11
  #11   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #12   8542e4 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:774:11
  #13   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #14   8542e4 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:774:11
  #15   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #16   8542e4 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:774:11
  #17   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #18   8542e4 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:774:11
  #19   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #20   8542e4 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:774:11
  #21   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:751:11
  #22   8542e4 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/build/libiberty/../../libiberty/rust-demangle.c:774:11
  #23   853e11 demangle_path in
/home/xyzz/MyProject/remote_fuzz_suite/target_src/binutils-gdb/bui

[Bug c++/104180] [10/11/12 Regression] '-fcompare-debug' failure (length) w/ -O1

2022-01-22 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104180

Jakub Jelinek  changed:

   What|Removed |Added

 CC||aoliva at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek  ---
If it is because of -gstatement-frontiers, I've ran out of ideas how to fix
them.
So unless Alexandre is willing to look at it, I'd suggest to at least turn
-gstatement-frontiers off by default.

[Bug c++/104182] [12 Regression] Wrong code since r12-6329-g4f6bc28fc7dd86bd

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104182

Andrew Pinski  changed:

   What|Removed |Added

   Severity|normal  |critical

[Bug c++/104180] [10/11/12 Regression] '-fcompare-debug' failure (length) w/ -O1

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104180

Andrew Pinski  changed:

   What|Removed |Added

   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=100733,
   ||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=103788

--- Comment #3 from Andrew Pinski  ---
Similar in nature to PR 100733 and PR 103788.

[Bug c++/104180] [10/11/12 Regression] '-fcompare-debug' failure (length) w/ -O1

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104180

Andrew Pinski  changed:

   What|Removed |Added

  Component|middle-end  |c++

--- Comment #2 from Andrew Pinski  ---
[apinski@xeond2 src]$ diff -up t.cc.*original t.gk.cc.*original |less
--- t.cc.005t.original  2022-01-22 03:44:26.901343652 -0800
+++ t.gk.cc.005t.original   2022-01-22 03:44:27.005343663 -0800
@@ -6,13 +6,19 @@
 {
   unsigned int b;

+  # DEBUG BEGIN STMT;
 unsigned int b;
+  # DEBUG BEGIN STMT;
   <;
   :;
+  # DEBUG BEGIN STMT;
   <;
+(void) (a[b] = # DEBUG BEGIN STMT;
+a[b + 1];) >;
+  # DEBUG BEGIN STMT;
   <>;
+  # DEBUG BEGIN STMT;
   goto ;
 }



And then we gimplify:
+  # DEBUG BEGIN_STMT
+  # DEBUG BEGIN_STMT
   b = 3;
   :
-  _1 = b + 1;
-  _2 = a[_1];
-  a[b] = _2;
+  # DEBUG BEGIN_STMT
+  _1 = &a[b];
+  # DEBUG BEGIN_STMT
+  _2 = b + 1;
+  _3 = a[_2];
+  *_1 = _3;
+  # DEBUG BEGIN_STMT
   b = b + 4294967295;
+  # DEBUG BEGIN_STMT
   goto ;

[Bug target/104183] gcc6 error with building icu for ppc64

2022-01-22 Thread iains at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104183

Iain Sandoe  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |WONTFIX
   Keywords||rejects-valid
   Last reconfirmed||2022-1-22

--- Comment #1 from Iain Sandoe  ---
Yes, I can repeat this, it is quite possible that there are several/many C++11
bugs on this branch, however GCC-6 branch has been closed for some time now (so
we cannot update it here).

If you can determine which patch(es) fixed this on the 7 branch then perhaps
you could back port them locally for the macports GCC-6.5 branch.

[Bug tree-optimization/104178] [12 Regreession] -fcompare-debug failure at -O3 -m32

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104178

Andrew Pinski  changed:

   What|Removed |Added

  Component|middle-end  |tree-optimization

--- Comment #4 from Andrew Pinski  ---
The first difference shows up in 194t.dom3 .

[Bug c++/104184] [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104184

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
   Target Milestone|--- |11.3

[Bug c++/104184] [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes

2022-01-22 Thread glisse at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104184

--- Comment #2 from Marc Glisse  ---
And the stack trace for comment #1

Internal compiler error: Error reporting routines re-entered.
0xff6b0d tsubst(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.cc:16068
0xff5f6d tsubst(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.cc:16055
0x100494e tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.cc:13423
0xff635e tsubst(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.cc:15461
0xff5f6d tsubst(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.cc:16055
0x100494e tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.cc:13423
0xff635e tsubst(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.cc:15461
0x1005a77 tsubst_decl
../../src/gcc/cp/pt.cc:14815
0x101d842 instantiate_class_template_1
../../src/gcc/cp/pt.cc:12076
0x101ec31 instantiate_class_template(tree_node*)
../../src/gcc/cp/pt.cc:12311
0x10714d8 complete_type(tree_node*)
../../src/gcc/cp/typeck.cc:143
0x107163d complete_type_or_maybe_complain(tree_node*, tree_node*, int)
../../src/gcc/cp/typeck.cc:156
0xff73d0 tsubst(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.cc:16081
0x100494e tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.cc:13423
0xff635e tsubst(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.cc:15461
0xee6e31 dump_template_bindings
../../src/gcc/cp/error.cc:486
0xee0619 dump_function_decl
../../src/gcc/cp/error.cc:1805
0xee8602 decl_to_string
../../src/gcc/cp/error.cc:3225
0xee8602 cp_printer
../../src/gcc/cp/error.cc:4396
0x281b82f pp_format(pretty_printer*, text_info*)
../../src/gcc/pretty-print.cc:1475

[Bug c++/104184] [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes

2022-01-22 Thread glisse at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104184

--- Comment #1 from Marc Glisse  ---
A different reduction from the same code. This one does not compile with clang
anymore. ICEs with -Wall -W, but not if I remove one of them.

using mp_false = struct mp_identity { using type = void; };
template  using mp_if_c = typename T ::type;
template  using mp_at_c = typename mp_if_c::type;
template  using make_arg_list = List;
template  using make_parameter_spec_items = SpecSeq;
template  struct argument_pack {
  using type =
  mp_at_c::type,
  typename Parameters::deduced_listboosttag_keyword_arg,
  mp_false>::type,
  0>;
};
void no_exude();
template  using boost_param_result_465refine_mesh_3 = mp_identity;
template 
typename boost_param_result_465refine_mesh_3<
typename argument_pack::type>::type
refine_mesh_3(ParameterArgumentType0, ParameterArgumentType1,
  ParameterArgumentType2, ParameterArgumentType3,
  ParameterArgumentType4, ParameterArgumentType5 a5) {}
int verify___trans_tmp_1, image_domain;
struct Tester {
  template 
  void verify(C3t3 c3t3, Domain domain, Criteria criteria, Domain_type_tag) {
refine_mesh_3(c3t3, domain, criteria, no_exude, verify___trans_tmp_1,
  verify___trans_tmp_1);
  }
} image_c3t3;
struct Image_tester : Tester {
  void image() {
void criteria();
verify(image_c3t3, image_domain, criteria, int());
  }
};

[Bug debug/104180] [10/11/12 Regression] '-fcompare-debug' failure (length) w/ -O1

2022-01-22 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104180

Jakub Jelinek  changed:

   What|Removed |Added

   Last reconfirmed||2022-01-22
   Target Milestone|--- |10.4
 Status|UNCONFIRMED |NEW
 CC||jakub at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Jakub Jelinek  ---
Started with r11-963-g80d6f89e78fc3b772701988cc73aa8e8006283be
which has been backported to 10.x in r10-8355-g7d919c33fbd29

[Bug c++/104184] New: [11/12 Regression] ICE Error reporting routines re-entered. xref_basetypes

2022-01-22 Thread glisse at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104184

Bug ID: 104184
   Summary: [11/12 Regression] ICE Error reporting routines
re-entered. xref_basetypes
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: glisse at gcc dot gnu.org
  Target Milestone: ---

This is reduced from valid code (I think) and it still compiles with "g++ -c
-w" or "clang++ -c", although the undefined inline function seems to play a
strong role, so this may not be exactly the same as the original ICE. The call
stack starts the same (xref_basetypes) but in the original it went through
"unify" and only failed with gcc-12 (not 11) with -Wall and -Wextra.

template  using mp_size_t = int;
template  struct mp_list;
template  struct mp_identity { using type = int; };
template  struct mp_inherit : T... {};
template  using mpmf_wrap = mp_identity;
template  using mpmf_unwrap = typename T::type;
template  struct mp_map_find_impl;
template  class M, class... T, class K> 
struct mp_map_find_impl, K> { 
  using U = mp_inherit...>;
  static mp_identity f(mp_identity *); 
  using type = mpmf_unwrap;
};  
template  
using mp_map_find = typename mp_map_find_impl::type;
template  using mp_second = int;
template  struct mp_at_c_impl { 
  using _map = mp_list, int>;
  using type = mp_second>>;
};  
template  using make_arg_list = mp_identity;
template  struct argument_pack { 
  using type = typename mp_at_c_impl<
  typename make_arg_list::type,
  0>::type;
}; 
struct parameters {
  typedef mp_list<> parameter_spec;
}; 
template  
using boost_param_result_39refine_mesh_3 = mp_identity;
template  
inline typename boost_param_result_39refine_mesh_3<
typename argument_pack::type>::type
refine_mesh_3();
int main() { refine_mesh_3(); }

Internal compiler error: Error reporting routines re-entered.
0xec0348 xref_basetypes(tree_node*, tree_node*)
../../src/gcc/cp/decl.cc:15783
0x101d194 instantiate_class_template_1
../../src/gcc/cp/pt.cc:11953
0x101ec31 instantiate_class_template(tree_node*)
../../src/gcc/cp/pt.cc:12311
0x10714d8 complete_type(tree_node*)
../../src/gcc/cp/typeck.cc:143
0x102d168 lookup_base(tree_node*, tree_node*, int, base_kind*, int)
../../src/gcc/cp/search.cc:229
0xe0ea26 standard_conversion
../../src/gcc/cp/call.cc:1403
0xe12484 implicit_conversion_1
../../src/gcc/cp/call.cc:2031
0xe12484 implicit_conversion
../../src/gcc/cp/call.cc:2131
0xe13d7e add_function_candidate
../../src/gcc/cp/call.cc:2465
0xe15349 add_candidates
../../src/gcc/cp/call.cc:6182
0xe1c362 add_candidates
../../src/gcc/cp/call.cc:6051
0xe1c362 build_new_method_call(tree_node*, tree_node*, vec**, tree_node*, int, tree_node**, int)
../../src/gcc/cp/call.cc:11012
0x1039e3d finish_call_expr(tree_node*, vec**,
bool, bool, int)
../../src/gcc/cp/semantics.cc:2788
0xfe96d4 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
../../src/gcc/cp/pt.cc:20780
0xff5e8c tsubst(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.cc:16162
0x100494e tsubst_template_args(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.cc:13423
0xff635e tsubst(tree_node*, tree_node*, int, tree_node*)
../../src/gcc/cp/pt.cc:15461
0x1005a77 tsubst_decl
../../src/gcc/cp/pt.cc:14815
0x101d842 instantiate_class_template_1
../../src/gcc/cp/pt.cc:12076
0x101ec31 instantiate_class_template(tree_node*)
../../src/gcc/cp/pt.cc:12311

[Bug other/104181] [12 Regression] The redundant build.log file in the root directory

2022-01-22 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104181

--- Comment #2 from CVS Commits  ---
The master branch has been updated by Jakub Jelinek :

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

commit r12-6815-g0f4f9c0085eb68e0546804b156aa8bb388f2d3e0
Author: Jakub Jelinek 
Date:   Sat Jan 22 12:03:14 2022 +0100

toplevel: Remove accedentally checked in file

This has been added in r12-6342-ge7a7dbb5ca5dd69689f1a probably
by accident.

2022-01-22  Jakub Jelinek  

PR other/104181
* build.log: Remove.

[Bug target/104172] [9/10/11/12 Regression] ppc64le mangling ICE with -flto -ffat-lto-objects

2022-01-22 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104172

--- Comment #6 from Jakub Jelinek  ---
>From my side, I think best would be just to partially revert
r9-1033-gc765c8cb73b0bb91e9f0401ab6567b6218b910e5
(all the rs6000_passes_ieee128 and ieee128_mangling_gcc_8_1 related stuff in
there, don't set those and when testing assume false).
Rationale, -mabi=ieeelongdouble has been an undocumented unsupported option
before GCC 8, it is true it was "supported" option in 8.1, but still far from
being fully usable both because of the missing libstdc++ support and important
bugfixes.  And in 8.2 the ABI we have now has been backported -
r8-8265-gd8f96ab114a977d9 .  So, we are taking a lot of pain for compatibility
with something that likely nobody used, glibc support wasn't there until the
2.32 release done after 8.2 was released.

If not and we do want the pain, then all the mangling has to be done before
free_lang_data (so can't be driven by rs6000_passes_ieee128 which is RTL-ish
time, but on whether u9__ieee128 has been emitted into the mangled name),
ideally through a target hook in mangle_decl where it also does the
  record_mangling (decl, G.need_abi_warning);

  if (!G.need_abi_warning)
return;

  flag_abi_version = flag_abi_compat_version;
  id2 = mangle_decl_string (decl);
  id2 = targetm.mangle_decl_assembler_name (decl, id2);
  flag_abi_version = save_ver;

  if (id2 != id)
note_mangling_alias (decl, id2);
stuff (perhaps right before that if (!G.need_abi_warning) spot).

Note, some Fedora packages fail with weirdo errors like:
{standard input}: Assembler messages:
{standard input}:43720: Error: junk at end of line, first unrecognized
character is `['
{standard input}:43721: Error: expected comma after "operator"
{standard input}:45644: Error: junk at end of line, first unrecognized
character is `.'
{standard input}:45645: Error: expected comma after "__ct_base"
{standard input}:46051: Error: junk at end of line, first unrecognized
character is `.'
{standard input}:46052: Error: expected comma after "__ct_base"
{standard input}:46794: Error: junk at end of line, first unrecognized
character is `.'
{standard input}:46795: Error: expected comma after "__ct_base"
{standard input}:48803: Error: junk at end of line, first unrecognized
character is `='
{standard input}:48804: Error: expected comma after "operator"
{standard input}:49232: Error: junk at end of line, first unrecognized
character is `.'
{standard input}:49233: Error: expected comma after "__ct_base"
and I strongly believe it is the same thing, lto1 and the identifier being
mangled in a weirdo way.

[Bug target/104183] New: gcc6 error with building icu for ppc64

2022-01-22 Thread vital.had at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104183

Bug ID: 104183
   Summary: gcc6 error with building icu for ppc64
   Product: gcc
   Version: 6.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vital.had at gmail dot com
CC: iains at gcc dot gnu.org
  Target Milestone: ---
Target: powerpc64-apple-darwin9.8.0

Created attachment 52266
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52266&action=edit
ii files for errors

Build fails with the following:

ld: duplicate symbol
icu_67::number::NumberFormatterSettings::copyErrorTo(UErrorCode&)
const in number_skeletons.o and number_fluent.o
collect2: error: ld returned 1 exit status
make[1]: *** [../lib/libicui18n.67.1.dylib] Error 1
make: *** [all-recursive] Error 2

Commands producing the faulty objects:

/opt/local/bin/g++-mp-6 -m64 -O2 -DU_ATTRIBUTE_DEPRECATED=
-DU_I18N_IMPLEMENTATION -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=1 -I.
-I../common -O2 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings
-Wno-long-long -std=c++11 -fvisibility=hidden -fno-common -c -dynamic -MMD -MT
"number_skeletons.d number_skeletons.o number_skeletons.ao" -o
number_skeletons.o number_skeletons.cpp

/opt/local/bin/g++-mp-6 -m64 -O2 -DU_ATTRIBUTE_DEPRECATED=
-DU_I18N_IMPLEMENTATION -DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=1 -I.
-I../common -O2 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings
-Wno-long-long -std=c++11 -fvisibility=hidden -fno-common -c -dynamic -MMD -MT
"number_fluent.d number_fluent.o number_fluent.ao" -o number_fluent.o
number_fluent.cpp

P. S. Error unrelated to Macports, I have redone the build outside with cleared
path, and it fails identically. ii files in attachment are from the build
outside of Macports.

[Bug target/104117] [9,10,11,12 Regression] Darwin ppc64 uses invalid non-PIC address to access constants (in PIC code).

2022-01-22 Thread vital.had at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104117

--- Comment #12 from Sergey Fedorov  ---
Not sure if the error is related, but trying to build icu with gcc6 in Macports
gives this:

/opt/local/bin/g++-mp-6 -DU_ATTRIBUTE_DEPRECATED= -DU_I18N_IMPLEMENTATION
-DU_HAVE_STRTOD_L=1 -DU_HAVE_XLOCALE_H=1 -I. -I../common -pipe -Os -m32
-D_GLIBCXX_USE_CXX11_ABI=0 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings
-Wno-long-long -std=c++11 -fvisibility=hidden -fno-common -c -dynamic -MMD -MT
"formatted_string_builder.d formatted_string_builder.o
formatted_string_builder.ao" -o formatted_string_builder.o
formatted_string_builder.cpp
ar r -c ../lib/libicui18n.a ucln_in.ao fmtable.ao format.ao msgfmt.ao umsg.ao
numfmt.ao unum.ao decimfmt.ao dcfmtsym.ao fmtable_cnv.ao choicfmt.ao datefmt.ao
smpdtfmt.ao reldtfmt.ao dtfmtsym.ao udat.ao dtptngen.ao udatpg.ao nfrs.ao
nfrule.ao nfsubs.ao rbnf.ao numsys.ao unumsys.ao ucsdet.ao ucal.ao calendar.ao
gregocal.ao timezone.ao simpletz.ao olsontz.ao astro.ao taiwncal.ao buddhcal.ao
persncal.ao islamcal.ao japancal.ao gregoimp.ao hebrwcal.ao indiancal.ao
chnsecal.ao cecal.ao coptccal.ao dangical.ao ethpccal.ao coleitr.ao coll.ao
sortkey.ao bocsu.ao ucoleitr.ao ucol.ao ucol_res.ao ucol_sit.ao collation.ao
collationsettings.ao collationdata.ao collationtailoring.ao
collationdatareader.ao collationdatawriter.ao collationfcd.ao
collationiterator.ao utf16collationiterator.ao utf8collationiterator.ao
uitercollationiterator.ao collationsets.ao collationcompare.ao
collationfastlatin.ao collationkeys.ao rulebasedcollator.ao collationroot.ao
collationrootelements.ao collationdatabuilder.ao collationweights.ao
collationruleparser.ao collationbuilder.ao collationfastlatinbuilder.ao
listformatter.ao ulistformatter.ao strmatch.ao usearch.ao search.ao stsearch.ao
translit.ao utrans.ao esctrn.ao unesctrn.ao funcrepl.ao strrepl.ao tridpars.ao
cpdtrans.ao rbt.ao rbt_data.ao rbt_pars.ao rbt_rule.ao rbt_set.ao nultrans.ao
remtrans.ao casetrn.ao titletrn.ao tolowtrn.ao toupptrn.ao anytrans.ao
name2uni.ao uni2name.ao nortrans.ao quant.ao transreg.ao brktrans.ao
regexcmp.ao rematch.ao repattrn.ao regexst.ao regextxt.ao regeximp.ao uregex.ao
uregexc.ao ulocdata.ao measfmt.ao currfmt.ao curramt.ao currunit.ao measure.ao
utmscale.ao csdetect.ao csmatch.ao csr2022.ao csrecog.ao csrmbcs.ao csrsbcs.ao
csrucode.ao csrutf8.ao inputext.ao wintzimpl.ao windtfmt.ao winnmfmt.ao
basictz.ao dtrule.ao rbtz.ao tzrule.ao tztrans.ao vtzone.ao zonemeta.ao
standardplural.ao upluralrules.ao plurrule.ao plurfmt.ao selfmt.ao dtitvfmt.ao
dtitvinf.ao udateintervalformat.ao tmunit.ao tmutamt.ao tmutfmt.ao currpinf.ao
uspoof.ao uspoof_impl.ao uspoof_build.ao uspoof_conf.ao smpdtfst.ao ztrans.ao
zrule.ao vzone.ao fphdlimp.ao fpositer.ao ufieldpositer.ao decNumber.ao
decContext.ao alphaindex.ao tznames.ao tznames_impl.ao tzgnames.ao tzfmt.ao
compactdecimalformat.ao gender.ao region.ao scriptset.ao uregion.ao
reldatefmt.ao quantityformatter.ao measunit.ao measunit_extra.ao
sharedbreakiterator.ao scientificnumberformatter.ao dayperiodrules.ao nounit.ao
number_affixutils.ao number_compact.ao number_decimalquantity.ao
number_decimfmtprops.ao number_fluent.ao number_formatimpl.ao
number_grouping.ao number_integerwidth.ao number_longnames.ao
number_modifiers.ao number_notation.ao number_output.ao number_padding.ao
number_patternmodifier.ao number_patternstring.ao number_rounding.ao
number_scientific.ao number_utils.ao number_asformat.ao number_mapper.ao
number_multiplier.ao number_currencysymbols.ao number_skeletons.ao
number_capi.ao double-conversion-string-to-double.ao
double-conversion-double-to-string.ao double-conversion-bignum-dtoa.ao
double-conversion-bignum.ao double-conversion-cached-powers.ao
double-conversion-fast-dtoa.ao double-conversion-strtod.ao string_segment.ao
numparse_parsednumber.ao numparse_impl.ao numparse_symbols.ao
numparse_decimal.ao numparse_scientific.ao numparse_currency.ao
numparse_affixes.ao numparse_compositions.ao numparse_validators.ao
numrange_fluent.ao numrange_impl.ao erarules.ao formattedvalue.ao
formattedval_iterimpl.ao formattedval_sbimpl.ao formatted_string_builder.ao
/opt/local/bin/ranlib: file: ../lib/libicui18n.a(wintzimpl.ao) has no symbols
/opt/local/bin/ranlib: file: ../lib/libicui18n.a(windtfmt.ao) has no symbols
/opt/local/bin/ranlib: file: ../lib/libicui18n.a(winnmfmt.ao) has no symbols
ranlib ../lib/libicui18n.a
ranlib: file: ../lib/libicui18n.a(wintzimpl.ao) has no symbols
ranlib: file: ../lib/libicui18n.a(windtfmt.ao) has no symbols
ranlib: file: ../lib/libicui18n.a(winnmfmt.ao) has no symbols
/opt/local/bin/g++-mp-6 -dynamiclib -dynamic -pipe -Os -m32
-D_GLIBCXX_USE_CXX11_ABI=0 -W -Wall -pedantic -Wpointer-arith -Wwrite-strings
-Wno-long-long -std=c++11-fvisibility=hidden
-Wl,-headerpad_max_install_names -Wl,-read_only_relocs,suppress -m32   
-Wl,-compatibility_version -Wl,67 -Wl,-current_version -Wl,67.1 -install_name
/opt/local/lib/libicui18n.67.dylib -o ../lib/libicui18n.67.1.dy

[Bug c++/104182] [12 Regression] Wrong code since r12-6329-g4f6bc28fc7dd86bd

2022-01-22 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104182

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1
   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=103984
   Priority|P3  |P1
   Target Milestone|--- |12.0
   Last reconfirmed||2022-01-22

[Bug c++/104182] New: [12 Regression] Wrong code since r12-6329-g4f6bc28fc7dd86bd

2022-01-22 Thread marxin at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104182

Bug ID: 104182
   Summary: [12 Regression] Wrong code since
r12-6329-g4f6bc28fc7dd86bd
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: marxin at gcc dot gnu.org
CC: jason at gcc dot gnu.org
  Target Milestone: ---

Originally reported here:
https://gitlab.kitware.com/cmake/cmake/-/issues/23126#note_696

for the following we emit a wrong code:

$ cat cmake-repro.C
#include 
#include 
#include 

struct S
{
  int A;
  std::string B;
};

struct V
{
  std::vector v;
};

static const V v{ { { { 1, "2" } } } };

int main()
{
  if (v.v[0].A != 1 || v.v[0].B[0] != '2')
__builtin_abort();
  return 0;
}

$ g++ cmake-repro.C && ./a.out
Aborted (core dumped)

[Bug middle-end/104178] [12 Regreession] -fcompare-debug failure at -O3 -m32

2022-01-22 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104178

Jakub Jelinek  changed:

   What|Removed |Added

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

--- Comment #3 from Jakub Jelinek  ---
Started with r12-4790-g4b3a325f07acebf47e82de227ce1d5ba62f5bcae

[Bug other/104181] [12 Regression] The redundant build.log file in the root directory

2022-01-22 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104181

Jonathan Wakely  changed:

   What|Removed |Added

 CC||crazylht at gmail dot com
Summary|The redundant build.log |[12 Regression] The
   |file in the root directory  |redundant build.log file in
   ||the root directory
 Status|UNCONFIRMED |NEW
   Target Milestone|--- |12.0
 Ever confirmed|0   |1
   Last reconfirmed||2022-01-22

--- Comment #1 from Jonathan Wakely  ---
Added by g:e7a7dbb5ca5dd69689f1a462ba7620180acfe8b0

How did the commit hooks not reject this?

[Bug other/104181] New: The redundant build.log file in the root directory

2022-01-22 Thread yansendao at 126 dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104181

Bug ID: 104181
   Summary: The redundant build.log file in the root directory
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
  Assignee: unassigned at gcc dot gnu.org
  Reporter: yansendao at 126 dot com
  Target Milestone: ---

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

[Bug debug/104180] New: [10/11/12 Regression] '-fcompare-debug' failure (length) w/ -O1

2022-01-22 Thread asolokha at gmx dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104180

Bug ID: 104180
   Summary: [10/11/12 Regression] '-fcompare-debug' failure
(length) w/ -O1
   Product: gcc
   Version: 12.0
Status: UNCONFIRMED
  Keywords: compare-debug-failure
  Severity: normal
  Priority: P3
 Component: debug
  Assignee: unassigned at gcc dot gnu.org
  Reporter: asolokha at gmx dot com
  Target Milestone: ---

g++ 12.0.0 20220109 snapshot (g:90045c5df5b3c8853e7740fb72a11aead1c489bb) fails
-fcompare-debug check when compiling the following testcase, reduced from
gcc/testsuite/gcc.dg/torture/pr89223.c, w/ -O1:

int a[5];

void
c ()
{
  unsigned int b;

  for (b = 3; ; b--)
a[b] = ({ a[b + 1]; });
}

% g++-12.0.0 -O1 -fcompare-debug -c lluhupiv.c
g++-12.0.0: error: lluhupiv.c: '-fcompare-debug' failure (length)

--- lluhupiv.c.gkd  2022-01-22 15:27:16.168639041 +0700
+++ lluhupiv.gk.c.gkd   2022-01-22 15:27:16.239634334 +0700
@@ -33,7 +33,7 @@
  (nil))
 (insn # 0 0 3 (set (mem:SI (plus:DI (mult:DI (reg:DI 2 cx [orig:87 b ] [87])
 (const_int 4 [0x4]))
-(reg/f:DI 5 di [86])) [ a[b_3]+0 S4 A32])
+(reg/f:DI 5 di [86])) [ MEM  [(int *)&a][b_3]+0 S4
A32])
 (reg:SI 4 si [orig:82 _2 ] [82])) "lluhupiv.c":9:10# {*movsi_internal}
  (expr_list:REG_DEAD (reg:SI 4 si [orig:82 _2 ] [82])
 (expr_list:REG_DEAD (reg:DI 2 cx [orig:87 b ] [87])

[Bug middle-end/104178] [12 Regreession] -fcompare-debug failure at -O3 -m32

2022-01-22 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104178

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |12.0
Version|unknown |12.0
Summary|-fcompare-debug failure at  |[12 Regreession]
   |-O3 -m32|-fcompare-debug failure at
   ||-O3 -m32
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2022-01-22
 Ever confirmed|0   |1

--- Comment #2 from Andrew Pinski  ---
Confirmed.