[Bug tree-optimization/94163] [8/9 Regression] internal compiler error: in set_ptr_info_alignment, at tree-ssanames.c:671

2020-03-13 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94163

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
   Target Milestone|--- |8.5
Summary|internal compiler error: in |[8/9 Regression] internal
   |set_ptr_info_alignment, at  |compiler error: in
   |tree-ssanames.c:671 |set_ptr_info_alignment, at
   ||tree-ssanames.c:671
  Known to work||10.0, 7.3.0, 7.4.0
  Known to fail||8.3.0, 8.4.0, 9.2.0

--- Comment #1 from Andrew Pinski  ---
I wonder if this is a latent bug in GCC 10.

[Bug tree-optimization/94163] [8/9 Regression] ICE in set_ptr_info_alignment with -O2 and __builtin_assume_aligned

2020-03-13 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94163

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org
   Priority|P3  |P2
 Ever confirmed|0   |1
   Last reconfirmed||2020-03-13

--- Comment #2 from Richard Biener  ---
Likely - mine.

[Bug tree-optimization/94163] [8/9 Regression] ICE in set_ptr_info_alignment with -O2 and __builtin_assume_aligned

2020-03-13 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94163

--- Comment #3 from Richard Biener  ---
From

  /* There's no CCP pass after PRE which would re-compute alignment
 information so make sure we re-materialize this here.  */
  if (gimple_call_builtin_p (call, BUILT_IN_ASSUME_ALIGNED)
  && args.length () - 2 <= 1
  && tree_fits_uhwi_p (args[1])
  && (args.length () != 3 || tree_fits_uhwi_p (args[2])))
{
  unsigned HOST_WIDE_INT halign = tree_to_uhwi (args[1]);
  unsigned HOST_WIDE_INT hmisalign
= args.length () == 3 ? tree_to_uhwi (args[2]) : 0;
  if ((halign & (halign - 1)) == 0
  && (hmisalign & ~(halign - 1)) == 0)
set_ptr_info_alignment (get_ptr_info (forcedname),
halign, hmisalign);
}

where set_ptr_info_alignment ICEs for align == 0.  set_ptr_info_alignment
takes unsigned int args but the above computes HWI quantities that get
truncated here.

[Bug lto/94138] [gcc10] unresolvable R_X86_64_TPOFF32 relocation against symbol when LTO activated

2020-03-13 Thread laurent.stacul at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94138

--- Comment #12 from Laurent Stacul  ---
Ok I think we will not waste time on this one. Actually, the build system
allows to force the standard version to build the libfolly.so (in out case
gnu++20) but somehow the tests are build with -std=gnu++14. (If I twaek the
whole build system to use gnu++20, the tests do no compile because GTest is not
C++20-ready).

So I think this ticket is invalid since we have to ensure some flags
consistency between each compilation units of a project.

For information, tt seems there is no problem in this situation if LTO is
deactivated.

Sorry for inconvenience and thanks for your investigation.
Stac

[Bug middle-end/92071] [10 regression] ICE in gen_movsi, at config/arm/arm.md:5378

2020-03-13 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92071

Eric Botcazou  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
Summary|[10 regression][ARM] ice in |[10 regression] ICE in
   |gen_movsi, at   |gen_movsi, at
   |config/arm/arm.md:5378  |config/arm/arm.md:5378
URL||https://gcc.gnu.org/piperma
   ||il/gcc-cvs/2020-March/27168
   ||1.html
 Resolution|--- |FIXED

--- Comment #15 from Eric Botcazou  ---
Fixed in r10-7151.

[Bug lto/94138] [gcc10] unresolvable R_X86_64_TPOFF32 relocation against symbol when LTO activated

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94138

Martin Liška  changed:

   What|Removed |Added

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

--- Comment #13 from Martin Liška  ---
Thank you, let's close it then.

[Bug libstdc++/94164] New: [Regression 10] std::unintialized_fill_n fails to compile

2020-03-13 Thread laurent.stacul at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94164

Bug ID: 94164
   Summary: [Regression 10] std::unintialized_fill_n fails to
compile
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: laurent.stacul at gmail dot com
  Target Milestone: ---

Hello,

I have this piece of code:

#include 

template
struct ref {
typedef T value_type;
typedef T* pointer;
typedef T& reference;
typedef ptrdiff_t difference_type;
typedef std::random_access_iterator_tag iterator_category;

int d;

explicit ref(int =0): d(-1) {}
operator pointer() {
if (d == -1) {
return 0;
}
else
{
return reinterpret_cast(this + d);
}
}
ref& operator++() {
d += sizeof(value_type);
return *this;
}
};

int main(int, const char *[])
{
ref r;
std::uninitialized_fill_n(r, 10, 'a');
return 0;
}

I compile it with the following command (the -std option is not important):

$ g++ -Wall -Wextra -std=gnu++2a -c -o main.o main.cpp

When I compile it with gcc (GCC) 10.0.1 20200305, if fails with the following
error:

/x86_64-v20.0.13/include/c++/10.0.1/bits/stl_algobase.h: In instantiation of
'constexpr _OutputIterator std::__fill_n_a(_OutputIterator, _Size, const _Tp&,
std::random_access_iterator_tag) [with _OutputIterator = ref; _Size =
int; _Tp = char]':
/x86_64-v20.0.13/include/c++/10.0.1/bits/stl_algobase.h:1085:29:   required
from 'constexpr _OI std::fill_n(_OI, _Size, const _Tp&) [with _OI = ref;
_Size = int; _Tp = char]'
/x86_64-v20.0.13/include/c++/10.0.1/bits/stl_uninitialized.h:254:29:   required
from 'static _ForwardIterator
std::__uninitialized_fill_n::__uninit_fill_n(_ForwardIterator, _Size,
const _Tp&) [with _ForwardIterator = ref; _Size = int; _Tp = c
har]'
/x86_64-v20.0.13/include/c++/10.0.1/bits/stl_uninitialized.h:289:17:   required
from '_ForwardIterator std::uninitialized_fill_n(_ForwardIterator, _Size, const
_Tp&) [with _ForwardIterator = ref; _Size = int; _Tp = char]'
main.cpp:32:41:   required from here
/x86_64-v20.0.13/include/c++/10.0.1/bits/stl_algobase.h:1056:20: error: no
matching function for call to '__fill_a(ref&, ref::pointer, const
char&)'
 1056 |   std::__fill_a(__first, __first + __n, __value);
  |   ~^
/x86_64-v20.0.13/include/c++/10.0.1/bits/stl_algobase.h:904:5: note: candidate:
'template constexpr void std::__fill_a(_FIte, _FIte,
const _Tp&)'
  904 | __fill_a(_FIte __first, _FIte __last, const _Tp& __value)
  | ^~~~
/x86_64-v20.0.13/include/c++/10.0.1/bits/stl_algobase.h:904:5: note:   template
argument deduction/substitution failed:
/x86_64-v20.0.13/include/c++/10.0.1/bits/stl_algobase.h:1056:20: note:  
deduced conflicting types for parameter '_FIte' ('ref' and 'char*')
 1056 |   std::__fill_a(__first, __first + __n, __value);
  |   ~^
/x86_64-v20.0.13/include/c++/10.0.1/bits/stl_algobase.h:909:5: note: candidate:
'template void
std::__fill_a(const __gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&, const
__gnu_debug::_Safe_iterator<_Ite, _Seq
, _Cat>&, const _Tp&)'
  909 | __fill_a(const ::__gnu_debug::_Safe_iterator<_Ite, _Seq, _Cat>&,
  | ^~~~
/x86_64-v20.0.13/include/c++/10.0.1/bits/stl_algobase.h:909:5: note:   template
argument deduction/substitution failed:
/x86_64-v20.0.13/include/c++/10.0.1/bits/stl_algobase.h:1056:20: note:  
'ref' is not derived from 'const __gnu_debug::_Safe_iterator<_Ite, _Seq,
_Cat>'
 1056 |   std::__fill_a(__first, __first + __n, __value);
  |   ~^
/x86_64-v20.0.13/include/c++/10.0.1/bits/stl_algobase.h:1057:22: error: could
not convert '(__first.ref::operator ref::pointer() +
((sizetype)__n))' from 'ref::pointer' {aka 'char*'} to 'ref'
 1057 |   return __first + __n;
  |  ^
  |  |
  |  ref::pointer {aka char*}
make: *** [Makefile:6: main.o] Error 1

Conversely, this code compiles with gcc (GCC) 9.2.1. 

