[Bug c/90267] [7.3 regression] wrong code generated wth -O2 as missing data dependence base on memory

2019-04-27 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90267

--- Comment #3 from vfdff  ---
but it doesn't warning anything, even with  -Wstrict-aliasing -Wall.

Accord to http://blog.sina.com.cn/s/blog_74caf0ce010173up.html, We expect an
warning similar the following infomation.

warning: dereferencing type-punned pointer will break strict-aliasing rules

[Bug c++/90173] [9 Regression] ICE: Segmentation fault (in strip_declarator_types)

2019-04-27 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90173

--- Comment #5 from Jakub Jelinek  ---
Author: jakub
Date: Sat Apr 27 21:56:17 2019
New Revision: 270626

URL: https://gcc.gnu.org/viewcvs?rev=270626=gcc=rev
Log:
PR c++/90173
* g++.dg/cpp1z/class-deduction66.C: Use dg-do compile instead of
dg-do run.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp1z/class-deduction66.C

[Bug middle-end/90216] Stack Pointer decrementing even when not loading extra data to stack.

2019-04-27 Thread stevexiong98 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90216

--- Comment #2 from stevexiong98 at hotmail dot com ---
(In reply to Andrew Pinski from comment #1)
> Confirmed, part of the problem is union is forced to memory early on but
> then optimized out but the object still exist in memory even though it is
> dead.
> I am working on an optimization which improves this by the lowering of
> bit-fields.  But it won't go in until post GCC 9 (released next year).

Thanks so much for the update. I am looking forward to the next compiler
release!

[Bug objc++/49070] [7/8/9/10 regression] ObjC++ compiler fails to compile ObjC method invocations without keyword arguments

2019-04-27 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49070

Eric Gallager  changed:

   What|Removed |Added

 CC||iains at gcc dot gnu.org,
   ||mikestump at comcast dot net

--- Comment #4 from Eric Gallager  ---
cc-ing objc[++] maintainers

[Bug c/50422] -Wswitch warns about unhandled cases in nested switches

2019-04-27 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50422

Eric Gallager  changed:

   What|Removed |Added

 CC||dmalcolm at gcc dot gnu.org,
   ||dodji at gcc dot gnu.org

--- Comment #2 from Eric Gallager  ---
cc-ing diagnostics maintainers

[Bug c/55096] Wconversion-nul does not work in C

2019-04-27 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55096

Eric Gallager  changed:

   What|Removed |Added

 CC||dmalcolm at gcc dot gnu.org,
   ||dodji at gcc dot gnu.org

--- Comment #2 from Eric Gallager  ---
cc-ing diagnostics maintainers

[Bug tree-optimization/90269] loop distribution defeated by clobbers

2019-04-27 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90269

--- Comment #1 from Marc Glisse  ---
--- tree-loop-distribution.c(revision 270624)
+++ tree-loop-distribution.c(working copy)
@@ -3033,20 +3033,23 @@ find_seed_stmts_for_distribution (struct
 the loop.  */
  if (!stmt_has_scalar_dependences_outside_loop (loop, phi))
continue;
  work_list->safe_push (phi);
}
   for (gimple_stmt_iterator gsi = gsi_start_bb (bbs[i]);
   !gsi_end_p (gsi); gsi_next ())
{
  gimple *stmt = gsi_stmt (gsi);

+ if (gimple_clobber_p (stmt))
+   continue;
+
  /* If there is a stmt with side-effects bail out - we
 cannot and should not distribute this loop.  */
  if (gimple_has_side_effects (stmt))
{
  free (bbs);
  return false;
}

  /* Distribute stmts which have defs that are used outside of
 the loop.  */

works for this testcase, but that may be too crude (?).

[Bug tree-optimization/90269] New: loop distribution defeated by clobbers

2019-04-27 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90269

Bug ID: 90269
   Summary: loop distribution defeated by clobbers
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: enhancement
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: glisse at gcc dot gnu.org
  Target Milestone: ---

#include 
#ifndef EASY
typedef std::unique_ptr T;
#else
typedef int* T;
#endif
void f(T*__restrict a,T*__restrict b){
for(int i=0;i<1024;++i){
new(a+i)T(std::move(b[i]));
b[i].~T();
}
}

Compiling with -O3, with -DEASY I get a nice call to memcpy, while without it I
keep a loop. The difference, before the ldist pass, is that the version with
unique_ptr has clobbers:

  _8 = MEM[(int * const &)_3];
  MEM[(struct  &)_10] ={v} {CLOBBER};
  MEM[(struct _Head_base *)_10]._M_head_impl = _8;
  MEM[(struct  &)_3] ={v} {CLOBBER};

ldist checks gimple_has_side_effects (stmt) on the first clobber and gives up.
Vectorization does not seem to have any problem with those clobbers.

(by the way, I believe DSE could remove the first clobber, it seems pretty
useless when it is immediately followed by a write to the full object)

[Bug c/90036] [8/9/10 Regression] false positive: directive argument is null [-Werror=format-overflow=]

2019-04-27 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90036

Segher Boessenkool  changed:

   What|Removed |Added

 CC||segher at gcc dot gnu.org

--- Comment #4 from Segher Boessenkool  ---
x.cpp:22:11: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
   22 | printf("%s = %s\n", [0], [0]); // warning
  | ~~^

Side issue...  It's not clear what a "directive" or a "directive argument"
is here, without guessing.  "%s" is called a "conversion specifier".  "null"
is not a defined anything either, and the highlight should ideally be on the
argument, with maybe an extra info one for the conversion spec.

So maybe something like

x.cpp:22:11: error: argument to ‘%s’ is a null pointer
[-Werror=format-overflow=]
   22 | printf("%s = %s\n", [0], [0]); // warning
  | ^~  ^~

[Bug libstdc++/87106] Group move and destruction of the source, where possible, for speed

2019-04-27 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87106

--- Comment #21 from Marc Glisse  ---
Author: glisse
Date: Sat Apr 27 14:09:20 2019
New Revision: 270624

URL: https://gcc.gnu.org/viewcvs?rev=270624=gcc=rev
Log:
Use __restrict for __relocate_object_a

2019-04-27  Marc Glisse  

PR libstdc++/87106
* include/bits/stl_uninitialized.h (__relocate_object_a): Mark the
arguments with __restrict.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/stl_uninitialized.h

[Bug target/89261] ix86_data_alignment has wrong argument type

2019-04-27 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89261

Uroš Bizjak  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Assignee|unassigned at gcc dot gnu.org  |ubizjak at gmail dot com
   Target Milestone|--- |10.0

--- Comment #5 from Uroš Bizjak  ---
Fixed.

[Bug target/89261] ix86_data_alignment has wrong argument type

2019-04-27 Thread uros at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89261

--- Comment #4 from uros at gcc dot gnu.org ---
Author: uros
Date: Sat Apr 27 13:38:19 2019
New Revision: 270623

URL: https://gcc.gnu.org/viewcvs?rev=270623=gcc=rev
Log:
PR target/89261
* config/i386/i386-protos.h (ix86_data_alignment): Change
the second argument type to unsigned int.
* config/i386/i386.c (ix86_data_alignment): Change "align"
argument type to unsigned int.

testsuite/ChangeLog:

PR target/89261
* gcc.target/i386/pr89261.c: New test.


Added:
trunk/gcc/testsuite/gcc.target/i386/pr89261.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386-protos.h
trunk/gcc/config/i386/i386.c
trunk/gcc/testsuite/ChangeLog

[Bug c++/89953] ICE in nothrow_spec_p, at cp/except.c:1244

2019-04-27 Thread h2+bugs at fsfe dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89953

Hannes Hauswedell  changed:

   What|Removed |Added

 CC||h2+bugs at fsfe dot org

--- Comment #17 from Hannes Hauswedell  ---
I don't want to sound presumptuous, but can we raise the importance of this
issue? Otherwise we will get a gcc9 release that breaks all projects using the
soon-to-be-released 1.0 release of range-v3.

I think that is quite significant or not?

Thank you for your work on GCC!

[Bug c/90036] [8/9/10 Regression] false positive: directive argument is null [-Werror=format-overflow=]

2019-04-27 Thread dimhen at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90036

--- Comment #3 from Dmitry G. Dyachenko  ---
I see smth may be similar starts at r265648 / PR87041

265647 NO warnings
265648 warnings
270581 warnings

$ cat x.cpp
#include 
#include 

extern void extf(char*);

extern unsigned U1;
extern unsigned U2;

void foo()
{
if(U1 == 0)
return;
if(U2 == 0)
return;

std::vector N1(U1);
extf([0]);

std::vector N2(U2);
extf([0]);

printf("%s = %s\n", [0], [0]); // warning
}

void foo_i(unsigned i)
{
if(i == 0)
return;
if(U2 == 0)
return;

std::vector N1(i);
extf([0]);

std::vector N2(U2);
extf([0]);

printf("%s = %s\n", [0], [0]); // warning
}

void foo_j(unsigned j)
{
if(U1 == 0)
return;
if(j == 0)
return;

std::vector N1(U1);
extf([0]);

std::vector N2(j);
extf([0]);

printf("%s = %s\n", [0], [0]); // NO warning
}

void foo_2(unsigned i, unsigned j)
{
if(i == 0)
return;
if(j == 0)
return;

std::vector N1(i);
extf([0]);

std::vector N2(j);
extf([0]);

printf("%s = %s\n", [0], [0]);  // NO warning
}

$ g++ -O2 -Wall -Werror -c x.cpp
x.cpp: In function ‘void foo()’:
x.cpp:22:11: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
   22 | printf("%s = %s\n", [0], [0]); // warning
  | ~~^
x.cpp: In function ‘void foo_i(unsigned int)’:
x.cpp:38:11: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
   38 | printf("%s = %s\n", [0], [0]); // warning
  | ~~^

[Bug libobjc/90268] compile failure for gcc9, missing libtool in that directory

2019-04-27 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90268

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2019-04-27
 Ever confirmed|0   |1

--- Comment #3 from Andrew Pinski  ---
For me libtool is created when configure is run.

Also nothing has changed in libobjc/configure since October 2018.

Are you regenerating the configure files?

[Bug libobjc/90268] compile failure for gcc9, missing libtool in that directory

2019-04-27 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90268

--- Comment #2 from Andrew Pinski  ---
Are you building in the src directory?  That is normally not tested.

[Bug libobjc/90268] compile failure for gcc9, missing libtool in that directory

2019-04-27 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90268

Andrew Pinski  changed:

   What|Removed |Added

  Component|objc|libobjc

--- Comment #1 from Andrew Pinski  ---
How did you configure GCC?

[Bug objc/90268] New: compile failure for gcc9, missing libtool in that directory

2019-04-27 Thread carlhansen at gnu dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90268

Bug ID: 90268
   Summary: compile failure for gcc9, missing libtool in that
directory
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: objc
  Assignee: unassigned at gcc dot gnu.org
  Reporter: carlhansen at gnu dot org
  Target Milestone: ---

Checking multilib configuration for libobjc...
make[3]: Entering directory
'/td2/carlstuff/build/gsrc/pkg/gnualpha/gcc9/work/gcc-9.0.1-RC-20190426.build/x86_64-linux-gnu/libobjc'
/bin/bash ./libtool  --mode=compile
/td2/carlstuff/build/gsrc/pkg/gnualpha/gcc9/work/gcc-9.0.1-RC-20190426.build/./gcc/xgcc
-B/td2/carlstuff/build/gsrc/pkg/gnualpha/gcc9/work/gcc-9.0.1-RC-20190426.build/./gcc/
-B/opt/gsrc/x86_64-linux-gnu/bin/ -B/opt/gsrc/x86_64-linux-gnu/lib/ -isystem
/opt/gsrc/x86_64-linux-gnu/include -isystem
/opt/gsrc/x86_64-linux-gnu/sys-include   -fchecking=1
/td2/carlstuff/build/gsrc/pkg/gnualpha/gcc9/work/gcc-9.0.1-RC-20190426/libobjc/NXConstStr.m
-c \
   -I.
-I/td2/carlstuff/build/gsrc/pkg/gnualpha/gcc9/work/gcc-9.0.1-RC-20190426/libobjc
   -g -O2 -fno-split-stack -W -Wall -Wwrite-strings -Wstrict-prototypes
-DIN_GCC -DIN_TARGET_LIBS -fno-strict-aliasing -fexceptions
-I/td2/carlstuff/build/gsrc/pkg/gnualpha/gcc9/work/gcc-9.0.1-RC-20190426/libobjc/../gcc
-I/td2/carlstuff/build/gsrc/pkg/gnualpha/gcc9/work/gcc-9.0.1-RC-20190426/libobjc/../gcc/config
-I../.././gcc
-I/td2/carlstuff/build/gsrc/pkg/gnualpha/gcc9/work/gcc-9.0.1-RC-20190426/libobjc/../libgcc
-I../libgcc
-I/td2/carlstuff/build/gsrc/pkg/gnualpha/gcc9/work/gcc-9.0.1-RC-20190426/libobjc/../include
-I/opt/gsrc/include -fgnu-runtime \
   -o NXConstStr.lo
/bin/bash: ./libtool: No such file or directory
^^
make[3]: *** [Makefile:215: NXConstStr.lo] Error 127
make[3]: Leaving directory
'/td2/carlstuff/build/gsrc/pkg/gnualpha/gcc9/work/gcc-9.0.1-RC-20190426.build/x86_64-linux-gnu/libobjc'
make[2]: *** [Makefile:20548: all-target-libobjc] Error 2
make[2]: Leaving directory
'/td2/carlstuff/build/gsrc/pkg/gnualpha/gcc9/work/gcc-9.0.1-RC-20190426.build'

same problem with all previous snapshots of gcc9

compiler in use:

>>> gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/8/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 8.3.0-6'
--with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs
--enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr
--with-gcc-major-version-only --program-suffix=-8
--program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object
--disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie
--with-system-zlib --with-target-system-zlib --enable-objc-gc=auto
--enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic
--enable-offload-targets=nvptx-none --without-cuda-driver
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
--target=x86_64-linux-gnu
Thread model: posix
gcc version 8.3.0 (Debian 8.3.0-6)

[Bug middle-end/90258] [9 Regression] Missing completion for a target option since r264052

2019-04-27 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90258

Martin Liška  changed:

   What|Removed |Added

  Known to work||10.0
Summary|[9/10 Regression] Missing   |[9 Regression] Missing
   |completion for a target |completion for a target
   |option since r264052|option since r264052
  Known to fail|10.0|

--- Comment #4 from Martin Liška  ---
Fixed on trunk so far.

[Bug middle-end/90258] [9/10 Regression] Missing completion for a target option since r264052

2019-04-27 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90258

--- Comment #3 from Martin Liška  ---
Author: marxin
Date: Sat Apr 27 06:33:29 2019
New Revision: 270622

URL: https://gcc.gnu.org/viewcvs?rev=270622=gcc=rev
Log:
Add missing target options (PR middle-end/90258).

2019-04-27  Martin Liska  

PR middle-end/90258
* opt-suggestions.c (option_proposer::build_option_suggestions):
When get_valid_option_values returns empty values, add the
misspelling candidate.
2019-04-27  Martin Liska  

PR middle-end/90258
* gcc.dg/completion-5.c: New test.
* gcc.target/i386/spellcheck-options-5.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/completion-5.c
trunk/gcc/testsuite/gcc.target/i386/spellcheck-options-5.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/opt-suggestions.c
trunk/gcc/testsuite/ChangeLog