[Bug bootstrap/96378] segfault during bootstrap with --disable-checking

2020-12-19 Thread ebotcazou at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96378

Eric Botcazou  changed:

   What|Removed |Added

 Status|WAITING |NEW
Summary|ICE: Solaris/SPARCv9|segfault during bootstrap
   |bootstrap stage2 segfault   |with --disable-checking
   |compiling   |
   |stdc++.h.gch/O2ggnu++0x.gch |

--- Comment #6 from Eric Botcazou  ---
> Thanks! configuring with  --enable-checking=release  allowed it to compile.

You're welcome.  We strongly discourage to configure with --disable-checking
because the compiler will generally not stop in cases where it is confused.

The build should not segfault with it though, so keeping the PR open.

[Bug libstdc++/98389] [11 regression] libstdc++-abi/abi_check fails after r11-6249 on powerpc64 big endian

2020-12-19 Thread schwab--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98389

--- Comment #1 from Andreas Schwab  ---
The list just needs to be updated.

[Bug c++/98383] internal compiler error: in make_decl_rtl, at varasm.c:1342

2020-12-19 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98383

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek  ---
Reduced testcase:
int bar (const int &);

void
foo ()
{
#pragma omp simd
  for (int i = 0; i < bar (8); ++i)
;
}

[Bug libgcc/98390] New: AIX: exceptions in threads: IOT/Abort trap(coredump)

2020-12-19 Thread stefan at bytereef dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98390

Bug ID: 98390
   Summary: AIX: exceptions in threads: IOT/Abort trap(coredump)
   Product: gcc
   Version: 10.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgcc
  Assignee: unassigned at gcc dot gnu.org
  Reporter: stefan at bytereef dot org
  Target Milestone: ---

The following test case is extracted from a larger program. When repeated
often enough, it terminates with: IOT/Abort trap(coredump)

Confirmed with g++ (GCC) 7.2.0 and g++ (GCC) 10.2.0 on gcc119.fsffrance.org.


test.cc:

#include 
#include 
#include 


class suntime_error : public std::runtime_error {
  using std::runtime_error::runtime_error;
};

static void
doit()
{
try {
throw suntime_error("this is an error");
}
catch (const suntime_error& err) {
(void)err;
}
}

static void
do_threads()
{
const size_t n = 100;
std::vector t(n);

for (size_t k = 0; k < n; k++) {
t[k] = std::thread(doit);
}

for (size_t k = 0; k < n; k++) {
t[k].join();
}
}

int
main()
{
do_threads();
return 0;
}



doit.sh:

#!/bin/sh

while ./test; do
:
done




$ g++ -pthread -Wall -Wextra -std=gnu++11 -pedantic -O0 -g -o test test.cc

$ ./doit.sh
./doit.sh[3]: 14484092 IOT/Abort trap(coredump)

$ gdb ./test core
[...]
Program terminated with signal SIGABRT, Aborted.
#0  0xd058f3ec in pthread_kill () from /usr/lib/libpthreads.a(shr_xpg5.o)
(gdb) bt
#0  0xd058f3ec in pthread_kill () from /usr/lib/libpthreads.a(shr_xpg5.o)
#1  0xd058e7cc in _p_raise () from /usr/lib/libpthreads.a(shr_xpg5.o)
#2  0xd0123608 in raise () from /usr/lib/libc.a(shr.o)
#3  0xd0189ebc in abort () from /usr/lib/libc.a(shr.o)
#4  0xd08741a4 in uw_init_context_1 () from
/opt/freeware/lib/gcc/powerpc-ibm-aix7.2.0.0/7.2.0/pthread/libgcc_s.a(shr.o)
#5  0xd0874e50 in _Unwind_RaiseException () from
/opt/freeware/lib/gcc/powerpc-ibm-aix7.2.0.0/7.2.0/pthread/libgcc_s.a(shr.o)
#6  0xd17cd2cc in __cxa_throw () from
/opt/freeware/lib/gcc/powerpc-ibm-aix7.2.0.0/7.2.0/pthread/libstdc++.a(libstdc++.so.6)
#7  0x16dc in doit () at test.cc:14
#8  0x100021fc in void std::__invoke_impl(std::__invoke_other, void (*&&)()) (__f=)
#9  0x100020c4 in std::__invoke_result::type std::__invoke(void (*&&)()) (__fn=)
#10 0x10002cd4 in decltype (__invoke((_S_declval<0ul>)()))
std::thread::_Invoker
>::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=)
#11 0x10002c2c in std::thread::_Invoker >::operator()
(this=)
#12 0x10002b8c in
std::thread::_State_impl >
>::_M_run (this=)
#13 0xd18964d8 in execute_native_thread_routine () from
/opt/freeware/lib/gcc/powerpc-ibm-aix7.2.0.0/7.2.0/pthread/libstdc++.a(libstdc++.so.6)
#14 0xd0572f68 in _pthread_body () from /usr/lib/libpthreads.a(shr_xpg5.o)
#15 0x in ?? ()

[Bug c++/98348] GCC 10.2 AVX512 Mask regression from GCC 9

2020-12-19 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348

--- Comment #6 from Jakub Jelinek  ---
In the light of the recent discussions I've been wondering about doing it as
combine splitters only, like roughly:
--- sse.md.jj   2020-12-03 10:04:35.862093285 +0100
+++ sse.md  2020-12-19 11:00:14.272140859 +0100
@@ -2965,6 +2965,40 @@
(set_attr "prefix" "vex")
(set_attr "mode" "")])