Maybe is it related to
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=6004c17b4d1a2dd1e1936b2e705a5ccfb6e48ab2
but I don' t know if the current bahviour is expected.

Stac

[Bug tree-optimization/94163] [8/9 Regression] ICE in set_ptr_info_alignment with -O2 and __builtin_assume_aligned

2020-03-13 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94163

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek  ---
So, either we can set the alignment to (unsigned) INT_MAX + 1 in that case, or
throw the info away.  Doesn't seem to be useful to enlarge ptr_info_def because
of this.  Perhaps the set_ptr_info_alignment could take unsigned HOST_WIDE_INT
argument and do this saturation inside of it.

[Bug tree-optimization/94163] [8/9 Regression] ICE in set_ptr_info_alignment with -O2 and __builtin_assume_aligned

2020-03-13 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94163

--- Comment #5 from Jakub Jelinek  ---
E.g. in tree-ssa-ccp.c, we drop very large alignments on the floor.
  /* Trailing mask bits specify the alignment, trailing value
 bits the misalignment.  */
  tem = val->mask.to_uhwi ();
  align = least_bit_hwi (tem);
int *
foo (int *p)
{
  p = (int *) ((__UINTPTR_TYPE__) p & 0xfff0ULL);
  (*p)++;
  return p;
}
because tem is unsigned int and so will be 0, align 0 too and so align > 1 will
not be true.

[Bug target/87560] ICE in curr_insn_transform, at lra-constraints.c:3892

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87560

--- Comment #12 from Martin Liška  ---
commit r9-8370-gde8e3b71c8bec6dde60e6ee70c73d6895c67d782
Author: Bill Schmidt 
Date:   Thu Mar 12 15:28:50 2020 -0500

rs6000: Fix -mpower9-vector -mno-altivec ICE (PR87560)

PR87560 reports an ICE when a test case is compiled with -mpower9-vector
and -mno-altivec.  This patch terminates compilation with an error when
this combination (and other unreasonable ones) are requested.

Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no
regressions.  Reported error is now:

f951: Error: '-mno-altivec' turns off '-mpower9-vector'

2020-03-12  Bill Schmidt  

Backport from master
2020-03-02  Bill Schmidt  

PR target/87560
* rs6000-cpus.def (OTHER_ALTIVEC_MASKS): New #define.
* rs6000.c (rs6000_disable_incompatible_switches): Add table entry
for OPTION_MASK_ALTIVEC.

[Bug rtl-optimization/94119] [8/9/10 regression] invalid filling of branch delay slots leads to corrupt jump

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94119

Martin Liška  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org

--- Comment #7 from Martin Liška  ---
commit r9-8372-g593e47a6134085e9b856c62f98f72acd4446ba7c
Author: Eric Botcazou 
Date:   Fri Mar 13 09:58:44 2020 +0100

Fix incorrect filling of delay slots in branchy code at -O2

The issue is that relax_delay_slots can streamline the CFG in some cases,
in particular remove BARRIERs, but removing BARRIERs changes the way the
instructions are associated with (basic) blocks by the liveness analysis
code in resource.c (find_basic_block) and thus can cause entries in the
cache maintained by resource.c to become outdated, thus producing wrong
answers downstream.

The fix is to invalidate the cache entries affected by the removal of
BARRIERs in relax_delay_slots, i.e. for the instructions down to the
next BARRIER.

PR rtl-optimization/94119
* resource.h (clear_hashed_info_until_next_barrier): Declare.
* resource.c (clear_hashed_info_until_next_barrier): New function.
* reorg.c (add_to_delay_list): Fix formatting.
(relax_delay_slots): Call clear_hashed_info_until_next_barrier on
the next instruction after removing a BARRIER.

[Bug rtl-optimization/94119] [8/9/10 regression] invalid filling of branch delay slots leads to corrupt jump

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94119

--- Comment #8 from Martin Liška  ---
commit r10-7152-g3e6ab5cefa81165e90fb62abf50e515f85a17e9a
Author: Eric Botcazou 
Date:   Fri Mar 13 09:58:44 2020 +0100

Fix incorrect filling of delay slots in branchy code at -O2

The issue is that relax_delay_slots can streamline the CFG in some cases,
in particular remove BARRIERs, but removing BARRIERs changes the way the
instructions are associated with (basic) blocks by the liveness analysis
code in resource.c (find_basic_block) and thus can cause entries in the
cache maintained by resource.c to become outdated, thus producing wrong
answers downstream.

The fix is to invalidate the cache entries affected by the removal of
BARRIERs in relax_delay_slots, i.e. for the instructions down to the
next BARRIER.

PR rtl-optimization/94119
* resource.h (clear_hashed_info_until_next_barrier): Declare.
* resource.c (clear_hashed_info_until_next_barrier): New function.
* reorg.c (add_to_delay_list): Fix formatting.
(relax_delay_slots): Call clear_hashed_info_until_next_barrier on
the next instruction after removing a BARRIER.

[Bug middle-end/50325] [4.7 Regression] 76 new fails with rev. 177691

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50325

Martin Liška  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org

--- Comment #40 from Martin Liška  ---
commit r10-7151-g82f620e2ba4c440c5e89bb1f73d10a11ed0f2eb4
Author: Eric Botcazou 
Date:   Fri Mar 13 09:16:29 2020 +0100

Fix unaligned load with small memcpy on the ARM

store_integral_bit_field is ready to handle BLKmode fields, there is
even a subtlety with their handling on big-endian targets, see e.g.
PR middle-end/50325, but not if they are unaligned, so the fix is
simply to call extract_bit_field for them in order to generate an
unaligned load.  As a bonus, this subsumes  the big-endian specific
path that was added under PR middle-end/50325.

PR middle-end/92071
* expmed.c (store_integral_bit_field): For fields larger than a
word, call extract_bit_field on the value if the mode is BLKmode.
Remove specific path for big-endian targets and tidy things up a
little bit.

[Bug middle-end/92071] [10 regression] ICE in gen_movsi, at config/arm/arm.md:5378

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92071

Martin Liška  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org

--- Comment #16 from Martin Liška  ---
commit r10-7151-g82f620e2ba4c440c5e89bb1f73d10a11ed0f2eb4
Author: Eric Botcazou 
Date:   Fri Mar 13 09:16:29 2020 +0100

Fix unaligned load with small memcpy on the ARM

store_integral_bit_field is ready to handle BLKmode fields, there is
even a subtlety with their handling on big-endian targets, see e.g.
PR middle-end/50325, but not if they are unaligned, so the fix is
simply to call extract_bit_field for them in order to generate an
unaligned load.  As a bonus, this subsumes  the big-endian specific
path that was added under PR middle-end/50325.

PR middle-end/92071
* expmed.c (store_integral_bit_field): For fields larger than a
word, call extract_bit_field on the value if the mode is BLKmode.
Remove specific path for big-endian targets and tidy things up a
little bit.

[Bug rtl-optimization/90275] [8/9 Regression] ICE: in insert_regs, at cse.c:1128 with -O2 -fno-dce -fno-tree-dce

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90275

Martin Liška  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org

--- Comment #13 from Martin Liška  ---
commit r10-7149-g4aded535ea6ad7c362ab62d99af70e53c186d582
Author: Richard Sandiford 
Date:   Thu Mar 12 16:09:27 2020 -0600

Remove no-op register to register copies in CSE just like we remove no-op
memory to memory copies.

PR rtl-optimization/90275
* cse.c (cse_insn): Delete no-op register moves too.

PR rtl-optimization/90275
* gcc.c-torture/compile/pr90275.c: New test.

[Bug rtl-optimization/94119] [8/9/10 regression] invalid filling of branch delay slots leads to corrupt jump

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94119

--- Comment #9 from Martin Liška  ---
commit r8-10121-g92902501c2ad030d56fd3347defd00e79187c51f
Author: Eric Botcazou 
Date:   Fri Mar 13 09:58:44 2020 +0100

Fix incorrect filling of delay slots in branchy code at -O2

The issue is that relax_delay_slots can streamline the CFG in some cases,
in particular remove BARRIERs, but removing BARRIERs changes the way the
instructions are associated with (basic) blocks by the liveness analysis
code in resource.c (find_basic_block) and thus can cause entries in the
cache maintained by resource.c to become outdated, thus producing wrong
answers downstream.

The fix is to invalidate the cache entries affected by the removal of
BARRIERs in relax_delay_slots, i.e. for the instructions down to the
next BARRIER.

