[Bug target/66488] segfault on sizeof(long) < sizeof(void*) and large GCC memory usage

2018-11-19 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66488

Martin Liška  changed:

   What|Removed |Added

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

--- Comment #20 from Martin Liška  ---
Thanks, closing then.

[Bug ada/81878] --disable-bootstrap --enable-languages=ada fails

2018-11-19 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81878

Eric Botcazou  changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |9.0

--- Comment #56 from Eric Botcazou  ---
> Fixed in the trunk.  Does anyone care enough to backport it?

I don't think that there is a need for it.  Thanks for sorting this out!

[Bug tree-optimization/88105] New: Possibly infinite loop in pass_dominator::execute

2018-11-19 Thread asolokha at gmx dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88105

Bug ID: 88105
   Summary: Possibly infinite loop in pass_dominator::execute
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Keywords: compile-time-hog, openmp
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: asolokha at gmx dot com
  Target Milestone: ---

gcc-9.0.0-alpha20181118 snapshot (r266255), 8.2, 7.3, 6.3, 5.4, 4.9.4, 4.8.5
all take indefinite time compiling the following snippet at any optimization
level (except -Og) and w/ -fexceptions -fnon-call-exceptions -fopenmp
-fno-tree-fre:

int
s0 (void)
{
  int g6, oh = 0;
  int *a6 = 

  (void) a6;

#pragma omp parallel for
  for (g6 = 0; g6 < 1; ++g6)
{
  int zk;

  for (zk = 0; zk < 1; ++zk)
{
  oh += zk / (zk + 1);

  for (;;)
{
}
}

  a6 = 
}

  return oh;
}

% timeout 10 gcc-9.0.0-alpha20181118 -O1 -fexceptions -fnon-call-exceptions
-fopenmp -fno-tree-fre -c eusbqkjq.c
zsh: exit 124   timeout 10 gcc-9.0.0-alpha20181118 -O1 -fexceptions
-fnon-call-exceptions   -

[Bug testsuite/88104] sparc-solaris2.11 testsuite failures due to unrecognized as option -m32

2018-11-19 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88104