+(define_split
+  [(set (match_operand 0 "register_operand")
+   (vec_merge
+ (match_operand 1 "vector_all_ones_operand")
+ (match_operand 2 "const0_operand")
+ (unspec
+   [(match_operand 3 "register_operand")
+(match_operand 4 "nonimmediate_operand")
+(match_operand:SI 5 "const_0_to_31_operand")]
+UNSPEC_PCMP)))]
+  "TARGET_AVX512VL
+   && GET_MODE_CLASS (GET_MODE (operands[0])) == MODE_VECTOR_INT
+   && (GET_MODE_SIZE (GET_MODE (operands[1])) == 16
+   || GET_MODE_SIZE (GET_MODE (operands[1])) == 32)
+   && GET_MODE (operands[1]) == GET_MODE (operands[0])
+   && GET_MODE (operands[2]) == GET_MODE (operands[0])
+   && GET_MODE_CLASS (GET_MODE (operands[3])) == MODE_VECTOR_FLOAT
+   && (GET_MODE_SIZE (GET_MODE (operands[3]))
+   == GET_MODE_SIZE (GET_MODE (operands[0])))
+   && (GET_MODE_UNIT_SIZE (GET_MODE (operands[3]))
+   == GET_MODE_UNIT_SIZE (GET_MODE (operands[0])))
+   && GET_MODE (operands[4]) == GET_MODE (operands[3])"
+  [(set (match_dup 6) (match_dup 7))
+   (set (match_dup 0) (match_dup 8))]
+{
+  operands[6] = gen_reg_rtx (GET_MODE (operands[3]));
+  operands[7]
+= gen_rtx_UNSPEC (GET_MODE (operands[3]),
+ gen_rtvec (3, operands[3], operands[4], operands[5]),
+ UNSPEC_PCMP);
+  operands[8] = lowpart_subreg (GET_MODE (operands[0]), operands[6],
+   GET_MODE (operands[3]));
+})
+
 (define_insn "avx_vmcmp3"
   [(set (match_operand:VF_128 0 "register_operand" "=x")
(vec_merge:VF_128

The advantage is that one pattern can then handle in theory all (or half) of
the floating point comparison cases.
One problem is that combiner still doesn't even try the splitting if only
combining two insns.
Also, but I think that is in your patch too, vector_all_ones_operand will match
only integral all ones vectors, I think we want another predicate that will
match even MEMs with the floating point version thereof (a NaN kind with all
bits set).  And, we should have splitters for not just the -1 0 order in
VEC_MERGE, but also the 0 -1 order by inverting the comparison carefully.

[Bug c++/98348] GCC 10.2 AVX512 Mask regression from GCC 9

2020-12-19 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348

--- Comment #7 from Jakub Jelinek  ---
Seems the adjustment for last UNSPEC_PCMP operand between all_ones, const0 and
const0, all_ones is GEN_INT (INTVAL (operands[3]) ^ 4).

[Bug c++/98348] GCC 10.2 AVX512 Mask regression from GCC 9

2020-12-19 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98348

--- Comment #8 from Jakub Jelinek  ---
Created attachment 49806
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49806&action=edit
gcc11-pr98348.patch

So, if we go for GCC11 the way of pre-reload define_insn_and_split, this is
some incremental untested progress on your patch (just the sse.md part of it).
Changes:
1) it is undesirable to put SUBREGs on the SET_DEST side, as it prevents other
optimizations later on
2) I don't see the point on the TARGET_AVX512BW ||, the insn in the end is
plain AVX or AVX2 or SSE4* etc. one
3) handles also the const0 vector_all_ones order
4) for commutative cases allows any operand order, for others ensures the right
one of the operands is register
5) handles also the LE case by swapping the comparison operands

The patch doesn't handle the cases where based on the comparison one sets up
floating vectors, as can be seen e.g. in:
typedef float V128 __attribute__ ((vector_size(16)));
typedef float V256 __attribute__ ((vector_size(32)));
typedef float V512 __attribute__ ((vector_size(64)));

V128
foo (V128 x)
{
  const union U { unsigned u; float f; } u = { -1U };
  return x > 0.0f ? u.f : 0.0f;
}

V256
bar (V256 x)
{
  const union U { unsigned u; float f; } u = { -1U };
  return x > 0.0f ? u.f : 0.0f;
}

[Bug tree-optimization/98378] new valgrind error for ./gcc.c-torture/execute/pr60960.c

2020-12-19 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98378

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

https://gcc.gnu.org/g:9032d2b2414ed22e53a9980a51b835d3caf83c48

commit r11-6269-g9032d2b2414ed22e53a9980a51b835d3caf83c48
Author: Jakub Jelinek 
Date:   Sat Dec 19 12:46:40 2020 +0100

bswap: Fix up a thinko with empty CONSTRUCTORs [PR98378]

The code I've added recently in find_bswap_or_nop for VECTOR CONSTRUCTORs
is missing punt on an important case - namely empty CONSTRUCTORs, because
in that
case the loop will not initialize *n and the code after the loop will then
use the uninitialized structure.

2020-12-19  Jakub Jelinek  

PR tree-optimization/98378
* gimple-ssa-store-merging.c (find_bswap_or_nop): Punt if
CONSTRUCTOR
has no elements.

[Bug libgomp/95150] Some offloaded programs crash with openmp

2020-12-19 Thread mehdi.chinoune at hotmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95150

Chinoune  changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|WONTFIX |---

--- Comment #9 from Chinoune  ---
I get it with more examples.

[Bug libgomp/98391] New: Wrong results with small matrix size

2020-12-19 Thread mehdi.chinoune at hotmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98391

Bug ID: 98391
   Summary: Wrong results with small matrix size
   Product: gcc
   Version: 10.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgomp
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mehdi.chinoune at hotmail dot com
CC: jakub at gcc dot gnu.org
  Target Milestone: ---

$ cat matmul.f90
program main
  implicit none
  integer, parameter :: sp = selected_real_kind(6,37)
  integer :: i, j, k
  integer :: n
  character(len=5) :: var
  real(sp), allocatable :: a(:,:), b(:,:), c(:,:), cc(:,:)
  integer :: t1, t2, t3
  real(sp) :: tic
  !
  call get_command_argument( 1, var )
  read( var, '(i5.3)') n
  print*, n
  !
  allocate( a(n,n), b(n,n), c(n,n), cc(n,n) )
  call random_number(a)
  call random_number(b)
  c = 0._sp
  !
  call system_clock(t1, tic)
  cc = 0._sp
  do j = 1, n
do k = 1, n
  do i = 1, n
cc(i,j) = a(i,k)*b(k,j) + cc(i,j)
  end do
end do
  end do
  call system_clock( t2 )
  print*, "T1 = ", (t2-t1)/tic
  !$acc parallel loop collapse(3) copyin(a,b) copy(c)
  !$omp target teams distribute parallel do collapse(3) map( to:a,b) map(
tofrom:c )
  do j = 1, n
do k = 1, n
  do i = 1, n
c(i,j) = a(i,k)*b(k,j) + c(i,j)
  end do
end do
  end do
  call system_clock(t3)
  print*, "T2 = ", (t3-t2)/tic
  !
  print*, "Max(|C2-C1|) = ", maxval( abs(cc-c) )
  print '(8(f8.6,x))', abs(cc-c)
  !
end program main

$ gfortran-10 -fopenmp -foffload=nvptx-none matmul.f90 -o matmul.x
$ ./matmul.x 16
  16
 T1 =0.
 T2 =   0.12995
 Max(|C2-C1|) =1.94201875