PR rtl-optimization/94119
* resource.h (clear_hashed_info_until_next_barrier): Declare.
* resource.c (clear_hashed_info_until_next_barrier): New function.
* reorg.c (add_to_delay_list): Fix formatting.
(relax_delay_slots): Call clear_hashed_info_until_next_barrier on
the next instruction after removing a BARRIER.

[Bug tree-optimization/94163] [8/9 Regression] ICE in set_ptr_info_alignment with -O2 and __builtin_assume_aligned

2020-03-13 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94163

--- Comment #6 from Richard Biener  ---
The patch in testing does the same as CCP.  I agree that we possibly want
saturation behavior but that can be done separately for GCC 11.

[Bug rtl-optimization/94119] [8/9/10 regression] invalid filling of branch delay slots leads to corrupt jump

2020-03-13 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94119

Eric Botcazou  changed:

   What|Removed |Added

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

--- Comment #10 from Eric Botcazou  ---
Fixed on all active branches.

[Bug libstdc++/94164] [10 Regression] std::unintialized_fill_n fails to compile

2020-03-13 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94164

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |10.0
Summary|[Regression 10] |[10 Regression]
   |std::unintialized_fill_n|std::unintialized_fill_n
   |fails to compile|fails to compile

[Bug target/94154] AArch64: Add parameters to tune the precision of reciprocal div

2020-03-13 Thread bule1 at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94154

Bu Le  changed:

   What|Removed |Added

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

--- Comment #1 from Bu Le  ---
The patch has been reviewed and merged to master by Richard. Fixed and close.

[Bug c++/94162] ICE [neg] bad return type in defaulted <=>

2020-03-13 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94162

--- Comment #1 from Jakub Jelinek  ---
It isn't clear to me what exactly disallows it, perhaps
http://eel.is/c++draft/class.spaceship#2.2
?
For auto return type
http://eel.is/c++draft/class.spaceship#4
defines what return type it should have.
If the explicit return type isn't auto, but is one of the
std::{strong,weak,partial}_ordering, we don't ICE and accept it, should we and
what behavior should it have?
#include 
struct S {
  float a;
  std::strong_ordering operator<=>(const S&) const = default;
};
bool b = S{} < S{};
struct T {
  std::partial_ordering operator<=>(const T&) const = default;
};
bool c = T{} < T{};
For S, the auto return type would be std::partial_ordering and in the generated
body we just assume the floats will not be unordered.
So, for bool, shall it be accepted and handled some way, or shall it be
deleted, or result in immediate error (ill-formed)?
What about even weirder types (say float or int * or some arbitrary class)?

[Bug libstdc++/94164] [10 Regression] std::unintialized_fill_n fails to compile

2020-03-13 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94164

--- Comment #1 from Jonathan Wakely  ---
That's not an iterator.

[Bug target/89229] Incorrect xmm16-xmm31/ymm16-ymm31 in vector move

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89229

--- Comment #31 from Martin Liška  ---
commit r10-7154-gfd8679974b2ded884ffd7d912efef7fe13e4ff4f
Author: H.J. Lu 
Date:   Fri Mar 13 02:48:59 2020 -0700

i386: Use ix86_output_ssemov for DFmode TYPE_SSEMOV

There is no need to set mode attribute to XImode nor V8DFmode since
ix86_output_ssemov can properly encode xmm16-xmm31 registers with and
without AVX512VL.

gcc/

PR target/89229
* config/i386/i386.c (ix86_output_ssemov): Handle MODE_DF.
* config/i386/i386.md (*movdf_internal): Call ix86_output_ssemov
for TYPE_SSEMOV.  Remove TARGET_AVX512F, TARGET_PREFER_AVX256,
TARGET_AVX512VL and ext_sse_reg_operand check.

gcc/testsuite/

PR target/89229
* gcc.target/i386/pr89229-4a.c: New test.
* gcc.target/i386/pr89229-4b.c: Likewise.
* gcc.target/i386/pr89229-4c.c: Likewise.

[Bug target/94154] AArch64: Add parameters to tune the precision of reciprocal div

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94154

Martin Liška  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org

--- Comment #2 from Martin Liška  ---
commit r10-7153-gdbf3dc75888623e9d4bb7cc5e9c30caa9b24ffe7
Author: Bu Le 
Date:   Thu Mar 12 22:39:12 2020 +

aarch64: Add --params to control the number of recip steps [PR94154]

-mlow-precision-div hard-coded the number of iterations to 2 for double
and 1 for float.  This patch adds a --param to control the number.

2020-03-13  Bu Le  

gcc/
PR target/94154
* config/aarch64/aarch64.opt (-param=aarch64-float-recp-precision=)
(-param=aarch64-double-recp-precision=): New options.
* doc/invoke.texi: Document them.
* config/aarch64/aarch64.c (aarch64_emit_approx_div): Use them
instead of hard-coding the choice of 1 for float and 2 for double.

[Bug libstdc++/94164] [10 Regression] std::unintialized_fill_n fails to compile

2020-03-13 Thread laurent.stacul at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94164