--- Comment #2 from Martin Sebor  ---
The failing tests are compile-only (don't involve the assembler), and would
pass even with a default-configured GCC.  The reason why they fail is that the
large_long_double DejaGnu configuration test both compiles and assembles the
test, and the latter step fails.  The following fixes it:

@@ -2664,7 +2664,7 @@ proc check_effective_target_large_long_double { }
 # 0 otherwise.

 proc check_effective_target_large_double { } {
-return [check_no_compiler_messages large_double object {
+return [check_no_compiler_messages large_double assembly {
int dummy[sizeof(double) > sizeof(float) ? 1 : -1];
 }]
 }

[Bug target/85673] ICE in create_pre_exit, at mode-switching.c:451

2018-11-19 Thread asolokha at gmx dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85673

--- Comment #2 from Arseny Solokha  ---
The testcase from comment 0 doesn't fail for me anymore w/ the current trunk
snapshots (as of 266255), while the following one does w/ -mavx -O1 (-O2, -O3,
-Ofast, -Og) -fexpensive-optimizations -fschedule-insns -fselective-scheduling
-fno-dce -fno-tree-dce -fno-tree-ter --param selsched-max-lookahead=5:

int
b3 (ks)
{
  int ot;

  ot = (ks == 1) == (b3 (ks + 1) + 1);
  (void) ot;

  return ks;
}

But isn't this PR basically a duplicate of PR88070?

[Bug tree-optimization/88074] [7/8/9 Regression] g++ hangs on math expression

2018-11-19 Thread joseph at codesourcery dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88074

--- Comment #13 from joseph at codesourcery dot com  ---
MPFR deals with larger exponent ranges for intermediate computations 
itself (MPFR functions generally set the maximum possible exponent range 
internally).  MPC generally doesn't seem to, so quite likely setting an 
exponent range could show up some MPC bugs.

[Bug tree-optimization/88074] [7/8/9 Regression] g++ hangs on math expression

2018-11-19 Thread joseph at codesourcery dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88074

--- Comment #12 from joseph at codesourcery dot com  ---
Note that such issues are not unique to ctan.

E.g., compiling __builtin_jn (10, 1e10) will produce such a hang.  
The difference is that in the ctan case the additional algorithm needed in 
MPC to avoid huge precision being needed for such cases would be 
reasonable simple, whereas fast and accurate computation of high-order 
Bessel functions is much harder (there's some literature on the subject, 
which I haven't studied in detail, but certainly additional algorithms 
needed there in MPFR would be much more involved).

[Bug c/88091] [9 regression] c-c++-common/Wconversion-real.c etc. FAIL

2018-11-19 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88091

Martin Sebor  changed:

   What|Removed |Added

   Keywords||patch

--- Comment #3 from Martin Sebor  ---
Patch: https://gcc.gnu.org/ml/gcc-patches/2018-11/msg01674.html

[Bug d/88039] gdc.test/compilable/ddoc12.d FAILs

2018-11-19 Thread joseph at codesourcery dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88039

--- Comment #3 from joseph at codesourcery dot com  ---
On Mon, 19 Nov 2018, ro at CeBiTec dot Uni-Bielefeld.DE wrote:

> However, there's another option: C11, 6.4.2.1 General, n.71 suggests
> 
> On systems in which linkers cannot accept extended characters, an
> encoding of the universal character name may be used in forming valid
> external identifiers. For example, some otherwise unused character or
> sequence of characters may be used to encode the \u in a universal
> character name.  Extended characters may produce a long external
> identifier

Since we don't do any such encoding for C or C++, this is not suitable for 
any case where the identifiers are meant to be link-compatible with C or 
C++ (unless we implement such encoding for C and C++ on target OSes that 
need it, presumably in a way ABI-compatible with how the OSes' own 
compilers handle UCNs in identifiers if they support that feature, of 
course).

[Bug other/16615] throughout gcc docu and code numerous "can not"'s appear

2018-11-19 Thread joseph at codesourcery dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=16615

--- Comment #7 from joseph at codesourcery dot com  ---
Note there are a few places where it's "cannot", 
which the most obvious find/sed might not locate.  E.g. in lra-remat.c:

/* Map: insn -> candidate representing it.  It is null if the insn can
   not be used for rematerialization.  */

or in reorg.c:

 We can not steal the delay list if one of the instructions in the
 current delay_list modifies the condition codes and the jump in the
 sequence is a conditional jump. We can not do this because we can
 not change the direction of the jump because the condition codes
 will effect the direction of the jump in the sequence.  */

(found via examining the output of "grep -C1 'can$'" for following lines 
starting with "not" after whitespace).

[Bug ada/81878] --disable-bootstrap --enable-languages=ada fails

2018-11-19 Thread aoliva at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81878

--- Comment #55 from Alexandre Oliva  ---
Fixed in the trunk.  Does anyone care enough to backport it?

[Bug ada/81878] --disable-bootstrap --enable-languages=ada fails

2018-11-19 Thread aoliva at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81878

--- Comment #54 from Alexandre Oliva  ---
Author: aoliva
Date: Tue Nov 20 00:07:47 2018
New Revision: 266290

URL: https://gcc.gnu.org/viewcvs?rev=266290=gcc=rev
Log:
PR81878: fix --disable-bootstrap --enable-languages=ada

gnattools build machinery uses just-build xgcc and xg++ as $(CC) and
$(CXX) in native builds.  However, if C and C++ languages are not
enabled, it won't find them.  So, enable C and C++ if Ada is enabled.
Most of the time, this is probably no big deal: C is always enabled
anyway, and C++ is already enabled for bootstraps.

We need not enable those for cross builds, however.  At first I just
took the logic from gnattools/configure, but found it to be lacking:
it would use the just-built tools even in cross-back settings, whose
tools just built for the host would not run on the build machine.  So
I've narrowed down the test to rely on autoconf-detected cross-ness
(build->host only), but also to ensure that host matches build, and
that target matches host.

I've considered sourcing ada/config-lang.in from within
gnattools/configure, and testing lang_requires as set by it, so as to
avoid a duplication of tests that ought to remain in sync, but decided
it would be too fragile, as ada/config-lang.in does not expect srcdir
to refer to gnattools.

for  gcc/ada/ChangeLog

PR ada/81878
* gcc-interface/config-lang.in (lang_requires): Set to "c c++"
when gnattools wants it.

for  gnattools/ChangeLog

PR ada/81878
* configure.ac (default_gnattools_target): Do not mistake
just-built host tools as native in cross-back toolchains.
* configure: Rebuilt.

Modified:
trunk/gcc/ada/ChangeLog
trunk/gcc/ada/gcc-interface/config-lang.in
trunk/gnattools/ChangeLog
trunk/gnattools/configure
trunk/gnattools/configure.ac

[Bug rtl-optimization/71496] Two picbase loads created for libjava code on powerpc-darwin after rev 228022.

2018-11-19 Thread iains at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71496

--- Comment #11 from Iain Sandoe  ---
(In reply to Segher Boessenkool from comment #10)
> Tobias: Yes, please file a new bug (with a small testcase, if possible).
> Thanks!

FAOD, comment #6 is the only reason to keep this open - so when a new bug is
filed for the missed optimisation(s) we can close this one.

[Bug c/88091] [9 regression] c-c++-common/Wconversion-real.c etc. FAIL

2018-11-19 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88091

Martin Sebor  changed:

   What|Removed |Added

   Keywords||diagnostic
 Status|NEW |ASSIGNED
  Component|testsuite   |c
   Assignee|unassigned at gcc dot gnu.org  |msebor at gcc dot 
gnu.org

--- Comment #2 from Martin Sebor  ---
This is due to a bug introduced in r266194.

[Bug c/52382] Atomic builtins documentation, page not found

2018-11-19 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52382

Jonathan Wakely  changed:

   What|Removed |Added

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

--- Comment #6 from Jonathan Wakely  ---
(In reply to sandra from comment #5)
> 7+ years later  I would not recommend changing the manual node name just
> to fix a dead link on a wiki page that hasn't been touched since 2012 and
> that documents the status of this feature as of the GCC 4.4 release.

Sure, it doesn't make sense now. Back in 2012 when texinfo changed all the
names of the generated HTML pages it might have made more sense.

>  If
> anybody wants to update the wiki, they're welcome to.

Done.

[Bug ipa/87957] [9 Regression] ICE tree check: expected tree that contains ‘decl minimal’ structure, have ‘identifier_node’ in warn_odr, at ipa-devirt.c:1051 since r265519

2018-11-19 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87957

--- Comment #7 from Jan Hubicka  ---
Author: hubicka
Date: Mon Nov 19 23:27:10 2018
New Revision: 266289

URL: https://gcc.gnu.org/viewcvs?rev=266289=gcc=rev
Log:

PR lto/87957
* ipa-devirt.c (free_enum_values): Do not ICE on ODR vilations.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/ipa-devirt.c

[Bug c++/88103] [7/8/9 Regression] Wrong value category when conditional expression result is used as object expression

2018-11-19 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88103

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
  Known to work||5.5.0
   Keywords||rejects-valid
   Last reconfirmed||2018-11-19
 CC||jason at gcc dot gnu.org
 Ever confirmed|0   |1
Summary|Wrong value category when   |[7/8/9 Regression] Wrong
   |conditional expression  |value category when
   |result is used as object|conditional expression
   |expression  |result is used as object
   ||expression
  Known to fail||6.5.0, 7.3.1, 8.2.1, 9.0

--- Comment #1 from Jonathan Wakely  ---
This compiled OK with GCC 5, but started to be rejected with r230365, "Merge
C++ delayed folding branch"

[Bug rtl-optimization/71496] Two picbase loads created for libjava code on powerpc-darwin after rev 228022.

2018-11-19 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71496

--- Comment #10 from Segher Boessenkool  ---
Tobias: Yes, please file a new bug (with a small testcase, if possible).
Thanks!

[Bug c/88088] -Wtrampolines should be enabled by -Wall (or -Wextra)

2018-11-19 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88088

--- Comment #3 from Segher Boessenkool  ---
It is good that it doesn't warn if trampolines are not data.  This is not
documented, fwiw.

It also warns if the stack is executable *anyway*, like it is for many
targets.  This is not useful; as documented, the point of the warning is
to warn the user that the stack is made executable because some trampoline
somewhere needs it.  Not warn the user that there is a trampoline
somewhere(*), which would be as useful as warning the user that the program
source code is a multiple of six lines long, which is exactly as harmful :-P


(*) Which, as you say, is not what it does anyway!

[Bug middle-end/87836] ICE in cc1 for gcc-6.5.0 with SPARC hardware

2018-11-19 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87836

--- Comment #15 from Eric Botcazou  ---
> Regarding your suggestion, is there a way to get the compiler to reveal the
> steps it goes through in compiling the program?  All I get now is the
> backtrace when it hits the error.  I need to know what the compiler is doing
> before that.

You could break on execute_build_cfg and run the program until it is hit on the
x86 and SPARC machines.  Then add breakpoints on the various routines in the
et-forest.c file and find out when the null pointer is created on SPARC.

[Bug c/52382] Atomic builtins documentation, page not found

2018-11-19 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52382

sandra at gcc dot gnu.org changed:

   What|Removed |Added

 CC||sandra at gcc dot gnu.org

--- Comment #5 from sandra at gcc dot gnu.org ---
7+ years later  I would not recommend changing the manual node name just to
fix a dead link on a wiki page that hasn't been touched since 2012 and that
documents the status of this feature as of the GCC 4.4 release.  If anybody
wants to update the wiki, they're welcome to.

[Bug fortran/52473] CSHIFT slow - inline it?

2018-11-19 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473

--- Comment #21 from Dominique d'Humieres  ---
> The original test case is still slow, so I guess we should
> keep this open.

Which test?

[Bug driver/50250] Driver documentation on -l does not mention shared libraries

2018-11-19 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50250

sandra at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||sandra at gcc dot gnu.org
 Resolution|--- |FIXED

--- Comment #7 from sandra at gcc dot gnu.org ---
Fixed on trunk.  I ended up writing a new patch from scratch rather than using
the wording suggested in comment 4.

[Bug driver/50250] Driver documentation on -l does not mention shared libraries

2018-11-19 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50250

--- Comment #6 from sandra at gcc dot gnu.org ---
Author: sandra
Date: Mon Nov 19 21:53:09 2018
New Revision: 266287

URL: https://gcc.gnu.org/viewcvs?rev=266287=gcc=rev
Log:
2018-11-19  Sandra Loosemore  

PR driver/50250

gcc/
* doc/invoke.texi (Link Options): Mention shared libraries
in documentation for the -l option.  Simplify discussion and
point to the system linker documentation for details.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/doc/invoke.texi

[Bug testsuite/88104] sparc-solaris2.11 testsuite failures due to unrecognized as option -m32

2018-11-19 Thread ro at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88104

Rainer Orth  changed:

   What|Removed |Added

 CC||ro at gcc dot gnu.org

--- Comment #1 from Rainer Orth  ---
You need to configure with --with-gnu-as if using gas: the Solaris port
defaults
to /bin/as.

Besides, there are gcc210 and gcc211 in the cfarm where you can test Solaris 10
and 11/SPARC natively.

[Bug c++/87781] template disambiguator not after `::`, `.` or `->` is incorrectly accepted in an elaborated-type-specifier

2018-11-19 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87781

Marek Polacek  changed:

   What|Removed |Added

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

--- Comment #2 from Marek Polacek  ---
Fixed for GCC 9.

[Bug testsuite/88098] FAIL: gcc.dg/Wbuiltin-declaration-mismatch-4.c (test for warnings, line 80)

2018-11-19 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88098

Martin Sebor  changed:

   What|Removed |Added

   Keywords||patch
   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=88104

--- Comment #1 from Martin Sebor  ---
Patch: https://gcc.gnu.org/ml/gcc-patches/2018-11/msg01661.html

[Bug c++/87781] template disambiguator not after `::`, `.` or `->` is incorrectly accepted in an elaborated-type-specifier

2018-11-19 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87781

--- Comment #1 from Marek Polacek  ---
Author: mpolacek
Date: Mon Nov 19 21:37:01 2018
New Revision: 266285

URL: https://gcc.gnu.org/viewcvs?rev=266285=gcc=rev
Log:
PR c++/87781 - detect invalid elaborated-type-specifier.
* parser.c (cp_parser_elaborated_type_specifier): Ensure that
typename follows a nested-name-specifier.

* g++.dg/parse/elab3.C: New test.
* g++.dg/template/crash115.C: Adjust dg-error.

Added:
trunk/gcc/testsuite/g++.dg/parse/elab3.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/template/crash115.C

[Bug testsuite/88104] New: sparc-solaris2.11 testsuite failures due to unrecognized as option -m32

2018-11-19 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88104

Bug ID: 88104
   Summary: sparc-solaris2.11 testsuite failures due to
unrecognized as option -m32
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
  Assignee: unassigned at gcc dot gnu.org
  Reporter: msebor at gcc dot gnu.org
  Target Milestone: ---

A number of compile-only tests fail with the sparc-solaris2.11 cross-compiler
on an x86_64-linux host due to what seems to be an incorrect assembler option. 
For example:

$ make -C /ssd/build/sparc-solaris2.11/gcc-svn/gcc check-c
RUNTESTFLAGS="dg.exp=Wbuiltin-declaration-mismatch-4.c
...
Running /ssd/src/gcc/svn/gcc/testsuite/gcc.dg/dg.exp ...
FAIL: gcc.dg/Wbuiltin-declaration-mismatch-4.c (test for excess errors)

=== gcc Summary ===

# of expected passes21
# of unexpected failures1
# of expected failures  1
/ssd/build/sparc-solaris2.11/gcc-svn/gcc/xgcc  version 9.0.0 20181117
(experimental) (GCC) 

I think the test fails because the harness incorrectly configures the
large_long_double variable (the target has support for large long double but
the harness variable is set to false).  The relevant snippet from gcc.log is:

Executing on host: /ssd/build/sparc-solaris2.11/gcc-svn/gcc/xgcc
-B/ssd/build/sparc-solaris2.11/gcc-svn/gcc/-fno-diagnostics-show-caret
-fno-diagnostics-show-line-numbers -fdiagnostics-color=never  -c -o
large_long_double9364.o large_long_double9364.c(timeout = 300)
spawn -ignore SIGHUP /ssd/build/sparc-solaris2.11/gcc-svn/gcc/xgcc
-B/ssd/build/sparc-solaris2.11/gcc-svn/gcc/ -fno-diagnostics-show-caret
-fno-diagnostics-show-line-numbers -fdiagnostics-color=never -c -o
large_long_double9364.o large_long_double9364.c
/ssd/build/sysroot/sparc-solaris2.11/sparc-solaris2.11/bin/as: unrecognized
option '-m32'
compiler exited with status 1

[Bug fortran/40196] [F03] [F08] Type parameter inquiry (str%len, a%kind) and Complex parts (z%re, z%im)

2018-11-19 Thread harper at msor dot vuw.ac.nz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=40196

--- Comment #13 from harper at msor dot vuw.ac.nz ---
OK

On Mon, 19 Nov 2018, marxin at gcc dot gnu.org wrote:

> Date: Mon, 19 Nov 2018 11:51:27 +
> From: marxin at gcc dot gnu.org 
> To: John Harper 
> Subject: [Bug fortran/40196] [F03] [F08] Type parameter inquiry (str%len,
> a%kind) and Complex parts (z%re, z%im)
> Resent-Date: Tue, 20 Nov 2018 00:51:55 +1300 (NZDT)
> Resent-From: 
> 
> https://apac01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgcc.gnu.org%2Fbugzilla%2Fshow_bug.cgi%3Fid%3D40196data=02%7C01%7Cjohn.harper%40vuw.ac.nz%7Cb5d00c897cbb4ce5b3f608d64e1559dc%7Ccfe63e236951427e8683bb84dcf1d20c%7C0%7C0%7C636782250968185848sdata=MZE8e3vkP6E2081IHpNXIV7yZ1%2FmC3He%2FUYLOF57nAQ%3Dreserved=0
>
> Martin Liška  changed:
>
>   What|Removed |Added
> 
> CC||marxin at gcc dot gnu.org
>
> --- Comment #12 from Martin Liška  ---
> Can the bug be marked as resolved?
>
> -- 
> You are receiving this mail because:
> You are on the CC list for the bug.
>


-- John Harper, School of Mathematics and Statistics
Victoria Univ. of Wellington, PO Box 600, Wellington 6140, New Zealand.
e-mail john.har...@vuw.ac.nz phone (+64)(4)463 5276 fax (+64)(4)463 5045

[Bug fortran/52473] CSHIFT slow - inline it?

2018-11-19 Thread tkoenig at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52473

--- Comment #20 from Thomas Koenig  ---
The original test case is still slow, so I guess we should
keep this open.

[Bug c++/88103] New: Wrong value category when conditional expression result is used as object expression

2018-11-19 Thread okannen at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88103

Bug ID: 88103
   Summary: Wrong value category when conditional expression
result is used as object expression
   Product: gcc
   Version: 8.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: okannen at gmail dot com
  Target Milestone: ---

In the code below, if the conditional expression is an xvalue, and only when
this xvalue is used as the object expression in class member access, gcc treat
it as if it were an lvalue. The problem does not happen when the conditional
expression is a prvalue:


struct A {
A(int);
A&& foo() && ;
int i;
};
void free(A&&);

void test_xvalue(A a){
  //No error
  A&& ref = true? static_cast(a) : static_cast(a); 

  //No error
  free(true? static_cast(a) : static_cast(a));

  //Unexpected error: passing A as this discard qualifier
  (true? static_cast(a) : static_cast(a)).foo();

  //Unexpected error: error cannot bind rvalue reference 
  //  of type int&& to lvalue of type int
  int&& k=(true? static_cast(a) : static_cast(a)).i;
}
void test_prvalue(A a){
  //No error
  A&& ref = true? static_cast(a) : 1; 

  //No error
  free(true? static_cast(a) : 1);

  //No error
  (true? static_cast(a) : 1).foo();

  //No error
  int&& k=(true? static_cast(a) : 1).i;
}

[Bug c++/88028] internal compiler error: in reshape_init_r, at cp/decl.c:6159

2018-11-19 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88028

Marek Polacek  changed:

   What|Removed |Added

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

--- Comment #7 from Marek Polacek  ---
Closing thus.

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

[Bug c++/80864] [7/8/9/ Regression] Brace-initialization of a constexpr variable of an array in a POD triggers ICE from templates

2018-11-19 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80864

--- Comment #6 from Marek Polacek  ---
*** Bug 88028 has been marked as a duplicate of this bug. ***

[Bug c++/80864] [7/8/9/ Regression] Brace-initialization of a constexpr variable of an array in a POD triggers ICE from templates

2018-11-19 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80864

--- Comment #5 from Marek Polacek  ---
Another test from PR88028:

struct S {};
struct A { S s[1]; };

template 
struct R { static constexpr auto h = A{S{}}; };

A foo = R::h;

[Bug tree-optimization/87025] [9 Regression] ICE in add_record, at optinfo-emit-json.cc:175

2018-11-19 Thread dmalcolm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87025

David Malcolm  changed:

   What|Removed |Added

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

--- Comment #8 from David Malcolm  ---
Should be fixed by r266280.

[Bug target/88070] [8/9 Regression] ICE in create_pre_exit, at mode-switching.c:438

2018-11-19 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88070

--- Comment #4 from Uroš Bizjak  ---
BTW: The extra blockage would crash compilation for all mode-switching
targets, also in the pre-reload mode switching; the vzeroupper
post-reload insertion just trips x86 target on a generic problem in
the middle-end.

Proposed patch:

--cut here--
Index: function.c
===
--- function.c  (revision 266278)
+++ function.c  (working copy)
@@ -5447,13 +5447,6 @@ expand_function_end (void)
   if (naked_return_label)
 emit_label (naked_return_label);

-  /* @@@ This is a kludge.  We want to ensure that instructions that
- may trap are not moved into the epilogue by scheduling, because
- we don't always emit unwind information for the epilogue.  */
-  if (cfun->can_throw_non_call_exceptions
-  && targetm_common.except_unwind_info (_options) != UI_SJLJ)
-emit_insn (gen_blockage ());
-
   /* If stack protection is enabled for this function, check the guard.  */
   if (crtl->stack_protect_guard && targetm.stack_protect_runtime_enabled_p ())
 stack_protect_epilogue ();
--cut here--

[Bug target/44551] [missed optimization] AVX vextractf128 after vinsertf128

2018-11-19 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44551

--- Comment #21 from Marc Glisse  ---
(In reply to Matthias Kretz from comment #20)
> The original issue I meant to report is fixed. There are many more missed
> optimizations in the original example, though.

ok, your choice if you prefer to close it (especially if the other missed
optimizations are already tracked in other bugs) or leave it open.

[Bug target/88070] [8/9 Regression] ICE in create_pre_exit, at mode-switching.c:438

2018-11-19 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88070

--- Comment #3 from Uroš Bizjak  ---
For reference:

The assert in create_pre_exit at mode-switching.c expects return copy
pair with nothing in between. However, the compiler starts mode
switching pass with the following sequence:

(insn 19 18 16 2 (set (reg:V2SF 21 xmm0)
(mem/c:V2SF (plus:DI (reg/f:DI 7 sp)
(const_int -72 [0xffb8])) [0  S8 A64]))
"pr88070.c":8 1157 {*movv2sf_internal}
 (nil))
(insn 16 19 20 2 (set (reg:V2SF 0 ax [orig:91  ] [91])
(reg:V2SF 0 ax [89])) "pr88070.c":8 1157 {*movv2sf_internal}
 (nil))
(insn 20 16 21 2 (unspec_volatile [
(const_int 0 [0])
] UNSPECV_BLOCKAGE) "pr88070.c":8 710 {blockage}
 (nil))
(insn 21 20 23 2 (use (reg:V2SF 21 xmm0)) "pr88070.c":8 -1
 (nil))

Please note how (insn 16) interferes with (insn 19)-(insn 21) return copy pair.

The culprit for this is the blockage instruction (insn 20), which
causes sched1 pass (pre reload scheduler) to skip marking (insn 19) as
unmovable instruction (as a dependent insn on return use insn), so the
scheduler is free to schedule (insn 16) between return copy pair (insn
19)-(insn 21).

The extra instruction is generated as a kludge in expand_function_end
to prevent instructions that may trap to be scheduled into function
epilogue. However, the same blockage is generated under exactly the
same conditions earlier in the expand_function_end. The first blockage
should prevent unwanted scheduling into the epilogue, so there is
actually no need for the second one.

[Bug tree-optimization/57371] Simplify (double)i != 0

2018-11-19 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57371

--- Comment #10 from Marc Glisse  ---
(In reply to Yury Gribov from comment #9)
> TBH I didn't implement all Josephs suggestions (particularly my patch does
> not try to optimize more under -ffast-math and friends)...

Your choice if you want to reopen...

[Bug tree-optimization/31130] [7/8 Regression] VRP no longer derives range for division after negation

2018-11-19 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=31130

Michael Matz  changed:

   What|Removed |Added

 CC||matz at gcc dot gnu.org
Summary|[7/8/9 Regression] VRP no   |[7/8 Regression] VRP no
   |longer derives range for|longer derives range for
   |division after negation |division after negation

--- Comment #30 from Michael Matz  ---
As far as I can tell this is fixed in gcc-9 (and should be in gcc-8 as well).
Certainly all testcases herein are optimized as expected.

[Bug rtl-optimization/71785] Computed gotos are mostly optimized away

2018-11-19 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71785

Segher Boessenkool  changed:

   What|Removed |Added

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

--- Comment #11 from Segher Boessenkool  ---
Yeah, backports didn't happen, and this was two years ago already.  Closing.

[Bug libstdc++/71500] regex::icase only works on first character in a range

2018-11-19 Thread flashmozzg at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71500

--- Comment #20 from Danila  ---
Can confirm that it was fixed in 8.1

[Bug c++/88102] New: Implement P0542R5, C++20 contracts

2018-11-19 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88102

Bug ID: 88102
   Summary: Implement P0542R5, C++20 contracts
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jason at gcc dot gnu.org
CC: andrew.n.sutton at gmail dot com
  Target Milestone: ---

...as revised by P1289R1.

(I'm creating PRs for new features so there's some way of tracking whether
someone's working on them)

[Bug libstdc++/88101] New: Implement P0528R3, C++20 cmpxchg and padding bits

2018-11-19 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88101

Bug ID: 88101
   Summary: Implement P0528R3, C++20 cmpxchg and padding bits
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jason at gcc dot gnu.org
  Target Milestone: ---

Although this paper was moved by Core at the meeting, it's a change to the
library atomics clause.  Do you need compiler support for this?  It seems
fairly straightforward to handle types for which
has_unique_object_representations is false by zeroing the storage as the first
step of initialization.

[Bug rtl-optimization/88033] [9 Regression] ICE on valid code at -O2 and -O3 on x86-64-linux-gnu: in remove_some_program_points_and_update_live_ranges, at lra-lives.c:1179

2018-11-19 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88033

Peter Bergner  changed:

   What|Removed |Added

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

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

[Bug rtl-optimization/88033] [9 Regression] ICE on valid code at -O2 and -O3 on x86-64-linux-gnu: in remove_some_program_points_and_update_live_ranges, at lra-lives.c:1179

2018-11-19 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88033

--- Comment #4 from Peter Bergner  ---
Author: bergner
Date: Mon Nov 19 19:35:51 2018
New Revision: 266282

URL: https://gcc.gnu.org/viewcvs?rev=266282=gcc=rev
Log:
gcc/
PR rtl-optimization/88033
* ira-lives.c (non_conflicting_reg_copy_p): Skip copies from a register
to itself.  Use HARD_REGISTER_NUM_P.

gcc/testsuite/
PR rtl-optimization/88033
* gcc.target/i386/pr88033.c: New test.

Added:
trunk/gcc/testsuite/gcc.target/i386/pr88033.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ira-lives.c
trunk/gcc/testsuite/ChangeLog

[Bug libstdc++/78968] conflict between gnu's __cxa_thread_atexit and LLVM's/FreeBSD's implementation

2018-11-19 Thread h2+bugs at fsfe dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78968

Hannes Hauswedell  changed:

   What|Removed |Added

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

--- Comment #20 from Hannes Hauswedell  ---
Yes, this was fixed, thanks!

[Bug rtl-optimization/71496] Two picbase loads created for libjava code on powerpc-darwin after rev 228022.

2018-11-19 Thread tobias.netzel at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71496

--- Comment #9 from Tobias Netzel  ---
Any opinion regarding my comment? Should I file a new bug for that?
Without PIC enabled unconditionally saving and restoring R31 is obviously a
waste of time and stack space...

[Bug c/88088] -Wtrampolines should be enabled by -Wall (or -Wextra)

2018-11-19 Thread mark at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88088

--- Comment #2 from Mark Wielaard  ---
(In reply to Segher Boessenkool from comment #1)
> This also would warn for targets where it is not an issue at all (where
> trampolines are just data, or where the stack is executable anyway, or where
> there is no such "executable" concept at all, for example).

Do you have an example where -Wtrampolines warns unnecessarily?

I might be reading the code wrong, but the trampolines warning is guarded by
on_stack and targetm.calls.custom_function_descriptors != 0. So I believe it
wouldn't warn in case the trampoline is generated on the heap or if the target
uses descriptors for nested functions (which eliminates the need for
trampolines that reside on the stack and require it to be made executable).

[Bug rtl-optimization/87718] [9 Regression] FAIL: gcc.target/i386/avx512dq-concatv2si-1.c

2018-11-19 Thread vmakarov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87718

--- Comment #6 from Vladimir Makarov  ---
The culprit for the bad code generation is the following insn description

(define_insn "*movsi_internal"
  [(set (match_operand:SI 0 "nonimmediate_operand"
"=r,m ,*y,*y,?*y,?m,?r,?*y,*v,*v,*v,m ,?r,?*v,*k,*k ,*rm")
(match_operand:SI 1 "general_operand"
"g ,re,C ,*y,m  ,*y,*y,r  ,C ,*v,m ,*v,*v,r  ,*r,*km,*k"))]

Alternatives with sse regs are not considered at all (hint *) for cost
calculation even if one operand is sse hard reg.  And therefore sse class for
another operand with pseudo is too costly.

Removing the hints is not a solution.  I believe we will have even more
problems with GCC testsuite.  So I am trying to solve it with specific
treatment of moves for cost calculations.  The patch I am working on solves the
PR but currently creates a few GCC testsuite failures (unexpected but correct
code generation).  So I am continuing to work on the PR.

[Bug sanitizer/64839] libsanitizer shouldn't require

2018-11-19 Thread harald at gigawatt dot nl
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64839

Harald van Dijk  changed:

   What|Removed |Added

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

--- Comment #20 from Harald van Dijk  ---
(In reply to Martin Liška from comment #19)
> Can the bug be marked as resolved?

Yes, sorry for missing the earlier request to do so.

[Bug libfortran/78314] [aarch64] ieee_support_halting does not report unsupported fpu traps correctly

2018-11-19 Thread nsz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78314

--- Comment #10 from nsz at gcc dot gnu.org ---
it turns out the ieee_* functions are allowed in const expressions so they need
to work at compile time too (see bug 78449), which of course won't work if they
need runtime detection.

so now compile-time and runtime behaviour of ieee_support_halting is different.

so far no fortran expert clarified what is the expected semantics when you can
only decide this at runtime (e.g. it might be better to always return false on
targets that may not implement trapping, rather than report things
inconsistently compile- vs runtime).

(i think this bug can be closed, but then the other one has to be reopened).

[Bug testsuite/88098] FAIL: gcc.dg/Wbuiltin-declaration-mismatch-4.c (test for warnings, line 80)

2018-11-19 Thread ro at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88098

Rainer Orth  changed:

   What|Removed |Added

   Target Milestone|--- |9.0

[Bug target/88100] no warning reported when value for vec_splat_{su}{8,16} would overflow

2018-11-19 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88100

Segher Boessenkool  changed:

   What|Removed |Added

 Target|powerpc*|powerpc*-*-*
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-11-19
 CC||segher at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Segher Boessenkool  ---
Confirmed.  vec_splat_* do not check the range of their argument, apparently.

[Bug target/88100] New: no warning reported when value for vec_splat_{su}{8,16} would overflow

2018-11-19 Thread pc at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88100

Bug ID: 88100
   Summary: no warning reported when value for
vec_splat_{su}{8,16} would overflow
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: pc at gcc dot gnu.org
  Target Milestone: ---

Created attachment 45036
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45036=edit
test case

$ cat bug.c
#include 
void foo() {
  signed char cs0 = 0x100;
  unsigned char cu0= 0x100;
  signed short ss0 = 0x1;
  unsigned short su0= 0x1;
  signed int is0 = 0x1;
  unsigned int iu0= 0x1;
  vector signed char v8 = vec_splat_s8(256);
  vector unsigned char v11 = vec_splat_u8(256);
  vector signed short v12 = vec_splat_s16(0x1);
  vector unsigned short v13 = vec_splat_u16(0x1);
  vector signed int v14 = vec_splat_s32(0x1);
  vector unsigned int v15 = vec_splat_u32(0x1);
}
$ gcc -c bug.c
bug.c: In function ‘foo’:
bug.c:3:21: warning: overflow in conversion from ‘int’ to ‘signed char’ changes
value from ‘256’ to ‘0’ [-Woverflow]
   signed char cs0 = 0x100;
 ^
bug.c:4:22: warning: unsigned conversion from ‘int’ to ‘unsigned char’ changes
value from ‘256’ to ‘0’ [-Woverflow]
   unsigned char cu0= 0x100;
  ^
bug.c:5:22: warning: overflow in conversion from ‘int’ to ‘short int’ changes
value from ‘65536’ to ‘0’ [-Woverflow]
   signed short ss0 = 0x1;
  ^~~
bug.c:6:23: warning: unsigned conversion from ‘int’ to ‘short unsigned int’
changes value from ‘65536’ to ‘0’ [-Woverflow]
   unsigned short su0= 0x1;
   ^~~
bug.c:7:20: warning: overflow in conversion from ‘long int’ to ‘int’ changes
value from ‘4294967296’ to ‘0’ [-Woverflow]
   signed int is0 = 0x1;
^~~
bug.c:8:21: warning: unsigned conversion from ‘long int’ to ‘unsigned int’
changes value from ‘4294967296’ to ‘0’ [-Woverflow]
   unsigned int iu0= 0x1;
 ^~~
bug.c:13:27: warning: overflow in conversion from ‘long int’ to ‘int’ changes
value from ‘4294967296’ to ‘0’ [-Woverflow]
   vector signed int v14 = vec_splat_s32(0x1);
   ^
bug.c:14:29: warning: overflow in conversion from ‘long int’ to ‘int’ changes
value from ‘4294967296’ to ‘0’ [-Woverflow]
   vector unsigned int v15 = vec_splat_u32(0x1);
 ^
--
Note: no warnings for the vector char and vector short types.

[Bug target/66488] segfault on sizeof(long) < sizeof(void*) and large GCC memory usage

2018-11-19 Thread sthalik at misaki dot pl
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66488

--- Comment #19 from Stanisław Halik  ---
Works on my end.

regards,
sh

[Bug ipa/87957] [9 Regression] ICE tree check: expected tree that contains ‘decl minimal’ structure, have ‘identifier_node’ in warn_odr, at ipa-devirt.c:1051 since r265519

2018-11-19 Thread hubicka at ucw dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87957

--- Comment #6 from Jan Hubicka  ---
I think we have separate PR for this ICE.  It is the ODR violation
confusing the walk of duplicates. It needs to stop assuming that all
duplicates are same TREE_CODE of type.

I will cook up patch.

Honza

[Bug fortran/53542] Diagnostic of USE-associated variables shows original instead of renamed symbol name

2018-11-19 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53542

Dominique d'Humieres  changed:

   What|Removed |Added

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

--- Comment #6 from Dominique d'Humieres  ---
> Can the bug be marked as resolved?

I think so.

[Bug target/58684] powerpc uses only unordered floating-point compares

2018-11-19 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58684

--- Comment #9 from Segher Boessenkool  ---
It is not resolved yet no.  That patch has some biggish issues still.

[Bug fortran/78746] charlen_03, charlen_10 ICE

2018-11-19 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78746

--- Comment #13 from Dominique d'Humieres  ---
> Dominique: Can the bug be marked as resolved?

The attached tests are still failing on trunk (9.0).

[Bug tree-optimization/78913] Probably misleading error reported by -Wformat-truncation

2018-11-19 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78913

Martin Sebor  changed:

   What|Removed |Added

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

--- Comment #13 from Martin Sebor  ---
I'm fine with resolving it if you are -- please reopen it (or maybe submit a
new bug) if you think there's something else to fix here.

[Bug fortran/88099] New: ICE in maybe_legitimize_operand, at optabs.c:7170

2018-11-19 Thread gs...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88099

Bug ID: 88099
   Summary: ICE in maybe_legitimize_operand, at optabs.c:7170
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gs...@t-online.de
  Target Milestone: ---

With -fsanitize=undefined or a test version (--enable-checking=yes) :
(n2 is not a function reference due to missing "()", and not initialized)


$ cat z1.f90
module m
contains
   function n1()
  n1 = 3
  n1 = n1 + n2
   end
   function n2()
  n2 = 4
   end
end


$ gfortran-9-20181118 -c z1.f90 -O2
$ gfortran-9-20181118 -c z1.f90 -g -O0 -Wall -Wextra -fcheck=all
$
$ gfortran-9-20181118 -c z1.f90 -fsanitize=undefined
during RTL pass: expand
z1.f90:5:0:

5 |   n1 = n1 + n2
  |
internal compiler error: in maybe_legitimize_operand, at optabs.c:7170
0xa4098a maybe_legitimize_operand
../../gcc/optabs.c:7169
0xa4098a maybe_legitimize_operands(insn_code, unsigned int, unsigned int,
expand_operand*)
../../gcc/optabs.c:7298
0xa40b89 maybe_gen_insn(insn_code, unsigned int, expand_operand*)
../../gcc/optabs.c:7317
0xa43ed8 maybe_expand_insn(insn_code, unsigned int, expand_operand*)
../../gcc/optabs.c:7360
0x94ad5f expand_addsub_overflow
../../gcc/internal-fn.c:1005
0x9500e7 expand_UBSAN_CHECK_ADD
../../gcc/internal-fn.c:2193
0x77bd87 expand_call_stmt
../../gcc/cfgexpand.c:2622
0x77bd87 expand_gimple_stmt_1
../../gcc/cfgexpand.c:3650
0x77bd87 expand_gimple_stmt
../../gcc/cfgexpand.c:3809
0x77dc87 expand_gimple_basic_block
../../gcc/cfgexpand.c:5845
0x7832c6 execute
../../gcc/cfgexpand.c:6450


$ gfortran-9-20181118-chk -c z1.f90
z1.f90:3:0:

3 |function n1()
  |
Error: invalid (pointer) operands to plus/minus
_2 = __result_n1.0_1 + n2;
z1.f90:3:0: internal compiler error: verify_gimple failed
0xcccbdd verify_gimple_in_seq(gimple*)
../../gcc/tree-cfg.c:5082
0x9e0a45 gimplify_body(tree_node*, bool)
../../gcc/gimplify.c:13636
0x9e0d34 gimplify_function_tree(tree_node*)
../../gcc/gimplify.c:13726
0x82b6f7 cgraph_node::analyze()
../../gcc/cgraphunit.c:667
0x82e8e9 analyze_functions
../../gcc/cgraphunit.c:1126
0x82f9c2 symbol_table::finalize_compilation_unit()
../../gcc/cgraphunit.c:2835

[Bug fortran/77382] ICE: verify_gimple failed -- expand_expr_real_1, at expr.c:9651

2018-11-19 Thread gs...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77382

G. Steinmetz  changed:

   What|Removed |Added

 CC||gs...@t-online.de

--- Comment #5 from G. Steinmetz  ---

Modified invalid code ICEs only at -O0 :


$ cat z1.f90
subroutine g(x)
entry h(g)
end
program p
   call g(1.0)
   call h(2.0)
end


$ gfortran-9-20181118 -c z1.f90 -O0
z1.f90:6:14:

6 |call h(2.0)
  |  1
Warning: Type mismatch in argument 'g' at (1); passed REAL(4) to UNKNOWN
[-Wargument-mismatch]
during RTL pass: expand
z1.f90:5:0:

5 |call g(1.0)
  |
internal compiler error: in expand_expr_real_1, at expr.c:9932
0x876586 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
../../gcc/expr.c:9926
0x76f264 expand_normal
../../gcc/expr.h:285
0x76f264 rtx_for_function_call
../../gcc/calls.c:2530
0x76f264 expand_call(tree_node*, rtx_def*, int)
../../gcc/calls.c:4031
0x87497e expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
../../gcc/expr.c:10947
0x77c26a expand_expr
../../gcc/expr.h:279
0x77c26a expand_call_stmt
../../gcc/cfgexpand.c:2713
0x77c26a expand_gimple_stmt_1
../../gcc/cfgexpand.c:3650
0x77c26a expand_gimple_stmt
../../gcc/cfgexpand.c:3809
0x77dc87 expand_gimple_basic_block
../../gcc/cfgexpand.c:5845
0x7832c6 execute
../../gcc/cfgexpand.c:6450

[Bug fortran/66695] [7/8/9 Regression] [F03] ICE with binding-name equal to the name of a use-associated procedure

2018-11-19 Thread gs...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66695

G. Steinmetz  changed:

   What|Removed |Added

 CC||gs...@t-online.de

--- Comment #6 from G. Steinmetz  ---

Update :


$ cat z1.f90
module m
contains
   integer function f()
   end
end
module m2
   use m
contains
   subroutine s() bind(c, name='f')
  integer :: x
  x = f()
   end
end


$ gfortran-9-2018 -c z1.f90
z1.f90:11:0:

   11 |   x = f()
  |
internal compiler error: in fold_convert_loc, at fold-const.c:2426
0x8a9b87 fold_convert_loc(unsigned int, tree_node*, tree_node*)
../../gcc/fold-const.c:2425
0x6ed255 gfc_trans_scalar_assign(gfc_se*, gfc_se*, gfc_typespec, bool, bool,
bool)
../../gcc/fortran/trans-expr.c:9063
0x6fd58d gfc_trans_assignment_1
../../gcc/fortran/trans-expr.c:10449
0x6bfdaf trans_code
../../gcc/fortran/trans.c:1822
0x6e7674 gfc_generate_function_code(gfc_namespace*)
../../gcc/fortran/trans-decl.c:6509
0x6c3b39 gfc_generate_module_code(gfc_namespace*)
../../gcc/fortran/trans.c:2216
0x67440b translate_all_program_units
../../gcc/fortran/parse.c:6112
0x67440b gfc_parse_file()
../../gcc/fortran/parse.c:6328
0x6bc89f gfc_be_parse_file
../../gcc/fortran/f95-lang.c:204


---

$ cat z2.f90
module m
contains
   integer function f()
   end
end
module m2
   use m
contains
   subroutine s() bind(c, name='f')
  print *, f()
   end
end


$ gfortran-9-2018 -c z2.f90
f951: Error: using result of function returning 'void'

[Bug c++/87542] [7/8 Regression] bogus error on attribute format with a named constant argument

2018-11-19 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87542

Martin Sebor  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||9.0
 Resolution|--- |FIXED
Summary|[7/8/9 Regression] bogus|[7/8 Regression] bogus
   |error on attribute format   |error on attribute format
   |with a named constant   |with a named constant
   |argument|argument
  Known to fail||6.4.0, 7.3.0, 8.2.0

--- Comment #4 from Martin Sebor  ---
Fixed for GCC 9 in r266195.  Since the patch also introduces a warning for
(invalid) code that was previously silently accepted (pr87533) I'm not planning
to backport it.

[Bug c/83656] missing -Wbuiltin-declaration-mismatch on declaration without prototype

2018-11-19 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83656

Martin Sebor  changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution|--- |FIXED

--- Comment #10 from Martin Sebor  ---
The warnings in the tests are problems in the tests.  I've opened pr88098 for
those.  If you notice others please either add them there or open other
testsuite bugs.  The warning itself works as designed so let's keep this bug
resolved.

[Bug testsuite/88098] FAIL: gcc.dg/Wbuiltin-declaration-mismatch-4.c (test for warnings, line 80)

2018-11-19 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88098

Martin Sebor  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2018-11-19
   Assignee|unassigned at gcc dot gnu.org  |msebor at gcc dot 
gnu.org
 Ever confirmed|0   |1

[Bug testsuite/88098] New: FAIL: gcc.dg/Wbuiltin-declaration-mismatch-4.c (test for warnings, line 80)

2018-11-19 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88098

Bug ID: 88098
   Summary: FAIL: gcc.dg/Wbuiltin-declaration-mismatch-4.c  (test
for warnings, line 80)
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
  Assignee: unassigned at gcc dot gnu.org
  Reporter: msebor at gcc dot gnu.org
  Target Milestone: ---

The gcc.dg/Wbuiltin-declaration-mismatch-4.c test newly added in r266194 fails
on  32-bit targets such as armv8l-unknown-linux-gnueabihf:
https://gcc.gnu.org/ml/gcc-testresults/2018-11/msg02561.html

and i686-pc-linux-gnu
https://gcc.gnu.org/ml/gcc-testresults/2018-11/msg02553.html

See also bug 83656 comment #8.

[Bug c++/67164] ICE: tree check: expected class ‘expression’, have ‘exceptional’ (argument_pack_select) in tree_operand_check, at tree.h:3356

2018-11-19 Thread ldionne.2 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67164

--- Comment #14 from Louis Dionne  ---
I think so -- all the reproducers posted in this bug report can compile with
GCC trunk.

[Bug sanitizer/80953] Support libsanitizer on Solaris

2018-11-19 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80953

Eric Botcazou  changed:

   What|Removed |Added

 CC||ebotcazou at gcc dot gnu.org

--- Comment #11 from Eric Botcazou  ---
I have a bunch of sanitizer failures on SPARC/Solaris 11.3:

FAIL: c-c++-common/asan/alloca_safe_access.c   -O0  execution test
FAIL: c-c++-common/asan/alloca_safe_access.c   -O1  execution test
FAIL: c-c++-common/asan/alloca_safe_access.c   -O2  execution test
FAIL: c-c++-common/asan/alloca_safe_access.c   -O2 -flto  execution test
FAIL: c-c++-common/asan/alloca_safe_access.c   -O2 -flto -flto-partition=none 
execution test
FAIL: c-c++-common/asan/alloca_safe_access.c   -O3 -g  execution test
FAIL: c-c++-common/asan/alloca_safe_access.c   -Os  execution test

Program received signal SIGABRT, Aborted.
[Switching to Thread 1 (LWP 1)]
0xff0de934 in __lwp_sigqueue () from /lib/libc.so.1
(gdb) bt
#0  0xff0de934 in __lwp_sigqueue () from /lib/libc.so.1
#1  0xff082178 in raise () from /lib/libc.so.1
#2  0xff05a534 in abort () from /lib/libc.so.1
#3  0xff14bc74 in uw_init_context_1 (context=0xffbfead4, outer_cfa=0xffbff070, 
outer_ra=0xfe90abd0)
at /homes/botcazou/gcc-head/src/libgcc/unwind-dw2.c:1602
#4  0xff14c580 in _Unwind_Backtrace (trace=0xfe90aaa0, 
trace_argument=0xffbff0e0)
at /homes/botcazou/gcc-head/src/libgcc/unwind.inc:295
#5  0xfe90abd8 in ?? ()
   from /homes/botcazou/gcc-head/install_sparc/lib/libasan.so.5
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

[Bug middle-end/88097] Missing optimization of endian conversion

2018-11-19 Thread bugzi...@poradnik-webmastera.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88097

--- Comment #2 from Daniel Fruzynski  ---
Please also take a look on code which performs opposite conversion. gcc also
does not use movbe here. Both gcc and clang are not able to optimize this into
one 32-bit store, this is another possible optimization here.

void test2(Test* s, uint32_t ip)
{
s->Word1 = htons(ip >> 16);
s->Word2 = htons(ip);
}

[Bug tree-optimization/87025] [9 Regression] ICE in add_record, at optinfo-emit-json.cc:175

2018-11-19 Thread dmalcolm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87025

--- Comment #7 from David Malcolm  ---
Author: dmalcolm
Date: Mon Nov 19 16:42:03 2018
New Revision: 266280

URL: https://gcc.gnu.org/viewcvs?rev=266280=gcc=rev
Log:
Fix -fsave-optimization-record ICE (PR tree-optimization/87025)

PR tree-optimization/87025 reports an ICE within
-fsave-optimization-record's optrecord_json_writer.

The issue is that dump_context::begin_scope creates an optinfo
of kind OPTINFO_KIND_SCOPE, but fails to call
dump_context::end_any_optinfo, so the optinfo for the scope remains
pending.

The JSON writer would normally push a JSON array for the "scope" optinfo
when the latter is emitted.  However, if a dump_* call happens that
doesn't flush the "scope" optinfo e.g. dump_printf (as opposed to
dump_printf_loc), that dump_ call is added to the pending optinfo, and
optinfo::handle_dump_file_kind changes the pending optinfo's m_kind
(e.g. to OPTINFO_KIND_NOTE).  Hence when the pending optinfo is
eventually emitted, it isn't OPTINFO_KIND_SCOPE anymore, and hence
the JSON writer doesn't create and push a JSON array for it, leading
to dump_context's view of scopes getting out-of-sync with that of
the JSON writer's.

Later, dump_context::end_scope unconditionally tries to pop the JSON scope
array, but no JSON scope array was added, leading to an assertion
failure (or crash).

The fix is to call dump_context::end_any_optinfo immediately after
creating the scope optinfo, so that it is emitted immediately, ensuring
that the JSON writer stays in-sync with the dump_context.

gcc/ChangeLog:
PR tree-optimization/87025
* dumpfile.c (dump_context::begin_scope): Call end_any_optinfo
immediately after creating the scope optinfo.
(selftest::test_pr87025): New function.
(selftest::dumpfile_c_tests): Call it.
* optinfo-emit-json.cc (optrecord_json_writer::pop_scope): Assert
that we're not popping the top-level records array.
* optinfo.cc (optinfo::handle_dump_file_kind): Assert that we're
not changing the kind of a "scope" optinfo.

gcc/testsuite/ChangeLog:
PR tree-optimization/87025
* gcc.dg/pr87025.c: New test.


Added:
trunk/gcc/testsuite/gcc.dg/pr87025.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/dumpfile.c
trunk/gcc/optinfo-emit-json.cc
trunk/gcc/optinfo.cc
trunk/gcc/testsuite/ChangeLog

[Bug driver/49370] flags implemented in the specs file but undocumented

2018-11-19 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49370

sandra at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||sandra at gcc dot gnu.org
 Resolution|--- |FIXED

--- Comment #2 from sandra at gcc dot gnu.org ---
This has already been fixed at some point since the issue was filed.

[Bug tree-optimization/57371] Simplify (double)i != 0

2018-11-19 Thread ygribov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57371

Yury Gribov  changed:

   What|Removed |Added

 CC||ygribov at gcc dot gnu.org

--- Comment #9 from Yury Gribov  ---
(In reply to Martin Liška from comment #7)
> Can the bug be marked as resolved?

TBH I didn't implement all Josephs suggestions (particularly my patch does not
try to optimize more under -ffast-math and friends)...

[Bug target/44551] [missed optimization] AVX vextractf128 after vinsertf128

2018-11-19 Thread kretz at kde dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44551

--- Comment #20 from Matthias Kretz  ---
The original issue I meant to report is fixed. There are many more missed
optimizations in the original example, though.

I.e. https://godbolt.org/z/7P1o3O should compile to:
use_insert_extract():
  vmovdqu DATA+4(%rip), %xmm2
  vmovdqu DATA+20(%rip), %xmm4
  vpaddd DATA(%rip), %xmm2, %xmm0
  vpaddd DATA+16(%rip), %xmm4, %xmm1
  vpaddd %xmm2, %xmm0, %xmm0
  vpaddd %xmm4, %xmm1, %xmm1
  vmovups %xmm0, DATA(%rip)
  vmovups %xmm1, DATA+16(%rip)
  ret

[Bug libstdc++/79206] string_view operator== could do an early exit if sizes differ

2018-11-19 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79206

Jonathan Wakely  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|5.5 |7.0

--- Comment #4 from Jonathan Wakely  ---
Fixed in 7.1 and up.

[Bug tree-optimization/87025] [9 Regression] ICE in add_record, at optinfo-emit-json.cc:175

2018-11-19 Thread dmalcolm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87025

--- Comment #6 from David Malcolm  ---
Author: dmalcolm
Date: Mon Nov 19 16:31:03 2018
New Revision: 266279

URL: https://gcc.gnu.org/viewcvs?rev=266279=gcc=rev
Log:
Eliminate global state from -fsave-optimization-record

As work towards fixing PR tree-optimization/87025, this patch
eliminates global state from optinfo-emit-json.cc in favor
of adding an optional m_json_writer field to dump_context,
replacing the m_forcibly_enable_optinfo flag.

This allows for writing selftests for the interaction of the
JSON-building code with the dumpfile.c code.
In particular, the existing selftest that created optinfo
instances now exercise the JSON-building code (although no
JSON is actually written out).

The patch also simplifies the layering by replacing optinfo::emit ()
with dump_context::emit_optinfo, so that dump_context has
responsibility for keeping track of dump destinations.

gcc/ChangeLog:
PR tree-optimization/87025
* dump-context.h: Include "optinfo.h".
(class optrecord_json_writer): New forward decl.
(dump_context::forcibly_enable_optinfo_p): Delete.
(dump_context::optinfo_enabled_p): New member function.
(dump_context::optimization_records_enabled_p): New member
function.
(dump_context::set_json_writer): New member function.
(dump_context::emit_optinfo): New member function.
(dump_context::m_forcibly_enable_optinfo): Delete.
(dump_context::m_json_writer): New member data.
* dumpfile.c (dump_context::set_json_writer): New member function.
(dump_context::finish_any_json_writer): New member function.
(dump_context::end_scope): Replace call to
optimization_records_maybe_pop_dump_scope with call to
m_json_writer->pop_scope.
(dump_context::optinfo_enabled_p): New member function.
(dump_context::end_any_optinfo): Replace call to optinfo::emit with
call
to dump_context::emit_optinfo.
(dump_context::emit_optinfo): New member function.
(temp_dump_context::temp_dump_context): Replace
m_forcibly_enable_optinfo with call to set_json_writer.
(temp_dump_context::~temp_dump_context): Clean up any json writer.
* optinfo-emit-json.cc (class optrecord_json_writer): Move to
optinfo-emit-json.h
(the_json_writer): Delete.
(optimization_records_start): Delete.
(optimization_records_finish): Delete.
(optimization_records_enabled_p): Delete, in favor of
dump_context::optimization_records_enabled_p.
(optimization_records_maybe_record_optinfo): Delete.
(optimization_records_maybe_pop_dump_scope): Delete.
* optinfo-emit-json.h: Include "json.h".  Delete forward
decl of opt_pass.
(optimization_records_start): Delete.
(optimization_records_finish): Delete.
(optimization_records_enabled_p): Delete.
(optimization_records_maybe_record_optinfo): Delete.
(optimization_records_maybe_pop_dump_scope): Delete.
(class optrecord_json_writer): Move here from
optinfo-emit-json.cc.
* optinfo.cc (optinfo::emit_for_opt_problem): Replace call
to optinfo::emit with call to dump_context::emit_optinfo.
(optinfo::emit): Delete, in favor of dump_context::emit_optinfo.
(optinfo_enabled_p): Delete, in favor of
dump_context::optinfo_enabled_p.
(optinfo_wants_inlining_info_p): Update for conversion o
optimization_records_enabled_p to a member function of
dump_context.
* optinfo.h (optinfo_enabled_p): Delete, in favor of
dump_context::optinfo_enabled_p.
(optinfo::emit): Delete, in favor of dump_context::emit_optinfo.
* toplev.c: Include "dump-context.h".
(compile_file): Replace call to optimization_records_finish with
dump_context::finish_any_json_writer.
(do_compile): Replace call to optimization_records_start with
conditionally creating a optrecord_json_writer for the
dump_context.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/dump-context.h
trunk/gcc/dumpfile.c
trunk/gcc/optinfo-emit-json.cc
trunk/gcc/optinfo-emit-json.h
trunk/gcc/optinfo.cc
trunk/gcc/optinfo.h
trunk/gcc/toplev.c

[Bug middle-end/88097] Missing optimization of endian conversion

2018-11-19 Thread bugzi...@poradnik-webmastera.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88097

--- Comment #1 from Daniel Fruzynski  ---
I also tried to swap Word1 and Word2 fields in structure to see what will
happen. It turned out that gcc with -O3 -mmovbe generates code without movbe:
[asm]
test(Test*):
movzx   eax, WORD PTR [rdi+2]
movzx   edx, WORD PTR [rdi]
rorw $8, ax
rorw $8, dx
sal eax, 16
movzx   edx, dx
or  eax, edx
ret
[/asm]

clang generates code with movbe:

[asm]
test(Test*):  # @test(Test*)
movbe   cx, word ptr [rdi + 2]
shl ecx, 16
movbe   ax, word ptr [rdi]
movzx   eax, ax
or  eax, ecx
ret
[/asm]

[Bug rtl-optimization/87246] [7/8/9 Regression] ICE in decompose_normal_address, at rtlanal.c:6379

2018-11-19 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87246

--- Comment #4 from Uroš Bizjak  ---
(In reply to Jakub Jelinek from comment #3)
> Started with r233107.
> 
> Slightly adjusted testcase:
> 
> __int128 a;
> int b;
> 
> void
> bar (__int128 *x)
> {
>   if (*x != 0)
> {
>   a = 0;
>   b = b <= *x;
> }
> }
> 
> void
> foo (unsigned int x)
> {
>   bar (x + 1);
> }
> 
> This is on
> (mem:TI (zero_extend:DI (plus:SI (reg/v:SI 91 [ x ]) (const_int 1 [0x1]
> which matches the predicate of the *movti_internal instruction -
> general_operand, but the selected alternative needs offsettable memory.
> LRA attempts:
> (mem:DI (plus:DI (zero_extend:DI (plus:SI (reg/v:SI 91 [ x ])
> (const_int 1 [0x1])))
> (const_int 8 [0x8])) [1 *_3+8 S8 A64])
> but that isn't a valid offsettable address, it should have instead forced
> the zero_extend into a register.
> 
> Or should some reload hook in the backend tell LRA that it should do that if
> it wants an offsettable address out of that?

This should be handled in ix86_secondary_reload TARGET_SECONDARY_RELOAD hook,
which has the code to handle

  /* Double-word spills from general registers to non-offsettable memory
 references (zero-extended addresses) require special handling.  */

via reload_noff_{load,store} patterns.

[Bug c/46636] attribute aligned is documented as using bytes, uses addressable units instead.

2018-11-19 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46636

sandra at gcc dot gnu.org changed:

   What|Removed |Added

 CC||sandra at gcc dot gnu.org

--- Comment #5 from sandra at gcc dot gnu.org ---
Summarizing the discussion here, I think this is a code bug rather than a
documentation bug.

[Bug libstdc++/80624] char_traits::eof() doesn't meet requirements

2018-11-19 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80624

Jonathan Wakely  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |8.0

--- Comment #4 from Jonathan Wakely  ---
Fixed for 8.1 and up, although it might need to be revisited as the "fix" is
nearly as surprising as the bug itself.

[Bug rtl-optimization/78952] Combine does not convert 8-bit sign-extract to a zero-extract for QImode operations

2018-11-19 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78952

Uroš Bizjak  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-11-19
 Ever confirmed|0   |1

--- Comment #6 from Uroš Bizjak  ---
(In reply to Martin Liška from comment #5)
> Uros: Can the bug be marked as resolved?
The patch implements the workaround for x86 targets, so it depends if we want
the transformation in the middle-end or not.

[Bug c++/71448] pointer relational comparison fails inside constant expression

2018-11-19 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71448

Jonathan Wakely  changed:

   What|Removed |Added

   Target Milestone|--- |6.2

[Bug debug/87039] [8 Regression] DW_OP_fbreg used without a frame base on a C++ code w/ -fopenmp

2018-11-19 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87039

Jakub Jelinek  changed:

   What|Removed |Added

Summary|[8/9 Regression]|[8 Regression] DW_OP_fbreg
   |DW_OP_fbreg used without a  |used without a frame base
   |frame base on a C++ code w/ |on a C++ code w/ -fopenmp
   |-fopenmp|

--- Comment #6 from Jakub Jelinek  ---
Fixed on the trunk (so far).

[Bug libstdc++/71500] regex::icase only works on first character in a range

2018-11-19 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71500

Jonathan Wakely  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |8.0

--- Comment #19 from Jonathan Wakely  ---
Yes, I think it's all fixed now.

Comment 0 and comment 3 are fixed from 7.1, but comment 15 isn't fixed until
8.1

[Bug tree-optimization/88071] [8 Regression] ICE: verify_gimple failed (error: dead STMT in EH table)

2018-11-19 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88071

Jakub Jelinek  changed:

   What|Removed |Added

Summary|[8/9 Regression] ICE:   |[8 Regression] ICE:
   |verify_gimple failed|verify_gimple failed
   |(error: dead STMT in EH |(error: dead STMT in EH
   |table)  |table)

--- Comment #4 from Jakub Jelinek  ---
Fixed on the trunk so far.

[Bug middle-end/88097] New: Missing optimization of endian conversion

2018-11-19 Thread bugzi...@poradnik-webmastera.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88097

Bug ID: 88097
   Summary: Missing optimization of endian conversion
   Product: gcc
   Version: 8.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: bugzi...@poradnik-webmastera.com
  Target Milestone: ---

I have found some old code network code which looked like this:

[code]
#include 
#include 

struct Test
{
uint16_t Word1;
uint16_t Word2;
};

uint32_t test(Test* ip)
{
return ((ntohs(ip->Word1) << 16) | ntohs(ip->Word2));
}
[/code]

gcc 8.2 compiles it in following way (with -O3):

[asm]
test(Test*):
movzx   eax, WORD PTR [rdi]
movzx   edx, WORD PTR [rdi+2]
rorw $8, ax
rorw $8, dx
sal eax, 16
movzx   edx, dx
or  eax, edx
ret
[/asm]

clang 7.0.0 recognizes that both 16-bit fields are next to each other, so
32-bit byte swap can be used:

[asm]
test(Test*):  # @test(Test*)
mov eax, dword ptr [rdi]
bswap   eax
ret
[/asm]

And this is with -mmovbe added:

[asm]
test(Test*):  # @test(Test*)
movbe   eax, dword ptr [rdi]
ret
[/asm]

[Bug libstdc++/70745] Wrong handling of regex_constant::match_not_eow and regex_constant::match_not_bow

2018-11-19 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70745

Jonathan Wakely  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |7.0

--- Comment #4 from Jonathan Wakely  ---
Yes, I think this is fixed in 7.1 and up.

Tim, please reopen if there was more work you wanted to do.

[Bug libstdc++/63345] Multiple undefined behaviors (static_cast<>) in libstdc++-v3/include/bits

2018-11-19 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63345

Jonathan Wakely  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=66017
 Resolution|--- |FIXED
   Target Milestone|--- |6.0

--- Comment #13 from Jonathan Wakely  ---
Yes, all fixes should be present in gcc-6.1 and up.

[Bug rtl-optimization/87246] [7/8/9 Regression] ICE in decompose_normal_address, at rtlanal.c:6379

2018-11-19 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87246

Jakub Jelinek  changed:

   What|Removed |Added

 CC||hjl.tools at gmail dot com,
   ||jakub at gcc dot gnu.org,
   ||uros at gcc dot gnu.org,
   ||vmakarov at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek  ---
Started with r233107.

Slightly adjusted testcase:

__int128 a;
int b;

void
bar (__int128 *x)
{
  if (*x != 0)
{
  a = 0;
  b = b <= *x;
}
}

void
foo (unsigned int x)
{
  bar (x + 1);
}

This is on
(mem:TI (zero_extend:DI (plus:SI (reg/v:SI 91 [ x ]) (const_int 1 [0x1]
which matches the predicate of the *movti_internal instruction -
general_operand, but the selected alternative needs offsettable memory.
LRA attempts:
(mem:DI (plus:DI (zero_extend:DI (plus:SI (reg/v:SI 91 [ x ])
(const_int 1 [0x1])))
(const_int 8 [0x8])) [1 *_3+8 S8 A64])
but that isn't a valid offsettable address, it should have instead forced the
zero_extend into a register.

Or should some reload hook in the backend tell LRA that it should do that if it
wants an offsettable address out of that?

[Bug c/88088] -Wtrampolines should be enabled by -Wall (or -Wextra)

2018-11-19 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88088

Segher Boessenkool  changed:

   What|Removed |Added

 CC||segher at gcc dot gnu.org

--- Comment #1 from Segher Boessenkool  ---
This also would warn for targets where it is not an issue at all (where
trampolines are just data, or where the stack is executable anyway, or where
there is no such "executable" concept at all, for example).

[Bug debug/65771] ICE (in loc_list_from_tree, at dwarf2out.c:14964) on arm-linux-gnueabihf

2018-11-19 Thread ramana at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65771

Ramana Radhakrishnan  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|5.5 |6.0

--- Comment #20 from Ramana Radhakrishnan  ---
Fixed for GCC 6 from the timeline here. Wont fix for GCC 5.

[Bug fortran/68426] Simplification of SPREAD with a derived type element is unimplemented

2018-11-19 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68426

--- Comment #4 from kargl at gcc dot gnu.org ---
(In reply to Martin Liška from comment #3)
> Can the bug be marked as resolved?

No.

[Bug fortran/78351] comma not terminating READ of formatted input field - ok in 4.1.7, not 4.4.7- maybe related to 25419?

2018-11-19 Thread jvdelisle at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78351

Jerry DeLisle  changed:

   What|Removed |Added

   Last reconfirmed|2016-11-14 00:00:00 |2018-11-19
  Known to work||8.2.1, 9.0

--- Comment #28 from Jerry DeLisle  ---
I am not getting a clean patch apply to gcc-7-branch yet. Updated known to
work.

[Bug target/53440] [arm] generic thunk code fails for method which uses '...'

2018-11-19 Thread ramana at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53440

Ramana Radhakrishnan  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |7.0

--- Comment #10 from Ramana Radhakrishnan  ---
Fixed for GCC 7.

[Bug tree-optimization/43721] Failure to optimise (a/b) and (a%b) into single __aeabi_idivmod call

2018-11-19 Thread ramana at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43721

Ramana Radhakrishnan  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |7.0

--- Comment #12 from Ramana Radhakrishnan  ---
Fixed in GCC7 then.

[Bug driver/44933] --help=common undocumented

2018-11-19 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44933

sandra at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #2 from sandra at gcc dot gnu.org ---
This problem has been fixed at some point since the bug was filed.  gcc --help
now prints

 
--help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...].

and -fdump- is listed by gcc --help=common.

[Bug sanitizer/88022] Support dynamic shadow offset in ASan

2018-11-19 Thread chefmax at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88022

--- Comment #5 from chefmax at gcc dot gnu.org ---
(In reply to Martin Liška from comment #4)
> Agree with Jakub that if really not necessary, I wouldn't complicate
> libsanitizer. 

My point was that we won't need to complicate libsanitizer -- almost all
necessary code is already there, just need to enable it for Linux.

> Slowness is nicely seen in your table Maxim:
> https://github.com/google/sanitizers/issues/837#issuecomment-322519336
> 
> Can you Maximum more describe which difficulties do you see using
> libsanitizer on 32-bit ARM target?

AFAIR we had problems with PIE binaries on ARM (and we still have them).

Anyways, if you don't interested, I'm not insist on implementing this feature
in GCC.
Just be informed that sanitizer runtime is almost ready for this to be
implemented.

[Bug middle-end/87836] ICE in cc1 for gcc-6.5.0 with SPARC hardware

2018-11-19 Thread gary_mills at fastmail dot fm
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87836

--- Comment #14 from Gary Mills  ---
Regarding your suggestion, is there a way to get the compiler to reveal the
steps it goes through in compiling the program?  All I get now is the backtrace
when it hits the error.  I need to know what the compiler is doing before that.

  1   2   3   4   5   >