1.431175 1.329625 0.592309 1.422428 0.535594 0.723758 0.365623 0.492199
0.108950 0.489844 1.100990 0.736585 1.182946 0.372061 0.185741 1.237249
0.629846 0.706569 0.913222 1.189827 0.617232 0.973922 0.290312 0.755902
0.886491 0.874653 1.642155 1.499317 1.506070 1.541327 1.228426 1.011003
0.967729 0.587790 0.353565 0.241555 0.283207 0.498868 0.628635 0.259884
0.469164 0.637377 0.428355 0.807801 0.409959 0.630940 0.384264 0.590675
0.805984 1.565366 0.850695 1.189638 1.602054 0.152907 0.648516 0.345356
0.261692 0.754292 0.995521 1.108027 0.837113 0.498883 1.011412 0.765647
0.741106 0.335977 0.721143 0.176006 0.169367 0.256758 0.311771 0.158323
0.401097 0.566629 0.787195 0.316571 0.179871 0.129046 0.326540 0.400939
1.898347 0.547532 1.015191 0.659491 0.223342 1.052599 1.158586 0.745466
0.491430 0.677603 0.854077 0.635704 0.475488 0.692096 0.749846 1.144690
0.712732 0.894958 0.874708 0.775818 0.674985 1.034302 1.350598 0.503635
0.082981 0.620052 0.888901 1.243073 1.147498 0.785260 0.260857 0.790078
0.571918 0.326864 0.090428 0.353512 0.167201 0.553904 0.378190 0.368513
0.238174 0.247996 0.038351 0.118958 0.041398 0.009377 0.049255 0.042368
1.942019 0.577147 1.252101 1.314539 0.845633 0.898366 1.743726 0.886740
0.674877 0.428364 0.431692 0.143040 0.551206 0.222548 0.058435 0.401517
0.172672 0.128829 0.063327 0.320080 0.120494 0.111500 0.341694 0.348082
0.408216 0.414768 0.706280 0.923327 0.265845 0.318310 0.082875 0.091210
1.165700 1.020596 0.282284 0.086616 0.350870 0.860692 0.299911 0.278247
0.756335 0.357223 0.633629 1.136913 0.815934 0.602087 0.790322 0.821650
1.006154 1.494015 0.950610 1.597616 0.962432 0.411526 1.268245 1.035166
0.755580 0.614513 1.165176 0.863545 0.478808 1.186599 1.245776 1.010780
1.108782 0.462348 0.980049 0.717201 1.594621 1.345250 1.080317 1.295755
0.406487 0.916595 1.325978 1.354560 1.209628 0.775334 1.611006 0.734939
0.604795 0.831590 0.316839 0.720204 0.739102 0.406983 0.807365 0.439079
0.654506 0.749812 1.219932 1.221502 0.534549 0.366653 0.989139 1.047143
0.643886 0.319602 0.621458 0.171583 0.052870 0.410973 0.266432 0.346806
0.124081 0.744631 0.876374 0.983852 1.121478 0.226588 0.390455 0.458977
0.646022 0.169284 0.593737 0.848242 1.612478 1.024757 1.028395 1.715509
1.202510 1.336850 1.219257 0.633523 0.988450 1.170813 0.852149 0.870198

It happens with both OpenACC and OpenMP.

[Bug tree-optimization/98378] new valgrind error for ./gcc.c-torture/execute/pr60960.c

2020-12-19 Thread dcb314 at hotmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98378

--- Comment #8 from David Binderman  ---
I can provide, if requested, a list of other testsuite files
that fail in the same way.

This might be a good sanity check for Jakub's fix.

Otherwise, I suggest that this bug could be marked as fixed.

[Bug tree-optimization/98378] new valgrind error for ./gcc.c-torture/execute/pr60960.c

2020-12-19 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98378

Jakub Jelinek  changed:

   What|Removed |Added

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

--- Comment #9 from Jakub Jelinek  ---
.

[Bug libstdc++/98392] New: Parallel algorithms fail to enforce Mandates: requirements

2020-12-19 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98392

Bug ID: 98392
   Summary: Parallel algorithms fail to enforce Mandates:
requirements
   Product: gcc
   Version: 10.2.1
Status: UNCONFIRMED
  Keywords: accepts-invalid
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: redi at gcc dot gnu.org
  Target Milestone: ---

For example:

Mandates: All of
 — binary_op(init, init),
 — binary_op(init, unary_op(*first)),
 — binary_op(unary_op(*first), init), and
 — binary_op(unary_op(*first), unary_op(*first))
are convertible to T.

This was stated with "Requires:" in C++17, but in C++20 violating the
requirement must be diagnosed.

Example:

#include 
#include 

int main() {
  int a[]{ 1 };

  auto r = std::transform_reduce(
  std::execution::seq, a, a+1, 0,
  [](int& a, int b) {
return a + b;
  },
  [](int i) { return i; });
}

This compiles without error.

[Bug libstdc++/98389] [11 regression] libstdc++-abi/abi_check fails after r11-6249 on powerpc64 big endian

2020-12-19 Thread redi at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98389

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1
   Last reconfirmed||2020-12-19