--- Comment #2 from Laurent Stacul  ---
(In reply to Jonathan Wakely from comment #1)
> That's not an iterator.

Yes sure. I reduced my example to have the minimal example. I will add all de
needed requirement of an iterator if needed.

[Bug rtl-optimization/92303] [10 regression] gcc.target/sparc/ultrasp12.c times out

2020-03-13 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92303

Eric Botcazou  changed:

   What|Removed |Added

  Component|target  |rtl-optimization

--- Comment #12 from Eric Botcazou  ---
Recategorizing.

[Bug other/94165] New: Wrong "warning: this statement may fall through" after __builtin_unreachable().

2020-03-13 Thread gjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94165

Bug ID: 94165
   Summary: Wrong "warning: this statement may fall through" after
__builtin_unreachable().
   Product: gcc
   Version: 9.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gjl at gcc dot gnu.org
  Target Milestone: ---

Created attachment 48026
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48026&action=edit
C/C++ test case.

The compiler gcc, g++ incorrectly complain about fall-through case after
__builtin_unreachable().

Compiler test case with

$ g++ -c -W -Wall

w.c: In function ‘int func(int, int)’:
w.c:7:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
 (__extension__({\
 ~
 int _r = error_at (msg);\
 ~
 __builtin_unreachable();\
 ~
 _r; \
 ~~^~~
 }))
 ~~~
w.c:15:9: note: in expansion of macro ‘error’
 error ("bug");
 ^
w.c:16:5: note: here
 case 1: case 2:
 ^~~~

The only route to the fall-through is via __builtin_unreachable(), thus this
warning is wrong.

[Bug target/94121] ICE on aarch64-linux-gnu: in abs_hwi, at hwint.h:324

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94121

--- Comment #7 from Martin Liška  ---
commit r10-7155-g7aa605c9d4643dc6e0a0460e5697c02457cd7278
Author: Jakub Jelinek 
Date:   Fri Mar 13 11:33:16 2020 +0100

aarch64: Fix another bug in aarch64_add_offset_1 [PR94121]

> I'm getting this ICE with -mabi=ilp32:
>
> during RTL pass: fwprop1
> /opt/gcc/gcc-20200312/gcc/testsuite/gcc.dg/pr94121.c: In function 'bar':
> /opt/gcc/gcc-20200312/gcc/testsuite/gcc.dg/pr94121.c:16:1: internal
compiler error: in decompose, at rtl.h:2279

That is a preexisting issue, caused by another bug in the same function.
When mode is SImode and moffset is 0x8000 (or anything else with the
bit 31 set), we need to sign-extend it.

2020-03-13  Jakub Jelinek  

PR target/94121
* config/aarch64/aarch64.c (aarch64_add_offset_1): Use gen_int_mode
instead of GEN_INT.

[Bug middle-end/93566] [8/9/10 Regression] tree-nested.c ICE on C OpenMP array section reduction

2020-03-13 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93566

Jakub Jelinek  changed:

   What|Removed |Added

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

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

Untested fix.

[Bug other/94165] Wrong "warning: this statement may fall through" after __builtin_unreachable().

2020-03-13 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94165

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek  ---
This warning is an early warning (during gimplification) and can handle only
some constructs that clearly can't fall thru.
E.g. we do warn for:
extern void foo (const char *) __attribute__((noreturn));

int
bar (int x)
{
  switch (x)
{
default:
  foo ("bug");
  x++;
case 1:
  return x + 2;
}
}
but if you take the unreachable code after the noreturn call, we won't warn.
The expression statement is similar, there is code after the noreturn call.
Finding noreturn stuff in the middle of sequences would be difficult and
expensive.  Only the cfg pass is then able to figure out that some code is
unreachable.

[Bug tree-optimization/94166] New: [10 Regression] random -fcompare-debug failures since r10-1913

2020-03-13 Thread zhroma at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94166

Bug ID: 94166
   Summary: [10 Regression] random -fcompare-debug failures since
r10-1913
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: zhroma at gcc dot gnu.org
CC: jakub at redhat dot com, linkw at gcc dot gnu.org
  Target Milestone: ---
Target: powerpc64le-*-linux-gnu

I've regtested recent r10-7146 version on powerpc64le with -fcompare-debug.
pr88497-*.c and pr92618.c tests give some kind of random results - they may
fail or pass.

So, after running one compilation manually several times like this:
gcc -O2 -fcompare-debug gcc/testsuite/gcc.c-torture/execute/pr92618.c
--save-temps
I finally managed to see final-dumps with difference like "a=b+c" vs "a=c+b".

Than I've added -fdump-tree-all and than found that the difference starts from
'reassoc1' dump.  Investigation shows r10-1913 causes that.  I've checked that
reverting r10-1913 and related r10-4930 (but without removing their tests,
which were actually under investigation) solved the problem.

I think the problem is using
for(hash_map::iterator it = v_info_map.begin ) {
   ...
   valid_vecs.quick_push (cand_vec);
}

That loop gives unpredictable order in hash_map iterator and we got random
order of elements in valid_vecs.  Later we sort it, but in pr92618.c example it
seems there are two elements are their comparison result is 'equal'.


PS.  Actually, I've checked the difference between usual regtest results and
-fcompare-debug and there are a lot of other "more stable" failures, I'll also
file another PR.

[Bug lto/94157] [10 Regression] error: lto-wrapper failed with -Wa,--noexecstack -Wa,--noexecstack since r10-6807-gf1a681a174cdfb82

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94157

Martin Liška  changed:

   What|Removed |Added

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

--- Comment #5 from Martin Liška  ---
commit r10-7157-g98ff89d1ac5872f29020fe5b5edfdf5abce59014
Author: Martin Liska 
Date:   Fri Mar 13 13:50:01 2020 +0100

Do not strcat to result of getenv.

PR lto/94157
* lto-wrapper.c (run_gcc): Use concat for appending
to collect_gcc_options.
PR lto/94157
* gcc.dg/lto/pr94157_0.c: New test.

[Bug testsuite/93935] [9/10 regression] gcc.dg/vect/bb-slp-over-widen-2.c fails starting with r262371 (r10-6856)

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93935

Martin Liška  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org

--- Comment #3 from Martin Liška  ---
commit r10-7156-g43d513af3f2026420312cc709dd729c81862de0c
Author: Kewen Lin 
Date:   Fri Mar 13 05:51:21 2020 -0500

[testsuite] Fix PR93935 to guard case under vect_hw_misalign

This patch is to apply the same fix as r267528 to another similar case
bb-slp-over-widen-2.c which requires misaligned vector access.

gcc/testsuite/ChangeLog

PR testsuite/93935
* gcc.dg/vect/bb-slp-over-widen-2.c: Expect basic block vectorized
messages only on vect_hw_misalign targets.

[Bug tree-optimization/94166] [10 Regression] random -fcompare-debug failures since r10-1913

2020-03-13 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94166

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org
   Priority|P3  |P1
 CC||jakub at gcc dot gnu.org
 Ever confirmed|0   |1
   Last reconfirmed||2020-03-13
   Target Milestone|--- |10.0

--- Comment #1 from Jakub Jelinek  ---
Indeed:
--- pr92618.c.123t.reassoc1_2020-03-13 13:58:06.494566731 +0100
+++ pr92618.c.123t.reassoc1 2020-03-13 13:58:33.151172526 +0100
@@ -88,8 +88,8 @@ foo (long long unsigned int * x)
[local count: 1073741824]:
   c_6 = bar ();
   d_8 = bar ();
-  _19 = VIEW_CONVERT_EXPR(c_6);
-  _18 = VIEW_CONVERT_EXPR(d_8);
+  _19 = VIEW_CONVERT_EXPR(d_8);
+  _18 = VIEW_CONVERT_EXPR(c_6);
   _17 = _18 + _19;
   _21 = BIT_FIELD_REF <_17, 64, 0>;
   _20 = BIT_FIELD_REF <_17, 64, 64>;

[Bug tree-optimization/94163] [8/9 Regression] ICE in set_ptr_info_alignment with -O2 and __builtin_assume_aligned

2020-03-13 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94163

Richard Biener  changed:

   What|Removed |Added

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

--- Comment #7 from Richard Biener  ---
Fixed everywhere.

[Bug tree-optimization/94166] [10 Regression] random -fcompare-debug failures since r10-1913

2020-03-13 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94166

--- Comment #2 from Jakub Jelinek  ---
This fixes it, but will try to find a testcase that fails more reliably:
--- gcc/tree-ssa-reassoc.c.jj   2020-01-12 11:54:38.510381771 +0100
+++ gcc/tree-ssa-reassoc.c  2020-03-13 14:06:32.358085863 +0100
@@ -1793,8 +1793,11 @@ sort_by_mach_mode (const void *p_i, cons
 return 1;
   else if (mode1 < mode2)
 return -1;
-  else
-return 0;
+  if (SSA_NAME_VERSION (tr1) < SSA_NAME_VERSION (tr2))
+return -1;
+  else if (SSA_NAME_VERSION (tr1) > SSA_NAME_VERSION (tr2))
+return 1;
+  return 0;
 }

 /* Cleanup hash map for VECTOR information.  */

[Bug tree-optimization/94167] New: pr71109.c -fcompare-debug failures on x86_64 and powerpc64le

2020-03-13 Thread zhroma at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94167

Bug ID: 94167
   Summary: pr71109.c -fcompare-debug failures on x86_64 and
powerpc64le
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: zhroma at gcc dot gnu.org
  Target Milestone: ---

Running
gcc -O2 -fcompare-debug gcc/testsuite/gcc.c-torture/compile/pr71109.c
fails with recent master on powerpc64le.
I also checked that same happens on x86 with recent 9.3.0 and old 5.5.0 ubuntu.

On master, first dump file with difference is fixup_cfg3

--
I've compared (on powerpc64le) usual regtest results and '-fcompare-debug'
results and there are like ~10 more failures, two of them already reported as
PR94166.

Certainly, there are actually a lot of cases when -fcompare-debug dumps
differs, but .o files have same code, so that can only be catched "manually"
(e.g. using RUNTESTFLAGS="--target_board=unix/-fcompare-debug" or bootstrapping
--with-build-config=bootstrap-debug-lean).  And I'm not sure how much community
bothers about fixing issues like this one.

[Bug c++/94044] [10 Regression] internal compiler error: in comptypes, at cp/typeck.c:1490 on riscv64-unknown-linux-gnu and arm-eabi

2020-03-13 Thread nathan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94044

--- Comment #4 from Nathan Sidwell  ---
I cannot reproduce this with the cross or native compilers I've tried:
native: x86_64-linux, aarch64-linux
cross: arm-eabi riscv64-unknown-linux

The cross compilers are hosted on x86_64-linux

[Bug driver/87161] if -Werror appear after -Wmissing-prototypes the warning is not turn into error

2020-03-13 Thread simon.marchi at polymtl dot ca
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87161

Simon Marchi  changed:

   What|Removed |Added

 CC||simon.marchi at polymtl dot ca

--- Comment #6 from Simon Marchi  ---
I also encountered this inconsistency when running g++ under ccache.  I can't
tell if this is a ccache or a gcc problem.  Running the exact same command with
and without ccache gives two different results:

$ ccache g++ -c -Werror -Wmissing-prototypes test.cpp
cc1plus: warning: command line option ‘-Wmissing-prototypes’ is valid for
C/ObjC but not for C++

$ g++ -c -Werror -Wmissing-prototypes test.cpp  
cc1plus: error: command line option ‘-Wmissing-prototypes’ is valid for C/ObjC
but not for C++ [-Werror]

[Bug preprocessor/94168] New: [10 Regression] error: extended character § is not valid in an identifier since r10-3309-g7d112d6670a0e0e6

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94168

Bug ID: 94168
   Summary: [10 Regression] error: extended character § is not
valid in an identifier since
r10-3309-g7d112d6670a0e0e6
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Keywords: rejects-valid
  Severity: normal
  Priority: P3
 Component: preprocessor
  Assignee: unassigned at gcc dot gnu.org
  Reporter: marxin at gcc dot gnu.org
  Target Milestone: ---

I see the following regression:

$ cat red.cc
#ifdef WINDOWS
§
#endif

$ g++-9 red.cc -c
$ g++ red.cc -c
red.cc:2:1: error: extended character § is not valid in an identifier
2 | ��
  | ^

[Bug tree-optimization/94166] [10 Regression] random -fcompare-debug failures since r10-1913

2020-03-13 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94166

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

Untested fix.

[Bug preprocessor/94168] [10 Regression] error: extended character § is not valid in an identifier since r10-3309-g7d112d6670a0e0e6

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94168

Martin Liška  changed:

   What|Removed |Added

   Last reconfirmed||2020-03-13
   Target Milestone|--- |10.0
 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1
  Known to fail||10.0
  Known to work||9.3.0
 CC||lhyatt at gmail dot com

--- Comment #1 from Martin Liška  ---
It's reduced from hfst-ospell package.

[Bug rtl-optimization/90378] [9/10 regression] -Os -flto miscompiles 454.calculix after r266385 on Arm

2020-03-13 Thread clyon at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90378

--- Comment #10 from Christophe Lyon  ---
I checked the stack settings on the ARMv7 and ARMv8 machines:
ARMv7: beced000-bed0e000 rw-p  00:00 0  [stack]
ARMv8: fff12000-fff33000 rw-p  00:00 0  [stack]

In both cases ulimit -a says:
stack size  (kbytes, -s) 8192


I recompiled with "-Os -flto  -g -mthumb" (ie. I added -g) and execution
sometimes reaches iteration 2, sometimes not.

Using gdb I got a bit more info:
Program received signal SIGSEGV, Segmentation fault.
_int_free (av=0xc59a20, p=, have_lock=12975032) at malloc.c:4088
4088malloc.c: No such file or directory.

But this is random too, another run gave:
Program received signal SIGSEGV, Segmentation fault.
__brk (addr=0x1) at ../sysdeps/unix/sysv/linux/arm/brk.c:31
31  ../sysdeps/unix/sysv/linux/arm/brk.c: No such file or directory.


Other runs from the same gdb gave no backtrace at all, and at least one of them
reached iteration 4.

[Bug tree-optimization/94163] [8/9 Regression] ICE in set_ptr_info_alignment with -O2 and __builtin_assume_aligned

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94163

--- Comment #9 from Martin Liška  ---
commit r9-8373-gdb3584552871c8caccdc22e97ea1573da9458253
Author: Richard Biener 
Date:   Fri Mar 13 13:56:26 2020 +0100

tree-optimization/94163 constrain alignment set by PRE

This avoids HWI -> unsigned truncation to end up with zero alignment
which set_ptr_info_alignment ICEs on.

2020-03-13  Richard Biener  

PR tree-optimization/94163
* tree-ssa-pre.c (create_expression_by_pieces): Check
whether alignment would be zero.

[Bug tree-optimization/94163] [8/9 Regression] ICE in set_ptr_info_alignment with -O2 and __builtin_assume_aligned

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94163

--- Comment #10 from Martin Liška  ---
commit r10-7158-g3604480a6fe493c51d6ebd53d9b1abee828f
Author: Richard Biener 
Date:   Fri Mar 13 13:56:26 2020 +0100

tree-optimization/94163 constrain alignment set by PRE

This avoids HWI -> unsigned truncation to end up with zero alignment
which set_ptr_info_alignment ICEs on.

2020-03-13  Richard Biener  

PR tree-optimization/94163
* tree-ssa-pre.c (create_expression_by_pieces): Check
whether alignment would be zero.

[Bug tree-optimization/94163] [8/9 Regression] ICE in set_ptr_info_alignment with -O2 and __builtin_assume_aligned

2020-03-13 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94163

Martin Liška  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org

--- Comment #8 from Martin Liška  ---
commit r8-10122-g8c55e44368d639849b28484f2c7842f4265b33c8
Author: Richard Biener 
Date:   Fri Mar 13 13:56:26 2020 +0100

tree-optimization/94163 constrain alignment set by PRE

This avoids HWI -> unsigned truncation to end up with zero alignment
which set_ptr_info_alignment ICEs on.

2020-03-13  Richard Biener  

PR tree-optimization/94163
* tree-ssa-pre.c (create_expression_by_pieces): Check
whether alignment would be zero.

[Bug debug/94167] [8/9/10 Regression] pr71109.c -fcompare-debug failures on x86_64 and powerpc64le

2020-03-13 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94167

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2020-03-13
   Target Milestone|--- |8.5
 Ever confirmed|0   |1
  Component|tree-optimization   |debug
Summary|pr71109.c -fcompare-debug   |[8/9/10 Regression]
   |failures on x86_64 and  |pr71109.c -fcompare-debug
   |powerpc64le |failures on x86_64 and
   ||powerpc64le
 CC||jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek  ---
Started with r0-111525-gd7da5cc85cdef4207d10e8b79dce79ed12353fb9
Will try to have a quick look.

[Bug c/84919] [8/9 Regression] error: passing argument 1 to restrict-qualified parameter aliases with argument 5 [-Werror=restrict]

2020-03-13 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84919

--- Comment #23 from Martin Sebor  ---
I think that's a question for the release managers.  I thought they like to
keep regressions open until all the affected branches have closed, but I could
be wrong.  One way to find out is to close it and let them reopen it :)

[Bug debug/94167] [8/9/10 Regression] pr71109.c -fcompare-debug failures on x86_64 and powerpc64le

2020-03-13 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94167

--- Comment #2 from Jakub Jelinek  ---
The first changes seems to appear in the inline ipa dump:
-bar/5 (bar) @0x7face3ee7000
+bar/5 (bar) @0x7f637349f438
   Type: function definition analyzed
   Visibility: externally_visible public
+  Address is taken.
   References: 
-  Referring: 
+  Referring: foo.constprop.0/8 (addr)
...
-foo.constprop.0/8 (foo.constprop) @0x7face3ee75a0
+foo.constprop.0/8 (foo.constprop) @0x7f63734ab2d0
   Type: function definition analyzed
   Visibility: artificial
-  References: a/0 (write)c/1 (write)a/0 (read)b/3 (read)
+  References: bar/5 (addr)a/0 (write)c/1 (write)a/0 (read)b/3 (read)
which means something is pushing &bar from
  # DEBUG D#2 => (int) bar
which doesn't appear in any non-debug stmts.

[Bug c++/67960] [8/9 Regression] Prefixing a function with [[deprecated]] produces multiple warnings

2020-03-13 Thread ppalka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67960

Patrick Palka  changed:

   What|Removed |Added

 Status|REOPENED|ASSIGNED
 CC||ppalka at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |ppalka at gcc dot 
gnu.org
  Known to fail|10.0|
Summary|[8/9/10 Regression] |[8/9 Regression] Prefixing
   |Prefixing a function with   |a function with
   |[[deprecated]] produces |[[deprecated]] produces
   |multiple warnings   |multiple warnings

--- Comment #7 from Patrick Palka  ---
I have a patch.

--- Comment #8 from Patrick Palka  ---
Fixed on trunk by r10-7159.

[Bug debug/94167] [8/9/10 Regression] pr71109.c -fcompare-debug failures on x86_64 and powerpc64le

2020-03-13 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94167

Jakub Jelinek  changed:

   What|Removed |Added

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

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

Untested fix.

[Bug middle-end/94169] New: warn for modifying getenv() result

2020-03-13 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94169

Bug ID: 94169
   Summary: warn for modifying getenv() result
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: msebor at gcc dot gnu.org
  Target Milestone: ---

Bug 94157 was caused by modifying the string pointed to by the value returned
from getenv(), which is undefined according to both C and POSIX.  C11 says in
7.22.4.8, p4:

  The getenv function returns a pointer to a string associated with the matched
list member. The string pointed to shall not be modified by the program, but
may be overwritten by a subsequent call to the getenv function.

It would be helpful if GCC issued a warning for attempts to modify the returned
string.  This could be done by extending -Wstringop-overflow.

您為什麼抗疫失據?

2020-03-13 Thread 李小姐 via Gcc-bugs



您為什麼抗疫失據?








  
您為什麼抗疫失據?
  










我們香港護老易有限公司是金利通上市公司的子公司。

你帶口罩保護了直接的飛沫傳染。但是一點都不足夠,你仍然讓病毒存活在你的辦公室和家居環境。其實最有效消滅病毒的手段是消毒酒精,漂白水。