--- Comment #2 from Jonathan Wakely  ---
(In reply to Andreas Schwab from comment #1)
> The list just needs to be updated.

No, those have version GLIBCXX_3.4.29 which is the current version, so new
symbols are allowed there.

The problem is this check in testsuite/util/testsuite_abi.cc:

  // Check that long double compatibility symbols demangled as
  // __float128 and regular __float128 symbols are put into some _LDBL_
  // or _FLOAT128 version name.
  if (added && test.demangled_name.find("__float128") != std::string::npos
  && test.demangled_name.find("std::__cxx11::") != 0)

I need to think about what the right fix is here (to change the test, or the
symbol versions of those symbols). That's unlikely to happen until January.

[Bug tree-optimization/98381] [11 Regression] Wrong code with -O3 -march=skylake-avx512 by r11-3072

2020-12-19 Thread hjl.tools at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98381

H.J. Lu  changed:

   What|Removed |Added

 CC||rguenther at suse dot de
   Last reconfirmed||2020-12-19
Summary|Wrong code with -O3 |[11 Regression] Wrong code
   |-march=skylake-avx512   |with -O3
   ||-march=skylake-avx512 by
   ||r11-3072
 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1
   Target Milestone|--- |11.0

--- Comment #1 from H.J. Lu  ---
It is caused by r11-3072.

[Bug target/98387] GCC >= 6 cannot inline _mm_cmp_ps on SSE targets

2020-12-19 Thread hjl.tools at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98387

H.J. Lu  changed:

   What|Removed |Added

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

--- Comment #2 from H.J. Lu  ---
_mm_cmp_ps is an AVX intrinsic.

[Bug target/98387] GCC >= 6 cannot inline _mm_cmp_ps on SSE targets

2020-12-19 Thread danielhanchen at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98387

--- Comment #3 from Daniel Han-Chen  ---
(In reply to H.J. Lu from comment #2)
> _mm_cmp_ps is an AVX intrinsic.

Yep noticed _mm_cmp_ps is only in AVX. The weird part is it actually causes no
errors when used on SSE only targets [ie Nehalem], and GCC continues compiling.

Is this supposed to be normal behaivor?

[Bug c++/88413] g++ mangles names involving unresolved names in function argument template parameters differently from the ABI standard.

2020-12-19 Thread jason at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88413

Jason Merrill  changed:

   What|Removed |Added

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

--- Comment #11 from Jason Merrill  ---
Same issue.

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

[Bug c++/67343] C++ mangler does not follow ABI for local names in expressions

2020-12-19 Thread jason at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67343

Jason Merrill  changed:

   What|Removed |Added

 CC||brennan at umanwizard dot com

--- Comment #4 from Jason Merrill  ---
*** Bug 88413 has been marked as a duplicate of this bug. ***

[Bug c++/89818] possibly invalid name mangling

2020-12-19 Thread jason at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89818

Jason Merrill  changed:

   What|Removed |Added

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

--- Comment #3 from Jason Merrill  ---
Same issue.

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

[Bug c++/67343] C++ mangler does not follow ABI for local names in expressions

2020-12-19 Thread jason at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67343

Jason Merrill  changed:

   What|Removed |Added

 CC||tromey at gcc dot gnu.org

--- Comment #5 from Jason Merrill  ---
*** Bug 89818 has been marked as a duplicate of this bug. ***

[Bug c++/85648] Name mangling using decltype omits namespace

2020-12-19 Thread jason at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85648

Jason Merrill  changed:

   What|Removed |Added

   Last reconfirmed||2020-12-19
 Resolution|DUPLICATE   |---
 Ever confirmed|0   |1
 Status|RESOLVED|ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jason at gcc dot gnu.org

--- Comment #2 from Jason Merrill  ---
Actually a related issue, but not the same.

[Bug c/98393] New: new valgrind error for ./gcc.target/m68k/pr52573.c

2020-12-19 Thread dcb314 at hotmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98393

Bug ID: 98393
   Summary: new valgrind error for ./gcc.target/m68k/pr52573.c
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dcb314 at hotmail dot com
  Target Milestone: ---

A valgrind version of gcc trunk dated 20201206, with hash 8c23434fdadcf4ca,
compiles testsuite file ./gcc.target/m68k/pr52573.c fine with compiler flag -O3
on x86_64.

A week later, gcc trunk dated 20201211, with hash 97b56dece7413839, does this:

==11710== Conditional jump or move depends on uninitialised value(s)
==11710==at 0xE9DC54: vect_build_slp_instance(vec_info*, slp_instance_kind,
vec<_stmt_vec_info*, va_heap, vl_p
tr>&, _stmt_vec_info*, unsigned int, unsigned int*, hash_map, _slp_tree*, simple_has
hmap_traits >*, _stmt_vec_info*) (tree-vect-slp.c:2396)

The problem remains a week later in gcc trunk dated 20201218.

I will have a look with git bisect.

[Bug target/98382] [m68k] ICE: in output_move_qimode, at config/m68k/m68k.c:3284 when building webkit2gtk

2020-12-19 Thread mikpelinux at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98382

Mikael Pettersson  changed:

   What|Removed |Added

 CC||mikpelinux at gmail dot com

--- Comment #2 from Mikael Pettersson  ---
Are you sure about the "recently"? I get ICEs with crosses based on
gcc-11-20201213, gcc-10.2.0, gcc-10.1.0, and gcc-9-20201218 (so pre-CC0
conversion).

A reduced test case would help.

[Bug c/98393] new valgrind error for ./gcc.target/m68k/pr52573.c

2020-12-19 Thread dcb314 at hotmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98393

--- Comment #1 from David Binderman  ---
Trying hash f6e8e2797ebae21e.

[Bug target/98387] GCC >= 6 cannot inline _mm_cmp_ps on SSE targets

2020-12-19 Thread hjl.tools at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98387

--- Comment #4 from H.J. Lu  ---
(In reply to Daniel Han-Chen from comment #3)
> (In reply to H.J. Lu from comment #2)
> > _mm_cmp_ps is an AVX intrinsic.
> 
> Yep noticed _mm_cmp_ps is only in AVX. The weird part is it actually causes
> no errors when used on SSE only targets [ie Nehalem], and GCC continues
> compiling.
> 
> Is this supposed to be normal behaivor?

GCC treats it like an undefined function.

[Bug c++/98394] New: Concept with auto... template parameter pack in if-statement causes compilation error

2020-12-19 Thread ngmr80 at web dot de via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98394

Bug ID: 98394
   Summary: Concept with auto... template parameter pack in
if-statement causes compilation error
   Product: gcc
   Version: 10.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ngmr80 at web dot de
  Target Milestone: ---

Created attachment 49807
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49807&action=edit
Preprocessed source

In C++20, when using a concept 'C' with an auto... template parameter pack in
an if-statement, the compiler reports the error "'C' does not constrain a
type.".  The same concept, however, _is_ usable in other contexts.

Example:

template
concept C = true;

int main()
{
auto b = C<1, 2>;  // ok
if (C<1, 2>);  // error
}

--
Output of g++-10 -v -save-temps -std=c++20 main.cpp

Using built-in specs.
COLLECT_GCC=g++-10
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/10/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
10.1.0-2ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-10/README.Bugs
--enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr
--with-gcc-major-version-only --program-suffix=-10
--program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new
--enable-gnu-unique-object --disable-vtable-verify --enable-plugin
--enable-default-pie --with-system-zlib --enable-libphobos-checking=release
--with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch
--disable-werror --with-arch-32=i686 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic
--enable-offload-targets=nvptx-none=/build/gcc-10-eDoCEC/gcc-10-10.1.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-10-eDoCEC/gcc-10-10.1.0/debian/tmp-gcn/usr,hsa
--without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.1.0 (Ubuntu 10.1.0-2ubuntu1~18.04) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-std=c++2a' '-shared-libgcc'
'-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/10/cc1plus -E -quiet -v -imultiarch
x86_64-linux-gnu -D_GNU_SOURCE main.cpp -mtune=generic -march=x86-64 -std=c++2a
-fpch-preprocess -fasynchronous-unwind-tables -fstack-protector-strong -Wformat
-Wformat-security -o main.ii
ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/10"
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/10/include-fixed"
ignoring nonexistent directory
"/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/10
 /usr/include/x86_64-linux-gnu/c++/10
 /usr/include/c++/10/backward
 /usr/lib/gcc/x86_64-linux-gnu/10/include
 /usr/local/include
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-std=c++2a' '-shared-libgcc'
'-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/10/cc1plus -fpreprocessed main.ii -quiet
-dumpbase main.cpp -mtune=generic -march=x86-64 -auxbase main -std=c++2a
-version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat
-Wformat-security -o main.s
GNU C++17 (Ubuntu 10.1.0-2ubuntu1~18.04) version 10.1.0 (x86_64-linux-gnu)
compiled by GNU C version 10.1.0, GMP version 6.1.2, MPFR version
4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU C++17 (Ubuntu 10.1.0-2ubuntu1~18.04) version 10.1.0 (x86_64-linux-gnu)
compiled by GNU C version 10.1.0, GMP version 6.1.2, MPFR version
4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 435c9a72f92ce04eba08a47828fa63c4
main.cpp: In function ‘int main()’:
main.cpp:7:9: error: ‘C’ does not constrain a type
7 | if (C<1, 2>);  // error
  | ^~~
main.cpp:2:9: note: concept defined here
2 | concept C = true;
  | ^

[Bug target/98382] [m68k] ICE: in output_move_qimode, at config/m68k/m68k.c:3284 when building webkit2gtk

2020-12-19 Thread glaubitz at physik dot fu-berlin.de via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98382

--- Comment #3 from John Paul Adrian Glaubitz  ---
(In reply to Mikael Pettersson from comment #2)
> Are you sure about the "recently"? I get ICEs with crosses based on
> gcc-11-20201213, gcc-10.2.0, gcc-10.1.0, and gcc-9-20201218 (so pre-CC0
> conversion).

webkit2gtk buildt fine with gcc-10_10.2.0 on Debian:

> https://buildd.debian.org/status/fetch.php?pkg=webkit2gtk&arch=m68k&ver=2.28.4-1&stamp=1597349482&raw=0

> A reduced test case would help.

I have been asked to do that for another PR as well but I haven't done this
before so it'll take some time until I will be able to provide reduced
testcases.

[Bug libgcc/98395] New: libgcc_s.so.1 almost 10x bigger in gcc-10.2 than gcc-9.2

2020-12-19 Thread john.frankish at outlook dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98395

Bug ID: 98395
   Summary: libgcc_s.so.1 almost 10x bigger in gcc-10.2 than
gcc-9.2
   Product: gcc
   Version: 10.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgcc
  Assignee: unassigned at gcc dot gnu.org
  Reporter: john.frankish at outlook dot com
  Target Milestone: ---

The libgcc_s.so.1 library built with gcc-10.2 is 580kb, whereas the same
library built with gcc-9.2 is 75kb.

Both were built on an x86_64 system with:

CC="gcc -mtune=generic -Os -pipe" CXX="g++ -mtune=generic -Os -pipe"
../configure --prefix=/usr/local --enable-languages=c,c++ --disable-multilib
--disable-bootstrap --with-system-zlib --libexecdir=/usr/local/lib

The almost ten-fold increase in size would seem to indicate something is wrong,
but what?

[Bug fortran/98307] Dependency check fails when using "allocatable" instead of "pointer" (forall_3.f90)

2020-12-19 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98307

--- Comment #5 from CVS Commits  ---
The releases/gcc-10 branch has been updated by Harald Anlauf
:

https://gcc.gnu.org/g:4e9563cda3f841f26f2ad1d9961dd6ffc9f39146

commit r10-9160-g4e9563cda3f841f26f2ad1d9961dd6ffc9f39146
Author: Harald Anlauf 
Date:   Thu Dec 17 10:31:55 2020 +0100

PR fortran/98307 - Dependency check fails when using "allocatable"

The dependency check for FORALL constructs already handled pointer
components to derived types, but missed allocatables.  Fix that.

gcc/fortran/ChangeLog:

PR fortran/98307
* trans-stmt.c (check_forall_dependencies): Extend dependency
check to allocatable components of derived types.

gcc/testsuite/ChangeLog:

PR fortran/98307
* gfortran.dg/forall_19.f90: New test.

(cherry picked from commit c09deceb534b82ce144af3a345dcb06ab5e49ba4)

[Bug libgcc/98395] libgcc_s.so.1 almost 10x bigger in gcc-10.2 than gcc-9.2

2020-12-19 Thread schwab--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98395

--- Comment #1 from Andreas Schwab  ---
What does size tell?

[Bug libgcc/98395] libgcc_s.so.1 almost 10x bigger in gcc-10.2 than gcc-9.2

2020-12-19 Thread john.frankish at outlook dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98395

--- Comment #2 from john.frankish at outlook dot com ---
Something significant must have changed, or be wrong, for such a big increase
in size

[Bug d/98067] [11 Regression] d: ICE in in force_decl_die, at dwarf2out.c:26197 with -gdwarf-2 -gstrict-dwarf

2020-12-19 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98067

--- Comment #10 from CVS Commits  ---
The master branch has been updated by Iain Buclaw :

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

commit r11-6270-ge9e4ddfc5abbf9ee5e657d626264cef89f10b4c3
Author: Iain Buclaw 
Date:   Wed Dec 16 00:17:40 2020 +0100

d: Fix ICE in in force_decl_die, at dwarf2out.c with -gdwarf-2
-gstrict-dwarf [PR98067]

Manifest constants in D are represented as CONST_DECLs, which can be
imported from one module to another.  However, when compiling on strict
dwarf2 targets such as *-*-darwin10, importing CONST_DECLs cannot be
represented in debug as D did not exist as an AT_language until dwarf3,
and the only available fallback being DW_LANG_C.  As CONST_DECLs are
treated as enumerators in C, and not outputted individually in
gen_decl_die, this causes an internal error in force_decl_die to occur.

To handle this, similar to other places in dwarf2out, if a CONST_DECL is
seen in dwarf2out_imported_module_or_decl_1, then we simply return early
if the language is not one of Ada, D, or Fortran.

gcc/ChangeLog:

PR d/98067
* dwarf2out.c (dwarf2out_imported_module_or_decl_1): Handle
  CONST_DECL only if is_fortran, is_ada, or is_dlang.

gcc/testsuite/ChangeLog:

PR d/98067
* gdc.dg/debug/debug.exp: New test.
* gdc.dg/debug/dwarf2/dwarf2.exp: New test.
* gdc.dg/debug/dwarf2/imports/pr98067.d: New test.
* gdc.dg/debug/dwarf2/langdw2.d: New test.
* gdc.dg/debug/dwarf2/langdw3.d: New test.
* gdc.dg/debug/dwarf2/pr98067.d: New test.
* gdc.dg/debug/trivial.d: New test.

[Bug libgcc/98395] libgcc_s.so.1 almost 10x bigger in gcc-10.2 than gcc-9.2

2020-12-19 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98395

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek  ---
Most likely one is stripped and the other is not.
I didn't build with -Os, but the 9.x to 10.x difference is fairly small:
gcc 9 libgcc]$ size libgcc_s.so.1 
   textdata bss dec hex filename
  90562 992 688   92242   16852 libgcc_s.so.1
gcc 10 libgcc]$ size libgcc_s.so.1 
   textdata bss dec hex filename
  92530 992 680   94202   16ffa libgcc_s.so.1

[Bug d/98058] libphobos: Support building on *-*-darwin*

2020-12-19 Thread ibuclaw at gdcproject dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98058
Bug 98058 depends on bug 98067, which changed state.

Bug 98067 Summary: [11 Regression] d: ICE in in force_decl_die, at 
dwarf2out.c:26197 with -gdwarf-2 -gstrict-dwarf
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98067

   What|Removed |Added

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

[Bug d/98067] [11 Regression] d: ICE in in force_decl_die, at dwarf2out.c:26197 with -gdwarf-2 -gstrict-dwarf

2020-12-19 Thread ibuclaw at gdcproject dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98067

Iain Buclaw  changed:

   What|Removed |Added

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

--- Comment #11 from Iain Buclaw  ---
Fix committed.

[Bug c/98396] New: gcc wrongly assumes that free preserves errno

2020-12-19 Thread bruno at clisp dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98396

Bug ID: 98396
   Summary: gcc wrongly assumes that free preserves errno
   Product: gcc
   Version: 10.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: bruno at clisp dot org
  Target Milestone: ---

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

On POSIX systems, free() can clobber the value of errno. This is implied by
1) https://pubs.opengroup.org/onlinepubs/9699919799/functions/errno.html
which says: "The setting of errno after a successful call to a function is
unspecified unless the description of that function specifies that errno shall
not be modified."
and 2) https://pubs.opengroup.org/onlinepubs/9699919799/functions/free.html
which does not mention errno.

A future version of POSIX will specify that a valid call to free() preserves
errno: https://www.austingroupbugs.net/view.php?id=385 . But this is not yet
standard.

In particular, on Linux/glibc systems, the glibc bug
https://sourceware.org/bugzilla/show_bug.cgi?id=17924 is still open, because
glibc does not guarantee that free() preserves errno — neither through the code
nor through the documentation. This glibc bug even has a test case of a
successful free() that sets errno to ENOMEM (via a call to munmap).

But GCC, when optimizing, eliminates tests of errno or assignments to errno
after 'free (ptr);' where ptr was the result of a malloc(...) call in the same
function.

How to reproduce:
$ gcc -O2 -S foo.c
Inspect the resulting foo.s. You see that
- In function 'check_errno_unmodified', GCC has eliminated the lines
  if (errno != 1789)
abort ();
- In function 'ensure_errno_unmodified', GCC has eliminated the lines
  int saved_errno = errno;
  and
  errno = saved_errno;
  So, while the programmer knew that free() can clobber errno and added
statements to ensure that errno gets preserved, GCC optimized these statements
away!

[Bug c/98396] gcc wrongly assumes that free preserves errno

2020-12-19 Thread bruno at clisp dot org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98396

Bruno Haible  changed:

   What|Removed |Added

  Known to work||4.0.4, 4.1.2, 4.2.4, 4.3.6,
   ||4.4.7, 4.5.4, 4.6.4, 4.7.3,
   ||4.8.5
  Known to fail||10.2.0, 4.9.4, 5.5.0,
   ||6.5.0, 7.5.0, 8.4.0, 9.3.0
 Target||x86_64-pc-linux-gnu
  Build||x86_64-pc-linux-gnu
   Host||x86_64-pc-linux-gnu

--- Comment #1 from Bruno Haible  ---
Related: bug 88576, bug 98070.

[Bug middle-end/98366] [11 Regression] wrong-code with memcmp and -m32

2020-12-19 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98366

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

https://gcc.gnu.org/g:69165332a914f1167c3077fa1f57afc64fd8a667

commit r11-6271-g69165332a914f1167c3077fa1f57afc64fd8a667
Author: Jakub Jelinek 
Date:   Sat Dec 19 22:24:10 2020 +0100

expr: Fix up constant_byte_string bitfield handling [PR98366]

constant_byte_string now uses a convert_to_bytes function, which doesn't
handle bitfields at all (don't punt on them, just puts them into wrong bits
or bytes).  Furthermore, I don't see a reason why that function should
exist
at all, it duplicates native_encode_initializer functionality.
Except that native_encode_initializer punted on flexible array members and
2
tests in the testsuite relied on constant_byte_string handling those.
So, this patch throws away convert_to_bytes, uses native_encode_initializer
instead, but teaches it to handle flexible array members (only in the
non-mask mode with off == -1 for now), furthermore, it adds various corner
case checks that the old implementation was missing (like that STRING_CSTs
use int as length and therefore we shouldn't try to build larger than that
strings, or that native_encode*/native_interpret* APIs require sane
host and target bytes (8-bit on both).

2020-12-19  Jakub Jelinek  

PR middle-end/98366
* fold-const.c (native_encode_initializer): Don't try to
memset more than total_bytes with off == -1 even if len is large.
Handle flexible array member initializers if off == -1 and mask is
NULL.
* expr.c (convert_to_bytes): Remove.
(constant_byte_string): Use native_encode_initializer instead of
convert_to_bytes.  Remove extraneous semicolon.  Punt on various
corner-cases the APIs don't handle, like sizes > INT_MAX,
BITS_PER_UNIT != 8, CHAR_BIT != 8.

* gcc.c-torture/execute/pr98366.c: New test.

[Bug middle-end/98366] [11 Regression] wrong-code with memcmp and -m32

2020-12-19 Thread jakub at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98366

Jakub Jelinek  changed:

   What|Removed |Added

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

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

[Bug libgcc/98395] libgcc_s.so.1 almost 10x bigger in gcc-10.2 than gcc-9.2

2020-12-19 Thread john.frankish at outlook dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98395

--- Comment #4 from john.frankish at outlook dot com ---
Both are stripped and all the other gcc libs are of comparable size between
gcc-9.2 and gcc-10.2.

I'll compile with -O2 instead of -Os in the next couple of days to see if that
makes a difference.

[Bug c/98393] new valgrind error for ./gcc.target/m68k/pr52573.c

2020-12-19 Thread dcb314 at hotmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98393

--- Comment #2 from David Binderman  ---
Seems good, so range reduces to f6e8e2797ebae21e..97b56dece7413839

Trying 4cf70c20cb10acd6

[Bug fortran/93685] [9/10/11 Regression] ICE in gfc_constructor_append_expr, at fortran/constructor.c:135

2020-12-19 Thread anlauf at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93685

anlauf at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
 CC||anlauf at gcc dot gnu.org

--- Comment #3 from anlauf at gcc dot gnu.org ---
(In reply to markeggleston from comment #1)
> I think the issues of error messages and -std can be postponed until the
> next release.

The current status is that

program p
  type u
 integer,   pointer :: i
  end type u
  type(u) :: y
  integer  , target :: i = 10
  data y%i /i/
  print *, y%i
end

works with current master, while the (valid) code

program p
  type t
 character, pointer :: a
  end type t
  type(t) :: x
  character, target :: c = 'c'
  data x%a /c/
  print *, x%a
end

still ICEs the same as the (invalid) testcase in comment#0.

[Bug c++/93480] Defaulted <=> doesn't expand array elements

2020-12-19 Thread wjwray at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93480

--- Comment #2 from Will Wray  ---
For reference, here's a macro-free workaround to provide portable
operator<=> for templated classes with array members, defaulting
where possible (current Clang and MSVC) otherwise dispatching to
a user-defined implementation (current gcc)
https://godbolt.org/z/qbEfh7

First, a trait to check default 3-way array compare:

inline constexpr bool has_default_array_compare = [] {
struct C {
char c[1];
auto operator<=>(C const&) const = default;
};
return std::three_way_comparable;
}();

Then constrain the operator<=> definitions

template  struct array
{
T data[N];

friend auto operator<=>(array const&, array const&)
requires has_default_array_compare = default;

friend constexpr auto operator<=>(array const& l,
  array const& r)
requires (!has_default_array_compare)
{
return compare_three_way{}(l.data,r.data);
}
};

However, this only works for templated classes
as it is not (yet) allowed to constrain non-template functions.

[Bug fortran/92065] [8/9/10/11 Regression] internal compiler error: in expand_expr_real_1

2020-12-19 Thread gtoth at umich dot edu via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92065

Gabor  changed:

   What|Removed |Added

 CC||gtoth at umich dot edu

--- Comment #6 from Gabor  ---
I have the same problem with gfortran 9 and gfortran 10. After 17 years of
Fortran 2003, one would hope to be able to use it.

[Bug c/98393] new valgrind error for ./gcc.target/m68k/pr52573.c

2020-12-19 Thread dcb314 at hotmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98393

--- Comment #3 from David Binderman  ---
Seems ok, so range reduces to 4cf70c20cb10acd6..97b56dece7413839

Trying 7f359556a772e26e

[Bug c/98393] new valgrind error for ./gcc.target/m68k/pr52573.c

2020-12-19 Thread dcb314 at hotmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98393

--- Comment #4 from David Binderman  ---
Seems good, so range reduces to 7f359556a772e26e..97b56dece7413839

Trying 1423318fa7786493

[Bug c/98393] new valgrind error for ./gcc.target/m68k/pr52573.c

2020-12-19 Thread dcb314 at hotmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98393

--- Comment #5 from David Binderman  ---
Range so far seems to be 7f359556a772e26e..1423318fa7786493

Trying fa4a8b6463e0dbc2

[Bug c/98393] new valgrind error for ./gcc.target/m68k/pr52573.c

2020-12-19 Thread dcb314 at hotmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98393

David Binderman  changed:

   What|Removed |Added

 CC||rguenther at suse dot de

--- Comment #6 from David Binderman  ---
So commit fc7b4248172561a9ee310e2d43d8a485a5c9e108 
appears to be the culprit.

May I ask Richard to confirm my git bisect analysis ?

[Bug c/98397] New: C2X: pointers to arrays with qualifiers are now pointers to qualified types

2020-12-19 Thread muecker at gwdg dot de via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98397

Bug ID: 98397
   Summary: C2X: pointers to arrays with qualifiers are now
pointers to qualified types
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: muecker at gwdg dot de
  Target Milestone: ---

C2X mostly adopted the rules already implemented in GCC as an extension.

Still, there are two issues:

1. Some pedantic warning should not appear anymore in C2X.

2. The qualifier of a void pointer returned by the tertiary
operator changes in C2X when the one of the pointers points
to an array with qualified type. (This is then also consistent
with C++ and clang)


The following code should compile:


void foo(void)
{
const int (*u)[1];
void *v;
extern const void *vc;
extern typeof(1 ? u : v) vc;
extern typeof(1 ? v : u) vc;
}


I have a patch for this in preparation.

[Bug fortran/92065] [8/9/10/11 Regression] internal compiler error: in expand_expr_real_1

2020-12-19 Thread kargl at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92065

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 CC||kargl at gcc dot gnu.org

--- Comment #7 from kargl at gcc dot gnu.org ---
(In reply to Gabor from comment #6)
> I have the same problem with gfortran 9 and gfortran 10. After 17 years of
> Fortran 2003, one would hope to be able to use it.

You forgot to attach your patch that fixes this issue.

gfortran is mostly maintained and written by a dwindling number
of volunteers.  Comments like your second sentence above is not
exactly motivating.

HTH

[Bug fortran/92065] [8/9/10/11 Regression] internal compiler error: in expand_expr_real_1

2020-12-19 Thread gtoth at umich dot edu via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92065

--- Comment #8 from Gabor  ---
Dear HTH,

Apparently this bug was reported years ago, and it was not fixed. There was no
suggestion on how to avoid it either. 

I am not sure why gfortran is not supported by GNU, as it is used heavily in
the computational physics community and gfortran is one of the compilers (the
other is ifort) installed on supercomputers around the world. There are
millions and millions of lines of code depending on Fortran and there are 10s
of thousands of scientists and students using these codes. The only hope to
adopt new (meaning beyond F77 and F90) features of Fortran by the community is
to have compilers that can handle these new features. Why am I wasting time to
write a nice piece of code (in this case a general interpolation routine that
can handle any type of numbers) if in the end I get a compiler internal error.
nagfor can handle it, ifort can handle it, gfortran cannot. And gfortran is one
of the MAIN fortran compilers. So now I have to dumb down my code to the usual
cut-and-paste style, repetition and so on, because I cannot use class(*). 

So I am frustrated. And maybe my frustration will motivate you to fix the
problem.

Thank you,

Gabor 




> On Dec 19, 2020, at 6:17 PM, kargl at gcc dot gnu.org 
>  wrote:
> 
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92065
> 
> kargl at gcc dot gnu.org changed:
> 
>   What|Removed |Added
> 
> CC||kargl at gcc dot gnu.org
> 
> --- Comment #7 from kargl at gcc dot gnu.org ---
> (In reply to Gabor from comment #6)
>> I have the same problem with gfortran 9 and gfortran 10. After 17 years of
>> Fortran 2003, one would hope to be able to use it.
> 
> You forgot to attach your patch that fixes this issue.
> 
> gfortran is mostly maintained and written by a dwindling number
> of volunteers.  Comments like your second sentence above is not
> exactly motivating.
> 
> HTH
> 
> -- 
> You are receiving this mail because:
> You are on the CC list for the bug.

[Bug fortran/92065] [8/9/10/11 Regression] internal compiler error: in expand_expr_real_1

2020-12-19 Thread sgk at troutmask dot apl.washington.edu via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92065

--- Comment #9 from Steve Kargl  ---
On Sat, Dec 19, 2020 at 11:35:24PM +, gtoth at umich dot edu wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92065
> 
> 
> Apparently this bug was reported years ago, and it was not fixed. There was no
> suggestion on how to avoid it either. 
> 
> I am not sure why gfortran is not supported by GNU, as it is used heavily in
> the computational physics community and gfortran is one of the compilers (the
> other is ifort) installed on supercomputers around the world. There are
> millions and millions of lines of code depending on Fortran and there are 10s
> of thousands of scientists and students using these codes. The only hope to
> adopt new (meaning beyond F77 and F90) features of Fortran by the community is
> to have compilers that can handle these new features. Why am I wasting time to
> write a nice piece of code (in this case a general interpolation routine that
> can handle any type of numbers) if in the end I get a compiler internal error.
> nagfor can handle it, ifort can handle it, gfortran cannot. And gfortran is 
> one
> of the MAIN fortran compilers. So now I have to dumb down my code to the usual
> cut-and-paste style, repetition and so on, because I cannot use class(*). 
> 
> So I am frustrated. And maybe my frustration will motivate you to fix the
> problem.
> 

Apparently, you missed the word "volunteer".  How much did you
(and others) pay in ifort and nagfor licenses and support 
contracts?  No one is willing to pay for general maintianence
of gfortran.  At best, you may find someone willing to pay for
a specific feature (e.g., ORNL's support for work on openacc).
I've fixed 100s of bugs and implemented some new features for
gfortran.  Many of my fixes are for bugs that affected my own
Fortran code.  Some are for bugs in areas of the compiler I
know well.  I've also reviewed 100s of patches by others.
I do not use the OOP features of Fortran, so I have very little
knowledge about its implementation details.  So, your SOL 
if you're waiting for me to fix this bug.

Rants, like yours here, are one of two reasons why I've
stopped contributing to gfortran.  I will no longer review
patches, and if I submit a patch, it will be to fix a bug
affecting my code.

[Bug demangler/98398] New: demangler fails on function parameter from enclosing parameter-type-list

2020-12-19 Thread jason at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98398

Bug ID: 98398
   Summary: demangler fails on function parameter from enclosing
parameter-type-list
   Product: gcc
   Version: 11.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: demangler
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jason at gcc dot gnu.org
  Target Milestone: ---

A subset of g++.dg/abi/mangle45.C:

template void f(T p, decltype(p)) { }
int main()
{
  f (1,0);
}

This produces the symbol

_Z1fIiEvT_DtfL0p_E

wher fL0p_ means the first function parameter from the first enclosing
parameter-type-list.  The demangler doesn't currently handle the fLp form at
all; it tries to demangle it as a binary left fold expression, which also uses
fL, but not followed by a digit.

[Bug target/98387] GCC >= 6 cannot inline _mm_cmp_ps on SSE targets

2020-12-19 Thread danielhanchen at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98387

--- Comment #5 from Daniel Han-Chen  ---
(In reply to H.J. Lu from comment #4)
> (In reply to Daniel Han-Chen from comment #3)
> > (In reply to H.J. Lu from comment #2)
> > > _mm_cmp_ps is an AVX intrinsic.
> > 
> > Yep noticed _mm_cmp_ps is only in AVX. The weird part is it actually causes
> > no errors when used on SSE only targets [ie Nehalem], and GCC continues
> > compiling.
> > 
> > Is this supposed to be normal behaivor?
> 
> GCC treats it like an undefined function.

Thanks! Sorry I probably might have asked some really dumb questions. But also
thanks for taking your time in answering them! :) Appreciate it!

[Bug fortran/92065] [8/9/10/11 Regression] internal compiler error: in expand_expr_real_1

2020-12-19 Thread gtoth at umich dot edu via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92065

--- Comment #10 from Gabor  ---
Good to know that gfortran has come to an end. It means, for example, that
i will not rely on the openacc implementation either. Or openmp5.

I develop software as part of my work, and when someone reports a bug, my
reaction is to try to fix it, not giving a lecture to the user. I am not a
compiler developer. I have interacted with various compiler developer
groups, including Intel, nag and pgi. Not all of them are equally good  or
competent or quick, but at least they don't try to push the blame on the
user. If you haven't fixed a bug for years, why do you respond to a
complaint about it the same day?

Gábor

On Sat, Dec 19, 2020, 7:02 PM sgk at troutmask dot apl.washington.edu <
gcc-bugzi...@gcc.gnu.org> wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92065
>
> --- Comment #9 from Steve Kargl 
> ---
> On Sat, Dec 19, 2020 at 11:35:24PM +, gtoth at umich dot edu wrote:
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92065
> >
> >
> > Apparently this bug was reported years ago, and it was not fixed. There
> was no
> > suggestion on how to avoid it either.
> >
> > I am not sure why gfortran is not supported by GNU, as it is used
> heavily in
> > the computational physics community and gfortran is one of the compilers
> (the
> > other is ifort) installed on supercomputers around the world. There are
> > millions and millions of lines of code depending on Fortran and there
> are 10s
> > of thousands of scientists and students using these codes. The only hope
> to
> > adopt new (meaning beyond F77 and F90) features of Fortran by the
> community is
> > to have compilers that can handle these new features. Why am I wasting
> time to
> > write a nice piece of code (in this case a general interpolation routine
> that
> > can handle any type of numbers) if in the end I get a compiler internal
> error.
> > nagfor can handle it, ifort can handle it, gfortran cannot. And gfortran
> is one
> > of the MAIN fortran compilers. So now I have to dumb down my code to the
> usual
> > cut-and-paste style, repetition and so on, because I cannot use
> class(*).
> >
> > So I am frustrated. And maybe my frustration will motivate you to fix the
> > problem.
> >
>
> Apparently, you missed the word "volunteer".  How much did you
> (and others) pay in ifort and nagfor licenses and support
> contracts?  No one is willing to pay for general maintianence
> of gfortran.  At best, you may find someone willing to pay for
> a specific feature (e.g., ORNL's support for work on openacc).
> I've fixed 100s of bugs and implemented some new features for
> gfortran.  Many of my fixes are for bugs that affected my own
> Fortran code.  Some are for bugs in areas of the compiler I
> know well.  I've also reviewed 100s of patches by others.
> I do not use the OOP features of Fortran, so I have very little
> knowledge about its implementation details.  So, your SOL
> if you're waiting for me to fix this bug.
>
> Rants, like yours here, are one of two reasons why I've
> stopped contributing to gfortran.  I will no longer review
> patches, and if I submit a patch, it will be to fix a bug
> affecting my code.
>
> --
> You are receiving this mail because:
> You are on the CC list for the bug.

[Bug fortran/92065] [8/9/10/11 Regression] internal compiler error: in expand_expr_real_1

2020-12-19 Thread sgk at troutmask dot apl.washington.edu via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92065

--- Comment #11 from Steve Kargl  ---
On Sun, Dec 20, 2020 at 05:24:53AM +, gtoth at umich dot edu wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92065
> 
> --- Comment #10 from Gabor  ---
> Good to know that gfortran has come to an end. It means, for example, that
> i will not rely on the openacc implementation either. Or openmp5.

Seems you have reading comprehension problems.  I never stated that
gfortran is coming to an end.  I stated that I will no longer submit
patches or review patches, because of the abuse spewed by users.
Almost all individuals that maintain gfortran are VOLUNTEERS.  Abuse
from users is causing volunteers to find others things to do with
their FREE TIME.

> I develop software as part of my work, and when someone reports a bug, my
> reaction is to try to fix it, not giving a lecture to the user. I am not a
> compiler developer.

I am not a compiler developer either.  I was a volunteer who gave back 
his patches to the community.  22% of gfortran/libgfortran bugs fixed
in 2019 were by me.  Snide, backhanded, comments such as

   After 17 years of Fortran 2003, one would hope to be able to use it.

simply do not motivate a volunteer to work on a bug that does not
affect him.

> I have interacted with various compiler developer
> groups, including Intel, nag and pgi. Not all of them are equally good  or
> competent or quick, but at least they don't try to push the blame on the
> user.

No one is blaming you for a bug or reporting a bug.  I am
reacting to your passive aggressive comment.  Yeah, we all
would like to "After 17 years of Fortran 2003, ... use it."
Guess what?  Volunteers fix bugs and implement the features
in the Fortran standards in their FREE TIME.  Instead of 
harping on those that give you a gift, get involved and fix
a bug in the compiler or pay someone to do it for you. 

> If you haven't fixed a bug for years, why do you respond to a
> complaint about it the same day?

PR 92065 was reported on 2019-10-11.  That's a little over 
a year ago.  Not sure where you got "years".