專家表示,細菌在金屬、塑膠等光滑材質的物件上更容易殘留,因此對機不離手的香港人來說,智能手機缺乏定時清潔的話,可能會黏附著大量細菌!因此正確的消毒手機方法尤其重要。

無論在辦公室或者家居,你有沒有把漂白水或酒精放在門口的地氈及把稀釋的漂白水倒在座廁及U形聚水渠?和人握手及與小孩子接觸之後有沒有用酒精擦手?
 
病毒在我們周圍,單憑口罩,只是防範了一部份。我相信受感染的病人,絕大多數都有口罩!

如果你告訴我,你買不到酒精,或者漂白水,收到這個信息是你的福氣。金利通上市公司全資附屬的金十字抗疫產品系列提供以下產品: 

1.  Alcohol Swab 酒精消毒棉片  
2.  84消毒液(漂白水) 

3.  酒精消毒濕紙巾 


請立即和我們聯絡!

查詢及訂購請致電或WhatsApp: 9309 3281 / 2510 0200







  
Should you wish not to receive any promotional email in the future, please 
click UNSUBSCRIBE.如閣下不欲收到本公司的宣傳郵件,請按不訂閱。
  









[Bug c++/94044] [10 Regression] internal compiler error: in comptypes, at cp/typeck.c:1490 on riscv64-unknown-linux-gnu and arm-eabi

2020-03-13 Thread kito.cheng at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94044

--- Comment #5 from Kito Cheng  ---
Hi Nathan:

Double confirmed again, it still ICE to me, but I might miss some info so I
post my env and configure option:

GCC: g:b73f69020f08208d2d969fcf8879bd294a6e3596

Host: x86_64-linux (Ubuntu 18.04)
Target: arm-eabi
Configure option: --target=arm-eabi --enable-languages=c,c++

Bootstrap gcc only
$ arm-eabi-g++
../riscv-gnu-toolchain-trunk/riscv-gcc/gcc/testsuite/g++.dg/cpp0x/variadic-sizeof4.C
-std=c++14


reduced cc1plus command:
$
/scratch1/kitoc/riscv-gnu-workspace/pr94044/arm-eabi/install/bin/../libexec/gcc/arm-eabi/10.0.1/cc1plus
-quiet 
../riscv-gnu-toolchain-trunk/riscv-gcc/gcc/testsuite/g++.dg/cpp0x/variadic-sizeof4.C
-quiet -mcpu=arm7tdmi -marm -march=armv4t -std=c++14  -o -

debug info:
#6  0x008abd8b in comptypes (t1=0x76964f18, t2=,
strict=)
at ../../../../riscv-gnu-toolchain-trunk/riscv-gcc/gcc/cp/typeck.c:1489
1489  gcc_checking_assert (TREE_CODE (t1) != TYPE_ARGUMENT_PACK
(gdb) call debug_tree(t1)
 

[Bug rtl-optimization/94119] [8/9/10 regression] invalid filling of branch delay slots leads to corrupt jump

2020-03-13 Thread d.dorau at avm dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94119

--- Comment #11 from d.dorau at avm dot de ---
(In reply to Eric Botcazou from comment #10)
> Fixed on all active branches.

Thanky you very much for the quick fix! To verify I cherry-picked your commit
onto our 8.3 build and the result looks fine so far.

I noticed that you accidentially put the wrong year into the ChangeLog.

[Bug c/94040] [9 Regression] ICE on a call to an invalid redeclaration of strftime

2020-03-13 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94040

Martin Sebor  changed:

   What|Removed |Added

  Known to fail|10.0, 9.2.0 |9.3.0
Summary|[9/10 Regression] ICE on a  |[9 Regression] ICE on a
   |call to an invalid  |call to an invalid
   |redeclaration of strftime   |redeclaration of strftime
  Known to work||10.0

--- Comment #6 from Martin Sebor  ---
Fixed for GCC 10 via r10-7162:

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

commit r10-7162-gf2e9fe5f97d88fc876c44e6ffa57a2e85150adf9
Author: Martin Sebor 
Date:   Fri Mar 13 10:28:26 2020 -0600

PR c/94040 - ICE on a call to an invalid redeclaration of strftime

gcc/c/ChangeLog:

PR c/94040
* c-decl.c (builtin_structptr_type_count): New constant.
(match_builtin_function_types): Reject decls that are incompatible
in types pointed to by pointers.
(diagnose_mismatched_decls): Adjust comments.

gcc/testsuite/ChangeLog:

PR c/94040
* gcc.dg/Wbuiltin-declaration-mismatch-12.c: Relax test to look
for warning name rather than the exact text.
* gcc.dg/Wbuiltin-declaration-mismatch-14.c: New test.
* gcc.dg/Wbuiltin-declaration-mismatch-15.c: New test.
* gcc.dg/pr62090.c: Prune expected warning.
* gcc.dg/pr89314.c: Look for warning name rather than text.

[Bug preprocessor/94168] [10 Regression] error: extended character § is not valid in an identifier since r10-3309-g7d112d6670a0e0e6

2020-03-13 Thread lhyatt at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94168

--- Comment #2 from Lewis Hyatt  ---
(In reply to Martin Liška from comment #0)
> I see the following regression:
> 
> $ cat red.cc
> #ifdef WINDOWS
> §
> #endif
> 
> $ g++-9 red.cc -c
> $ g++ red.cc -c
> red.cc:2:1: error: extended character § is not valid in an identifier
> 2 | ��
>   | ^

The corrupted colorization in the diagnostics is a bug that I submitted a patch
for already. David prefers that fix to wait for GCC 11.

Regarding the behavior, if you replace the § with the equivalent UCN:

#ifdef WINDOWS
\u00A7
#endif

then you will get the same behavior with older GCC before my patch too. My
patch causes the UTF-8 to be interpreted as an identifier rather than a stray
token, hence it ends up with the same error.

As it happens, if you compile your test in C mode, it will succeed, because the
UTF-8 logic for C mode treats the invalid character as a stray token rather
than part of an identifier, then it gets compiled out fine. In C++, it is
rather a syntax error by design so it triggers this error. When switching to
UCN syntax, it is an error for both C and C++ so fails either way.

Looking at the relevant code in charset.c (_cpp_valid_ucn and _cpp_valid_utf8)
... I think it is probably just a matter of checking pfile->state.skipping in
more places. I made _cpp_valid_utf8 so as to preserve all the analogous
behavior of the existing _cpp_valid_ucn. It seems that _cpp_valid_ucn checks
pfile->state.skipping in some cases, like for $ in identifiers, but not for
others, such as the invalid character case.

I am happy to submit a patch to fix this, but I am not sure in what all cases
it is correct to skip the error. For instance, this code can be made to trigger
an error too, in C90 mode:

$ cat t.c
#ifdef WINDOWS
int \u00E4;
#endif

$ gcc-8 -c t.c -std=c90 -fextended-identifiers
t.c:2:5: warning: universal character names are only valid in C++ and C99
 int \u00E4;
 ^

That is because _cpp_valid_ucn doesn't check pfile->state.skipping for this
case either. I think, especially in C++, there are probably at least some cases
where an error should be triggered even in conditionally compiled code, but I
don't know enough off hand to say for sure.

FWIW, the below patch fixes the present issue, but it doesn't tackle equivalent
UCN behavior or fix the related issues... I just need some guidance as to the
expected behavior to do that.

-Lewis

diff --git a/libcpp/charset.c b/libcpp/charset.c
index d9281c5fb97..129f234349e 100644
--- a/libcpp/charset.c
+++ b/libcpp/charset.c
@@ -1260,7 +1260,7 @@ _cpp_valid_utf8 (cpp_reader *pfile,
 way).  In C, this byte rather becomes grammatically a separate
 token.  */

- if (CPP_OPTION (pfile, cplusplus))
+ if (!pfile->state.skipping && CPP_OPTION (pfile, cplusplus))
cpp_error (pfile, CPP_DL_ERROR,
   "extended character %.*s is not valid in an identifier",
   (int) (*pstr - base), base);
@@ -1273,7 +1273,7 @@ _cpp_valid_utf8 (cpp_reader *pfile,
  break;

case 2:
- if (identifier_pos == 1)
+ if (!pfile->state.skipping && identifier_pos == 1)
{
  /* This is treated the same way in C++ or C99 -- lexed as an
 identifier which is then invalid because an identifier is

[Bug fortran/94170] New: gfortran segfault on object oriented code

2020-03-13 Thread r.dilz at tue dot nl
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94170

Bug ID: 94170
   Summary: gfortran segfault on object oriented code
   Product: gcc
   Version: 9.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: r.dilz at tue dot nl
  Target Milestone: ---

Created attachment 48030
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48030&action=edit
The part of the code that crashes the gfortran

I have some code that doesn't work on some gfortran compilers.
gfortran-4.8 Works
ifort (15.0.0) Works
gfortran-5 segfaults
gfortran-7 segfaults
gfortan-9 (9.2.1) segfaults

Since I am new to object oriented fortran, I am not completely sure whether my
code is correct. But since it works on some compilers, I suspect it is correct.

The code is simply built with: gfortran -c crashgfortran.f90 (see attachment)

The goal of the code is to recursively build arrays of classes.

[Bug rtl-optimization/94119] [8/9/10 regression] invalid filling of branch delay slots leads to corrupt jump

2020-03-13 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94119

--- Comment #12 from Eric Botcazou  ---
> I noticed that you accidentially put the wrong year into the ChangeLog.

Thanks, fixed.

[Bug rtl-optimization/94148] The DF framework uses bb->aux, which is for passes only

2020-03-13 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94148

--- Comment #3 from Segher Boessenkool  ---
Fixed on trunk so far.

[Bug target/94042] [10 Regression] Bootstrap fails on ppc-linux-gnu

2020-03-13 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94042

Segher Boessenkool  changed:

   What|Removed |Added

 Target|powerpc64-suse-linux|powerpc*
   Host|powerpc64-suse-linux|
  Build|powerpc64-suse-linux|

--- Comment #48 from Segher Boessenkool  ---
Solved on trunk

[Bug target/94042] [10 Regression] Bootstrap fails on ppc-linux-gnu

2020-03-13 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94042

Segher Boessenkool  changed:

   What|Removed |Added

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

--- Comment #49 from Segher Boessenkool  ---
Fixed.

[Bug preprocessor/94168] [10 Regression] error: extended character § is not valid in an identifier since r10-3309-g7d112d6670a0e0e6

2020-03-13 Thread joseph at codesourcery dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94168

--- Comment #3 from joseph at codesourcery dot com  ---
The reasoning for rejecting this (for UCNs in both C and C++, for other 
characters in C++ because of the C++ rule that such characters get 
converted to UCNs) is that the constraints on permitted characters in 
identifiers appear to me to apply to any pp-token that matches the syntax 
productions for "identifier", whether or not that pp-token ends up getting 
converted to a token.  This is similar to

#if 0
"multiline
string"
#endif

being disallowed as well.

[Bug c++/93248] [8/9/10 Regression] ICE in decltype of template constructor with default argument within a class template since r8-2712

2020-03-13 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93248

Jason Merrill  changed:

   What|Removed |Added

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

[Bug c++/94044] [10 Regression] internal compiler error: in comptypes, at cp/typeck.c:1490 on riscv64-unknown-linux-gnu and arm-eabi

2020-03-13 Thread nathan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94044

--- Comment #6 from Nathan Sidwell  ---
Still no luck.

I'm at cb99630f254 2020-03-11 | fold undefined pointer offsetting
Configured with 
../../src/configure '--with-mpfr=/data/users/nathans/tools'
'--with-mpc=/data/users/nathans/tools' '--enable-checking=yes'
--disable-multilib --disable-bootstrap '--enable-languages=c,c++,lto'
'--target=arm-eabi'


devvm2772+2:5>./cc1plus -quiet  variadic-sizeof4.C -quiet -mcpu=arm7tdmi -marm
-march=armv4t -std=c++14 -o -
... assembly emitted ...

I'm using a fresh binutils cross toolchain

I understand where the compiler got to from your traceback.  I don't understand
what constructed the trees that got it there!

[Bug c++/92909] [8/9/10 Regression] ICE on incorrect lambda inside variadic template

2020-03-13 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92909

Jason Merrill  changed:

   What|Removed |Added

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

[Bug c++/90995] [8/9/10 Regression] ICE in grokdeclarator, at cp/decl.c:12024

2020-03-13 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90995

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

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

Untested fix.

[Bug d/93038] Missing dependencies in depfile for imported files at compilation time

2020-03-13 Thread ibuclaw at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93038

ibuclaw at gcc dot gnu.org changed:

   What|Removed |Added

 Ever confirmed|0   |1
   Last reconfirmed||2020-03-13
 Status|UNCONFIRMED |ASSIGNED
 CC||ibuclaw at gcc dot gnu.org

--- Comment #1 from ibuclaw at gcc dot gnu.org ---
Yes, I have too noticed this and have a fix in the gdc development branch, will
backport it to gcc trunk as soon as I cherry-pick out parts not related to
supporting the self-hosted front-end.

[Bug c/93218] Test bug for testing git email integration

2020-03-13 Thread jakub at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93218

--- Comment #29 from Jakub Jelinek  ---
Friday 13th's test.

[Bug c/94171] New: attribute silently ignored on redeclarations of a typedef

2020-03-13 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94171

Bug ID: 94171
   Summary: attribute silently ignored on redeclarations of a
typedef
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: msebor at gcc dot gnu.org
  Target Milestone: ---

The attribute machinery silently drops attributes from subsequent type
definitions.  The test case below shows this with attribute nonnull but other
attributes that apply to types are affected as well.

Intel ICC behaves correctly and diagnoses all seven instances of passing a null
to a nonnull argument.

$ cat x.c && gcc -S -Wall -Wextra x.c
extern int a[];

typedef __attribute__ ((nonnull (1))) void F1 (void*, void*);

void f1 (F1 *p)
{
  p (a, 0);
  p (0, a);// -Wnonnull (good)
}

typedef __attribute__ ((nonnull (1))) void F1_2 (void*, void*);
typedef __attribute__ ((nonnull (2))) void F1_2 (void*, void*);

void f12 (F1_2 *p)
{
  p (a, 0);// missing -Wnonnull
  p (0, a);// -Wnonnull (good)
}

typedef __attribute__ ((nonnull (2))) void F2_1 (void*, void*);
typedef __attribute__ ((nonnull (1))) void F2_1 (void*, void*);

void f21 (F2_1 *p)
{
  p (a, 0);// -Wnonnull (good)
  p (0, a);// missing -Wnonnull
}

typedef   void Fx_1_2 (void*, void*);
typedef __attribute__ ((nonnull (1))) void Fx_1_2 (void*, void*);
typedef __attribute__ ((nonnull (2))) void Fx_1_2 (void*, void*);

void fx12 (Fx_1_2 *p)
{
  p (a, 0);// missing -Wnonnull
  p (0, a);// missing -Wnonnull
}
x.c: In function ‘f1’:
x.c:8:3: warning: null argument where non-null required (argument 1)
[-Wnonnull]
8 |   p (0, a);// -Wnonnull (good)
  |   ^
x.c: In function ‘f12’:
x.c:17:3: warning: null argument where non-null required (argument 1)
[-Wnonnull]
   17 |   p (0, a);// -Wnonnull (good)
  |   ^
x.c: In function ‘f21’:
x.c:25:3: warning: null argument where non-null required (argument 2)
[-Wnonnull]
   25 |   p (a, 0);// -Wnonnull (good)
  |   ^

[Bug d/93038] Missing dependencies in depfile for imported files at compilation time

2020-03-13 Thread pierrick.bouvier at posteo dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93038

--- Comment #2 from Pierrick Bouvier  ---
(In reply to ibuclaw from comment #1)
> Yes, I have too noticed this and have a fix in the gdc development branch,
> will backport it to gcc trunk as soon as I cherry-pick out parts not related
> to supporting the self-hosted front-end.

Very good news. Hope it will land in first release of gcc-10 first release.

[Bug rtl-optimization/94148] The DF framework uses bb->aux, which is for passes only

2020-03-13 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94148

--- Comment #4 from Segher Boessenkool  ---
Fixed on trunk so far.

[Bug rtl-optimization/94148] The DF framework uses bb->aux, which is for passes only

2020-03-13 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94148

--- Comment #5 from Segher Boessenkool  ---
commit 5c7e6d4bdf879b437b43037e10453275acabf521
Author: Segher Boessenkool 
Date:   Thu Mar 12 07:12:50 2020 +

df: Don't abuse bb->aux (PR94148, PR94042)

The df dataflow solvers use the aux field in the basic_block struct,
although that is reserved for any use by passes.  And not only that,
it is required that you set all such fields to NULL before calling
the solvers, or you quietly get wrong results.

This changes the solvers to use a local array for last_change_age
instead, just like it already had a local array for last_visit_age.

PR rtl-optimization/94148
PR rtl-optimization/94042
* df-core.c (BB_LAST_CHANGE_AGE): Delete.
(df_worklist_propagate_forward): New parameter last_change_age, use
that instead of bb->aux.
(df_worklist_propagate_backward): Ditto.
(df_worklist_dataflow_doublequeue): Use a local array last_change_age.

[Bug analyzer/94099] ICE in make_region_for_unexpected_tree_code, at analyzer/region-model.cc:4874 since r10-7023-g3d66e153b40ed000

2020-03-13 Thread dmalcolm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94099

David Malcolm  changed:

   What|Removed |Added

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

--- Comment #2 from David Malcolm  ---
Should be fixed by g:5c048755ec98645f8436b630df3f9294ca9cbc2a.

[Bug analyzer/94105] ICE in get_region, at analyzer/region-model.h:1744

2020-03-13 Thread dmalcolm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94105

David Malcolm  changed:

   What|Removed |Added

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

--- Comment #2 from David Malcolm  ---
Should be fixed by g:5c048755ec98645f8436b630df3f9294ca9cbc2a.

[Bug rtl-optimization/90706] [9/10 Regression] Useless code generated for stack / register operations on AVR

2020-03-13 Thread bseifert at gmx dot at
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90706

--- Comment #8 from Berni  ---
I just compiled AVR gcc 9.3.0 and tested the code again. Still no improvement!

[Bug inline-asm/87733] local register variable not honored with earlyclobber

2020-03-13 Thread bugdal at aerifal dot cx
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87733

Rich Felker  changed:

   What|Removed |Added

 CC||bugdal at aerifal dot cx

--- Comment #10 from Rich Felker  ---
This is a rather huge bug to have been fixed silently. Could someone who knows
the commit that fixed it and information on what versions are affected attach
the info to the tracker here? And ideally some information on working around it
for older GCCs?

>From what I can tell experimenting so far, adding a dummy "0"(r0) constraint,
or using + instead of =, makes the problem go away, but potentially has other
ill effects from use of an uninitialized object..?

[Bug c++/92068] [8/9/10 Regression] ICE on invalid in process_partial_specialization

2020-03-13 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92068

Jason Merrill  changed:

   What|Removed |Added

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

[Bug c++/91966] [8/9/10 Regression] pack expansion for Cartesian product breaks if certain indirections are involved since r6-1487-g1a4cd2cd7e7266b0

2020-03-13 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91966

Jason Merrill  changed:

   What|Removed |Added

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

[Bug middle-end/94172] New: [arm-none-eabi] ICE in expand_debug_locations, at cfgexpand.c:5403

2020-03-13 Thread dtaubert at atmosic dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94172

Bug ID: 94172
   Summary: [arm-none-eabi] ICE in expand_debug_locations, at
cfgexpand.c:5403
   Product: gcc
   Version: 8.3.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dtaubert at atmosic dot com
  Target Milestone: ---

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

extern enum my_enum_type extern_enum;
extern void bar(int a);

enum my_enum_type {
my_entry
};

void foo(int a)
{
int local_enum = extern_enum;

if (a) {
__asm volatile ("bkpt 0");
local_enum = 0;
}
bar(local_enum);
}

arm/gcc-arm-none-eabi-8-2019-q3-update/bin/arm-none-eabi-gcc -o foo.o -c
-mcpu=cortex-m0 -mthumb -Os -g3 foo.c
during RTL pass: expand
foo.c: In function 'foo':
foo.c:8:6: internal compiler error: in expand_debug_locations, at
cfgexpand.c:5403
 void foo(int a)
  ^~~


Also seen with releases/gcc-9.2.0 from git://gcc.gnu.org/git/gcc.git
during RTL pass: expand
foo.c: In function ?foo?:
foo.c:8:6: internal compiler error: in expand_debug_locations, at
cfgexpand.c:5460
8 | void foo(int a)
  |  ^~~
0x67cb6b expand_debug_locations
../../gcc/cfgexpand.c:5456
0x67cb6b execute
../../gcc/cfgexpand.c:6516

gcc_assert (mode == GET_MODE (val)
|| (GET_MODE (val) == VOIDmode
&& (CONST_SCALAR_INT_P (val)
|| GET_CODE (val) == CONST_FIXED
|| GET_CODE (val) == LABEL_REF)));

[Bug middle-end/94172] [arm-none-eabi] ICE in expand_debug_locations, at cfgexpand.c:5403

2020-03-13 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94172

--- Comment #1 from Andrew Pinski  ---
>GNU Tools for Arm Embedded Processors 8-2019-q3-update

You should report this to ARM really.

[Bug c++/94044] [10 Regression] internal compiler error: in comptypes, at cp/typeck.c:1490 on riscv64-unknown-linux-gnu and arm-eabi

2020-03-13 Thread wilson at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94044

Jim Wilson  changed:

   What|Removed |Added

 CC||wilson at gcc dot gnu.org

--- Comment #7 from Jim Wilson  ---
I made an attempt to reproduce this.  I wasn't able to reproduce with an
arm-eabi build.  I was able to reproduce with a riscv64-linux build.  The funny
part is that I was able to build two compilers from the same gcc sources, one
which reproduces and one which does not, which differ only in exactly how I did
the build.  For the failing build, I had a complete riscv-gnu-toolchain build
available when configuring.  For the working build it was just binutils and gcc
without glibc/linux header files, and a top-of-tree binutils version unlike the
first build.

Debugging the two side by side, I see that execution diverges at line 9680 in
cp/pt.c
  entry = type_specializations->find_with_hash (&elt, hash);
The working compiler has no hash hit and returns zero.  The failing compiler
has a hash hit, and then dies inside spec_hasher::equal.

In the spec_hasher::equal function I see

(gdb) print *e1
$29 = {tmpl = ,
  args = , spec = }
(gdb) print *e2
$30 = {tmpl = ,
  args = , spec = }

(gdb) pt
 
unit-size 
align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x75deb7e0 precision:64 min  max 
pointer_to_this >
readonly
arg:0  elt:1 >
type_0 type_6 VOID
align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x75ef4540>
tmp.C:13:23 start: tmp.C:13:23 finish: tmp.C:13:35>>
(gdb) print e2->args
$32 = 
(gdb) pt
 
unit-size 
align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x75deb7e0 precision:64 min  max 
pointer_to_this >
readonly
arg:0  elt:1 >
type_0 type_6 VOID
align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x75efa2a0>
tmp.C:13:23 start: tmp.C:13:23 finish: tmp.C:13:35>>
(gdb) 

It then eventually dies inside comptypes because TREE_CODE (t1) is
type_pack_expansion.  And also TREE_CODE (t2) is type_pack_expansion.  This is
called from the SIZEOF_EXPR case in cp_tree_equal.

If tree addresses are being used for the hash codes, this could just be bad
luck whether it fails or not.

[Bug c/93218] Test bug for testing git email integration

2020-03-13 Thread cvs-commit at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93218

--- Comment #30 from CVS Commits  ---
 PR c/93218 - Testing

[Bug c/93218] Test bug for testing git email integration

2020-03-13 Thread cvs-commit at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93218

--- Comment #31 from CVS Commits  ---
 PR c/93218 - Testing

[Bug c/93218] Test bug for testing git email integration

2020-03-13 Thread cvs-commit at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93218

--- Comment #32 from CVS Commits  ---
 PR c/93218 - Testing

[Bug c/93218] Test bug for testing git email integration

2020-03-13 Thread cvs-commit at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93218

--- Comment #33 from CVS Commits  ---
 PR c/93218 - Testing

[Bug target/92318] Nondeterministic ICE with -mcmodel=large -O2

2020-03-13 Thread me at cgf dot cx
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92318

--- Comment #8 from cgf at gcc dot gnu.org  ---
email from sourceware

[Bug target/92318] Nondeterministic ICE with -mcmodel=large -O2

2020-03-13 Thread cgf-use-the-mailinglist-please at gnu dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92318

--- Comment #9 from cgf-use-the-mailinglist-please at gnu dot org ---
email from cgf.cx

[Bug c/93218] Test bug for testing git email integration

2020-03-13 Thread cvs-commit at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93218

--- Comment #34 from CVS Commits  ---
PR c/93218 - Testing

[Bug c/93218] Test bug for testing git email integration

2020-03-13 Thread cvs-commit at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93218

--- Comment #35 from CVS Commits  ---
PR c/93218 - Testing