[Bug tree-optimization/87325] determine_base_object does not consider consider address space of base expr

2018-09-18 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87325

--- Comment #3 from rguenther at suse dot de  ---
On Tue, 18 Sep 2018, amker at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87325
> 
> --- Comment #2 from bin cheng  ---
> Seems alloc_iv doesn't infer base object correctly:
>   /* Lower address expression in base except ones with DECL_P as operand.
>  By doing this:
>1) More accurate cost can be computed for address expressions;
>2) Duplicate candidates won't be created for bases in different
>   forms, like &a[0] and &a.  */
>   STRIP_NOPS (expr);
>   if ((TREE_CODE (expr) == ADDR_EXPR && !DECL_P (TREE_OPERAND (expr, 0)))
>   || contain_complex_addr_expr (expr))
> {
>   aff_tree comb;
>   tree_to_aff_combination (expr, TREE_TYPE (expr), &comb);
>   base = fold_convert (TREE_TYPE (base), aff_combination_to_tree (&comb));
> }
> 
>   iv->base = base;
>   iv->base_object = determine_base_object (base);
> 
> Given:
> (gdb) call debug_generic_expr(expr)
> &ts[1].y
> 
> in which "ts" is a VAR_DECL in specific address space:
> (gdb) call debug_generic_expr(*addr_p)
> ts
> (gdb) p (*addr_p)->base.code
> $8 = VAR_DECL
> (gdb) p (*addr_p)->typed.type->base.u.bits.address_space
> $10 = 7
> 
> Question is, should be build appropriate pointer type for "ts[1].y", for now, 
>   base = build_fold_addr_expr (base);
> returns:
> (gdb) call debug_generic_expr(base)
> &ts[1].y
> (gdb) call debug_generic_expr(base->typed.type)
> float *

I think build_fold_addr_expr handles things correctly since it uses
built_pointer_type which should handle address-spaces correctly.

The question is probably whether ts[1].y has the proper address-space
qualified type (which IIRC it doesn't ...).  So we'd need sth
like ref_alias_ptr_type - a ref_addr_space () we can use to extract
the address-space from an object and transfer that properly in
build_fold_addr_expr (and elsewhere we run into this issue).  Whereever
RTL expansion takes the address-space from is probably the code to
mimic in said new API.

[Bug c/87345] New: The compiler of the old version (for example: 4.9.3 version or 6.3.0 version) can stop the infinite cross-border loop, but the new version does not work.

2018-09-18 Thread jingtian at loongson dot cn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87345

Bug ID: 87345
   Summary: The compiler of the old version (for example: 4.9.3
version or 6.3.0 version) can stop the infinite
cross-border loop, but the new version does not work.
   Product: gcc
   Version: 8.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jingtian at loongson dot cn
  Target Milestone: ---

Created attachment 44713
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44713&action=edit
this is *.i file

Hello, in fact, I don't know if this is a bug, or I don't know if the old
version of GCC can be tolerated, but the new version of GCC has the most
stringent requirements to have such a phenomenon. Since I started to forget to
forget to provide the return value in the void* type of function, but I am
compiling on a lower version of GCC, I tried versions 4.9 and 6.3. There was no
problem at this time, but when I used the newer versions 8.1 and 8.2, it
prompted me to have a Segmentation fault (core dumped).
If I normalize my writing, such as changing void* to void, or adding a return
NULL to the void* type of function, this problem can be solved.


Below is my gcc version information(This is how I made a docker on the mips
machine with a debain system installed.Similarly, I will use gcc 8.1.0 on
fedora28 to have the same situation.)

COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/mips64el-linux-gnuabi64/8/lto-wrapper
Target: mips64el-linux-gnuabi64
Configured with: ../src/configure -v --with-pkgversion='Debian 8.2.0-4'
--with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs
--enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr
--with-gcc-major-version-only --program-suffix=-8
--program-prefix=mips64el-linux-gnuabi64- --enable-shared
--enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/
--enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm
--disable-libsanitizer --disable-libquadmath --disable-libquadmath-support
--enable-plugin --enable-default-pie --with-system-zlib --disable-libphobos
--enable-objc-gc=auto --enable-multiarch --disable-werror --enable-multilib
--with-mips-plt --with-arch-64=mips64r2 --with-madd4=no --enable-targets=all
--with-arch-32=mips32r2 --with-fp-32=xx --enable-checking=release
--build=mips64el-linux-gnuabi64 --host=mips64el-linux-gnuabi64
--target=mips64el-linux-gnuabi64
Thread model: posix
gcc version 8.2.0 (Debian 8.2.0-4) 


The GCC compile command I am using is :
gcc -g -O3 -o demotest demotest.cpp 
(The same use of O1 O2 O3 will have problems, but do not choose the
optimization option, only the -o option, there will be no such situation)

Here is my code:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "ctype.h"
void *strlwr(char *str)
{

for(; *str!='\0'; str++)
{
*str = tolower(*str);
}
   //return NULL;
}

int main()
{
char res[20];
char a[20]="ABCDEFGhijklmn";
memset(res,'\0',20*sizeof(char));
strcpy(res,a);
printf("%s\n",res);
strlwr(res);
printf("%s\n",res); 
return 0;
}

This is the information that was reported during execution:
ABCDEFGhijklmn
Segmentation fault (core dumped)


I am seeing the instructions on the website, saying that this infinite loop
problem can be avoided by adding the -fno-aggressive-loop-optimizations option,
but I added this to the compile option, but it still doesn't work.

I just started to be a developer. My English is not particularly good. I have
seen the needs of the website for a long time. I don't know if I qualified to
submit this small question. If there is no good place to do it, I I am very
sorry, increasing your workload.

[Bug c/87345] The compiler of the old version (for example: 4.9.3 version or 6.3.0 version) can stop the infinite cross-border loop, but the new version does not work.

2018-09-18 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87345

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #1 from Andrew Pinski  ---
>void *strlwr(char *str)
> {
...
> //return NULL;
> }
This is the issue and not anything else.
In C++ (unlike C), falling through to return where there is a return type is
undefined code at that point.
(In C, it is undefined if the return value was used).

[Bug c++/87345] The compiler of the old version (for example: 4.9.3 version or 6.3.0 version) can stop the infinite cross-border loop, but the new version does not work.

2018-09-18 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87345

Andrew Pinski  changed:

   What|Removed |Added

  Component|c   |c++

--- Comment #2 from Andrew Pinski  ---
>gcc -g -O3 -o demotest demotest.cpp 


That is a C++ program rather than a C program.

[Bug c/87346] New: The compiler of the old version (for example: 4.9.3 version or 6.3.0 version) can stop the infinite cross-border loop, but the new version does not work.

2018-09-18 Thread jingtian at loongson dot cn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87346

Bug ID: 87346
   Summary: The compiler of the old version (for example: 4.9.3
version or 6.3.0 version) can stop the infinite
cross-border loop, but the new version does not work.
   Product: gcc
   Version: 8.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jingtian at loongson dot cn
  Target Milestone: ---

Hello, in fact, I don't know if this is a bug, or I don't know if the old
version of GCC can be tolerated, but the new version of GCC has the most
stringent requirements to have such a phenomenon. Since I started to forget to
forget to provide the return value in the void* type of function, but I am
compiling on a lower version of GCC, I tried versions 4.9 and 6.3. There was no
problem at this time, but when I used the newer versions 8.1 and 8.2, it
prompted me to have a Segmentation fault (core dumped).
If I normalize my writing, such as changing void* to void, or adding a return
NULL to the void* type of function, this problem can be solved.


Below is my gcc version information(This is how I made a docker on the mips
machine with a debain system installed.Similarly, I will use gcc 8.1.0 on
fedora28 to have the same situation.)

COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/mips64el-linux-gnuabi64/8/lto-wrapper
Target: mips64el-linux-gnuabi64
Configured with: ../src/configure -v --with-pkgversion='Debian 8.2.0-4'
--with-bugurl=file:///usr/share/doc/gcc-8/README.Bugs
--enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr
--with-gcc-major-version-only --program-suffix=-8
--program-prefix=mips64el-linux-gnuabi64- --enable-shared
--enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/
--enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm
--disable-libsanitizer --disable-libquadmath --disable-libquadmath-support
--enable-plugin --enable-default-pie --with-system-zlib --disable-libphobos
--enable-objc-gc=auto --enable-multiarch --disable-werror --enable-multilib
--with-mips-plt --with-arch-64=mips64r2 --with-madd4=no --enable-targets=all
--with-arch-32=mips32r2 --with-fp-32=xx --enable-checking=release
--build=mips64el-linux-gnuabi64 --host=mips64el-linux-gnuabi64
--target=mips64el-linux-gnuabi64
Thread model: posix
gcc version 8.2.0 (Debian 8.2.0-4) 


The GCC compile command I am using is :
gcc -g -O3 -o demotest demotest.cpp 
(The same use of O1 O2 O3 will have problems, but do not choose the
optimization option, only the -o option, there will be no such situation)

Here is my code:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "ctype.h"
void *strlwr(char *str)
{

for(; *str!='\0'; str++)
{
*str = tolower(*str);
}
   //return NULL;
}

int main()
{
char res[20];
char a[20]="ABCDEFGhijklmn";
memset(res,'\0',20*sizeof(char));
strcpy(res,a);
printf("%s\n",res);
strlwr(res);
printf("%s\n",res); 
return 0;
}

This is the information that was reported during execution:
ABCDEFGhijklmn
Segmentation fault (core dumped)


I am seeing the instructions on the website, saying that this infinite loop
problem can be avoided by adding the -fno-aggressive-loop-optimizations option,
but I added this to the compile option, but it still doesn't work.

I just started to be a developer. My English is not particularly good. I have
seen the needs of the website for a long time. I don't know if I qualified to
submit this small question. If there is no good place to do it, I I am very
sorry, increasing your workload.

[Bug target/87288] [8/9 Regression] Segfault after const_cast with "-O2 -ftree-loop-vectorize" but _without_ "-mavx"

2018-09-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87288

Richard Biener  changed:

   What|Removed |Added

  Known to work||7.3.1
   Target Milestone|--- |8.3
Summary|Segfault after const_cast   |[8/9 Regression] Segfault
   |with "-O2   |after const_cast with "-O2
   |-ftree-loop-vectorize" but  |-ftree-loop-vectorize" but
   |_without_ "-mavx"   |_without_ "-mavx"
  Known to fail||8.2.1

--- Comment #5 from Richard Biener  ---
-fno-tree-bit-ccp happens to fix the bug but it looks latent (same bogus
value-range).  Value-ranges appear from DOM and the [1, ...] one first appears
with the
vect pass:

t.C.160t.ifcvt:  # RANGE ~[2147483648, 18446744071562067967]
t.C.160t.ifcvt:  # RANGE [0, 18446744073709551600]
t.C.160t.ifcvt:  # RANGE [-2147483647, 2147483647]
t.C.161t.vect:  # RANGE [1, 2147483647] NONZERO 2147483647
t.C.161t.vect:  # RANGE ~[2147483648, 18446744071562067967]
t.C.161t.vect:  # RANGE [0, 18446744073709551600]
t.C.161t.vect:  # RANGE [-2147483647, 2147483647]
t.C.161t.vect:  # RANGE ~[2147483648, 18446744071562067967]
t.C.161t.vect:  # RANGE [0, 18446744073709551600]
t.C.161t.vect:  # RANGE [-2147483647, 2147483647]

it's set here:

  if (!is_gimple_val (niters_vector))
{
  var = create_tmp_var (type, "bnd");
  gimple_seq stmts = NULL;
  niters_vector = force_gimple_operand (niters_vector, &stmts, true, var);
  gsi_insert_seq_on_edge_immediate (pe, stmts);
  /* Peeling algorithm guarantees that vector loop bound is at least ONE,
 we set range information to make niters analyzer's life easier.  */
  if (stmts != NULL && log_vf)
set_range_info (niters_vector, VR_RANGE,
wi::to_wide (build_int_cst (type, 1)),
wi::to_wide (fold_build2 (RSHIFT_EXPR, type,
  TYPE_MAX_VALUE (type),
  log_vf)));

and the loop is

   [local count: 105119325]:
  niters.0_25 = (unsigned int) n_15;
  ni_gap.1_36 = niters.0_25 + 4294967295;
  # RANGE [1, 2147483647] NONZERO 2147483647
  bnd.2_37 = ni_gap.1_36 >> 1;

   [local count: 567644349]:
  # ivtmp_50 = PHI 
  ivtmp_51 = ivtmp_50 + 1;
  if (ivtmp_51 >= bnd.2_37)
goto ; [16.67%]
  else
goto ; [83.33%]

   [local count: 473036958]:
  goto ; [100.00%]

which looks good according to the comment.  So the number of iterations
_is_ bnd.2_37 - 1 (that number may be zero).

[Bug fortran/87336] [8/9 regression] wrong output for pointer dummy assiocated to target actual argument

2018-09-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87336

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P4
   Target Milestone|--- |8.3

[Bug bootstrap/87338] gcc 8.2 fails to bootstrap on ia64

2018-09-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87338

Richard Biener  changed:

   What|Removed |Added

   Keywords||build
 Target||ia64-*-*
 CC||rguenth at gcc dot gnu.org

--- Comment #2 from Richard Biener  ---
Does it work with GCC 7.3.0?

[Bug c/87346] The compiler of the old version (for example: 4.9.3 version or 6.3.0 version) can stop the infinite cross-border loop, but the new version does not work.

2018-09-18 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87346

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #1 from Andrew Pinski  ---
Again this has nothing to do with the loop but rather the return value.

If you want to detect this at runtime, you can use -fsantize=undefined .

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

[Bug tree-optimization/87342] [9 Regression] ICE: verify_ssa failed (error: definition in block 10 does not dominate use in block 8)

2018-09-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87342

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2018-09-18
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org
   Target Milestone|--- |9.0
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener  ---
Mine.

[Bug c++/87345] The compiler of the old version (for example: 4.9.3 version or 6.3.0 version) can stop the infinite cross-border loop, but the new version does not work.

2018-09-18 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87345

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

[Bug fortran/87341] gfortran can not link executables: _edata: invalid version 21 (max 4)

2018-09-18 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87341

--- Comment #5 from Andrew Pinski  ---
(In reply to mi+gcc from comment #4)
> (In reply to Andrew Pinski from comment #3)
> > This is a binutils bug, in gold.
> > --enable-gold
> > 
> > Please report this to binutils instead.
> 
> Is there a work-around, perhaps? 

Maybe you will get a better answer over at the binutils bugzilla.  Do you know
what version of binutils you are using?  Maybe test out the latest release.

[Bug c/87347] ICE in warn_for_abs at gcc/c/c-parser.c:9226 since r264368

2018-09-18 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87347

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2018-09-18
 CC||jamborm at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |jamborm at gcc dot 
gnu.org
   Target Milestone|--- |9.0
 Ever confirmed|0   |1
  Known to fail||9.0

[Bug c/87347] New: ICE in warn_for_abs at gcc/c/c-parser.c:9226 since r264368

2018-09-18 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87347

Bug ID: 87347
   Summary: ICE in warn_for_abs at gcc/c/c-parser.c:9226 since
r264368
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: marxin at gcc dot gnu.org
  Target Milestone: ---

I see some ICEs happening:

$ cat ice.i
int a;
int abs();
void b() { abs(a); }

$ gcc ice.i -Wabsolute-value -c
ice.i: In function ‘b’:
ice.i:3:1: internal compiler error: Segmentation fault
3 | void b() { abs(a); }
  | ^~~~
0xce366f crash_signal
/home/marxin/Programming/gcc/gcc/toplev.c:325
0x76bc310f ???
   
/usr/src/debug/glibc-2.27-6.1.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0x7f2113 tree_check(tree_node*, char const*, int, char const*, tree_code)
/home/marxin/Programming/gcc/gcc/tree.h:3112
0x7f2113 warn_for_abs
/home/marxin/Programming/gcc/gcc/c/c-parser.c:9226
0x7f2113 c_parser_postfix_expression_after_primary
/home/marxin/Programming/gcc/gcc/c/c-parser.c:9318
0x7e1c47 c_parser_postfix_expression
/home/marxin/Programming/gcc/gcc/c/c-parser.c:9006
0x7ebb82 c_parser_unary_expression
/home/marxin/Programming/gcc/gcc/c/c-parser.c:7266
0x7ec9ff c_parser_cast_expression
/home/marxin/Programming/gcc/gcc/c/c-parser.c:7110
0x7ecc73 c_parser_binary_expression
/home/marxin/Programming/gcc/gcc/c/c-parser.c:6913
0x7edb35 c_parser_conditional_expression
/home/marxin/Programming/gcc/gcc/c/c-parser.c:6647
0x7ee160 c_parser_expr_no_commas
/home/marxin/Programming/gcc/gcc/c/c-parser.c:6564
0x7ee3b2 c_parser_expression
/home/marxin/Programming/gcc/gcc/c/c-parser.c:9460
0x7f0476 c_parser_expression_conv
/home/marxin/Programming/gcc/gcc/c/c-parser.c:9493
0x7fc170 c_parser_statement_after_labels
/home/marxin/Programming/gcc/gcc/c/c-parser.c:5542
0x7fdf7e c_parser_compound_statement_nostart
/home/marxin/Programming/gcc/gcc/c/c-parser.c:5080
0x7fe6c6 c_parser_compound_statement
/home/marxin/Programming/gcc/gcc/c/c-parser.c:4914
0x7ffdb4 c_parser_declaration_or_fndef
/home/marxin/Programming/gcc/gcc/c/c-parser.c:2342
0x80675f c_parser_external_declaration
/home/marxin/Programming/gcc/gcc/c/c-parser.c:1643
0x806f99 c_parser_translation_unit
/home/marxin/Programming/gcc/gcc/c/c-parser.c:1524
0x806f99 c_parse_file()
/home/marxin/Programming/gcc/gcc/c/c-parser.c:18538

$ cat ice.c
void a(void) { abs(0); }

$ gcc -Wabsolute-value ice.c -c
ice.c: In function ‘a’:
ice.c:1:16: warning: implicit declaration of function ‘abs’
[-Wimplicit-function-declaration]
1 | void a(void) { abs(0); }
  |^~~
ice.c:1:1: internal compiler error: Segmentation fault
1 | void a(void) { abs(0); }
  | ^~~~
0xce366f crash_signal
/home/marxin/Programming/gcc/gcc/toplev.c:325
0x76bc310f ???
   
/usr/src/debug/glibc-2.27-6.1.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0x7f2113 tree_check(tree_node*, char const*, int, char const*, tree_code)
/home/marxin/Programming/gcc/gcc/tree.h:3112
0x7f2113 warn_for_abs
/home/marxin/Programming/gcc/gcc/c/c-parser.c:9226
0x7f2113 c_parser_postfix_expression_after_primary
/home/marxin/Programming/gcc/gcc/c/c-parser.c:9318
0x7e1c47 c_parser_postfix_expression
/home/marxin/Programming/gcc/gcc/c/c-parser.c:9006
0x7ebb82 c_parser_unary_expression
/home/marxin/Programming/gcc/gcc/c/c-parser.c:7266
0x7ec9ff c_parser_cast_expression
/home/marxin/Programming/gcc/gcc/c/c-parser.c:7110
0x7ecc73 c_parser_binary_expression
/home/marxin/Programming/gcc/gcc/c/c-parser.c:6913
0x7edb35 c_parser_conditional_expression
/home/marxin/Programming/gcc/gcc/c/c-parser.c:6647
0x7ee160 c_parser_expr_no_commas
/home/marxin/Programming/gcc/gcc/c/c-parser.c:6564
0x7ee3b2 c_parser_expression
/home/marxin/Programming/gcc/gcc/c/c-parser.c:9460
0x7f0476 c_parser_expression_conv
/home/marxin/Programming/gcc/gcc/c/c-parser.c:9493
0x7fc170 c_parser_statement_after_labels
/home/marxin/Programming/gcc/gcc/c/c-parser.c:5542
0x7fdf7e c_parser_compound_statement_nostart
/home/marxin/Programming/gcc/gcc/c/c-parser.c:5080
0x7fe6c6 c_parser_compound_statement
/home/marxin/Programming/gcc/gcc/c/c-parser.c:4914
0x7ffdb4 c_parser_declaration_or_fndef
/home/marxin/Programming/gcc/gcc/c/c-parser.c:2342
0x80675f c_parser_external_declaration
/home/marxin/Programming/gcc/gcc/c/c-parser.c:1643
0x806f99 c_parser_translation_unit
/home/marxin/Programming/gcc/gcc/c/c-parser.c:1524
0x806f99 c_parse_file()
/home/marxin/Programming/gcc/gcc/c/c-parser.c:18538

[Bug c++/87345] The compiler of the old version (for example: 4.9.3 version or 6.3.0 version) can stop the infinite cross-border loop, but the new version does not work.

2018-09-18 Thread jingtian at loongson dot cn
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87345

--- Comment #4 from jingtian at loongson dot cn ---
(In reply to Andrew Pinski from comment #3)
> *** Bug 87346 has been marked as a duplicate of this bug. ***

It might be because of the network, I submitted twice, sorry

[Bug c/87344] archival/libarchive/decompress_gunzip.c:1139:2: error: size of unnamed array is negative

2018-09-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87344

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-09-18
 CC||rguenth at gcc dot gnu.org
Version|6.4.1   |6.2.0
 Ever confirmed|0   |1
  Known to fail||6.2.0, 6.4.0, 7.2.0

--- Comment #3 from Richard Biener  ---
Confirmed with your gazillion command line flags, works fine with plain -Os.

Maybe you can remove the ones not necessary, it's hard to see if there's a
stupid user error.

[Bug target/87196] ICE in vectorizable_load, at tree-vect-stmts.c:8043

2018-09-18 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87196

--- Comment #1 from Martin Liška  ---
May I please ping this, can anybody reproduce that?

[Bug target/87344] archival/libarchive/decompress_gunzip.c:1139:2: error: size of unnamed array is negative, -mms-bitfields influences non-bitfield struct layout

2018-09-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87344

Richard Biener  changed:

   What|Removed |Added

   Keywords||ABI
 Target||x86_64-*-*, i?86-*-*
 CC|rguenth at gcc dot gnu.org |
  Component|c   |target
Summary|archival/libarchive/decompr |archival/libarchive/decompr
   |ess_gunzip.c:1139:2: error: |ess_gunzip.c:1139:2: error:
   |size of unnamed array is|size of unnamed array is
   |negative|negative, -mms-bitfields
   ||influences non-bitfield
   ||struct layout

--- Comment #4 from Richard Biener  ---
It's -mms-bitfields which appearantly influences layout of the following
struct:

 union {
  unsigned char raw[8];
  struct {
   uint8_t gz_method;
   uint8_t flags;
   uint32_t mtime;
   uint8_t xtra_flags_UNUSED;
   uint8_t os_flags_UNUSED;
  } __attribute__ ((__packed__)) formatted;
 } header;

 ((void)sizeof(char[1 - 2*!!(sizeof(header) != 8)]));

Not sure if the difference is intended.

[Bug target/87344] archival/libarchive/decompress_gunzip.c:1139:2: error: size of unnamed array is negative, -mms-bitfields influences non-bitfield struct layout

2018-09-18 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87344

Martin Liška  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||marxin at gcc dot gnu.org
 Resolution|--- |DUPLICATE

--- Comment #5 from Martin Liška  ---
Fixed in r258075, thus dup.

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

[Bug target/52991] [6/7/8 Regression] attribute packed broken on mingw32?

2018-09-18 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52991

Martin Liška  changed:

   What|Removed |Added

 CC||yellowriver2010 at hotmail dot 
com

--- Comment #35 from Martin Liška  ---
*** Bug 87344 has been marked as a duplicate of this bug. ***

[Bug c++/87340] Stack overflow problem for c++filt

2018-09-18 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87340

Martin Liška  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org

--- Comment #1 from Martin Liška  ---
Is the input a valid C++ mangled name of not?

[Bug c++/87333] A stack overflow problem for c++filt

2018-09-18 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87333

Martin Liška  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org

--- Comment #1 from Martin Liška  ---
Is the input a valid C++ mangled name of not?

[Bug c++/87335] The stack overflow in function cplus_demangle_type in cp-demangle.c:2565 (c++filt -t)

2018-09-18 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87335

Martin Liška  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org

--- Comment #1 from Martin Liška  ---
Is the input a valid C++ mangled name of not?

[Bug testsuite/87339] [9 Regression] gcc.dg/warn-abs-1.c FAILs

2018-09-18 Thread jamborm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87339

Martin Jambor  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2018-09-18
   Assignee|unassigned at gcc dot gnu.org  |jamborm at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Martin Jambor  ---
Confirmed and mine.  Sorry about that, I only tested a previous iteration of
the patch on non-x86_64 systems.

[Bug sanitizer/67513] ASAN: Not optimal shadow value check (unlikely condition checked in fast path)

2018-09-18 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67513

Martin Liška  changed:

   What|Removed |Added

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

--- Comment #15 from Martin Liška  ---
Ok, I played with that a bit. It would be possible to optimize the code, but
before I see some significant speed up I'm not interested enough.

[Bug c/87348] Implement -Watomic-implicit-seq-cst

2018-09-18 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87348

Martin Liška  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org,
   ||mpolacek at gcc dot gnu.org
   Severity|normal  |enhancement

[Bug c/87348] New: Implement -Watomic-implicit-seq-cst

2018-09-18 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87348

Bug ID: 87348
   Summary: Implement -Watomic-implicit-seq-cst
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: marxin at gcc dot gnu.org
  Target Milestone: ---

Maybe we would like to implement the same warning as LLVM:
https://reviews.llvm.org/rL341860

[Bug c++/87335] The stack overflow in function cplus_demangle_type in cp-demangle.c:2565 (c++filt -t)

2018-09-18 Thread wcventure at 126 dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87335

--- Comment #2 from Cheng Wen  ---
(In reply to Martin Liška from comment #1)
> Is the input a valid C++ mangled name of not?

Hi,
This input is obtained through fuzzing technology. Our fuzzer get some test
cases by mutating a valid input. This can not guarantee that this is a valid
C++ mangled name. 

The program c++filt accepts the test case I uploaded. And this test case can
prove that c++filt have problems. When program c++filt executing this input, a
stack-overflow problem occurs. Please check this input and try to fix this bug
if necessary.

Thank you very much.

[Bug tree-optimization/87349] New: [9 Regression] ICE: Segmentation fault (in useless_type_conversion_p or is_gimple_reg_type)

2018-09-18 Thread asolokha at gmx dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87349

Bug ID: 87349
   Summary: [9 Regression] ICE: Segmentation fault (in
useless_type_conversion_p or is_gimple_reg_type)
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  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-alpha20180916 snapshot (r264351) ICEs when compiling the following
snippets w/ -O1 or -Og:

1.

void
h1 (int *fh, int pw)
{
  *fh = 0;
  if (*fh != 0)
for (;;)
  {
fh = &pw;

if (pw == 0)
  {
  }
else
  while (pw < 1)
{
  if (pw == 0)
{
 ut:
  ;
}

  ++pw;
}

if (pw == *fh)
  goto ut;
  }

  goto ut;
}

% gcc-9.0.0-alpha20180916 -O1 -c nshv93ku.c
during GIMPLE pass: fre
nshv93ku.c: In function 'h1':
nshv93ku.c:30:1: internal compiler error: Segmentation fault
30 | }
   | ^
0xcc84df crash_signal
   
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180916/work/gcc-9-20180916/gcc/toplev.c:325
0xa296f0 useless_type_conversion_p(tree_node*, tree_node*)
   
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180916/work/gcc-9-20180916/gcc/gimple-expr.c:70
0xd0149c verify_gimple_assign_single
   
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180916/work/gcc-9-20180916/gcc/tree-cfg.c:4390
0xd0149c verify_gimple_assign
   
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180916/work/gcc-9-20180916/gcc/tree-cfg.c:4612
0xd0149c verify_gimple_stmt
   
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180916/work/gcc-9-20180916/gcc/tree-cfg.c:4880
0xd107b3 verify_gimple_in_cfg(function*, bool)
   
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180916/work/gcc-9-20180916/gcc/tree-cfg.c:5358
0xbe74af execute_function_todo
   
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180916/work/gcc-9-20180916/gcc/passes.c:1943
0xbe839e execute_todo
   
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180916/work/gcc-9-20180916/gcc/passes.c:1997

2.

--- nshv93ku.c.jj   2018-09-18 15:40:38.439857690 +0700
+++ nshv93ku.c  2018-09-18 15:40:59.678335059 +0700
@@ -22,7 +22,7 @@ h1 (int *fh, int pw)
   ++pw;
 }

-if (pw == 0)
+if (pw == *fh)
   goto ut;
   }


during GIMPLE pass: fre
nshv93ku.c: In function 'h1':
nshv93ku.c:30:1: internal compiler error: Segmentation fault
30 | }
   | ^
0xcc84df crash_signal
   
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180916/work/gcc-9-20180916/gcc/toplev.c:325
0xa2abc1 is_gimple_reg_type
   
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180916/work/gcc-9-20180916/gcc/gimple-expr.h:75
0xa2abc1 is_gimple_val(tree_node*)
   
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180916/work/gcc-9-20180916/gcc/gimple-expr.c:789
0xd1044a verify_gimple_phi
   
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180916/work/gcc-9-20180916/gcc/tree-cfg.c:4975
0xd1044a verify_gimple_in_cfg(function*, bool)
   
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180916/work/gcc-9-20180916/gcc/tree-cfg.c:5303
0xbe74af execute_function_todo
   
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180916/work/gcc-9-20180916/gcc/passes.c:1943
0xbe839e execute_todo
   
/var/tmp/portage/sys-devel/gcc-9.0.0_alpha20180916/work/gcc-9-20180916/gcc/passes.c:1997

[Bug c++/55588] Failure to diagnose non-template-id prefixed by keyword template

2018-09-18 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55588

Jonathan Wakely  changed:

   What|Removed |Added

   Last reconfirmed|2017-08-21 00:00:00 |2018-9-18

--- Comment #5 from Jonathan Wakely  ---
G++ and Clang still accept this, EDG still rejects it.

[Bug c++/87340] Stack overflow problem for c++filt

2018-09-18 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87340

--- Comment #2 from Jonathan Wakely  ---
No. None of them look valid.

[Bug c++/87333] A stack overflow problem for c++filt

2018-09-18 Thread wcventure at 126 dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87333

--- Comment #2 from Cheng Wen  ---
(In reply to Martin Liška from comment #1)
> Is the input a valid C++ mangled name of not?

Hi,
This input is obtained through fuzzing technology. Our fuzzer get some test
cases by mutating a valid input. This can not guarantee that this is a valid
C++ mangled name. 

The program c++filt accepts the test case I uploaded. And this test case can
prove that c++filt have problems. When program c++filt executing this input, a
stack-overflow problem occurs. Please check this input and try to fix this bug
if necessary.

Thank you very much.

[Bug c++/87335] The stack overflow in function cplus_demangle_type in cp-demangle.c:2565 (c++filt -t)

2018-09-18 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87335

--- Comment #3 from Jonathan Wakely  ---
No, it's not a valid name. I can't reproduce a crash using the latest code from
GCC though.

[Bug c++/87340] Stack overflow problem for c++filt

2018-09-18 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87340

--- Comment #3 from Martin Liška  ---
Then it would deserve something like segfault-on-invalid-input :)
Or should I use ice-on-invalid-code?

[Bug c++/81880] thread_local static member template initialisation fails

2018-09-18 Thread latimerius at seznam dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81880

Latimerius  changed:

   What|Removed |Added

 CC||latimerius at seznam dot cz

--- Comment #2 from Latimerius  ---
This bug still seems to exist in the current 9.0 HEAD.  Note also that another
possible work-around might be to wrap the thread_local member in an accessor
function, along the lines of

class A {
public:
  template
  std::unordered_map & get_m ()
  {
thread_local static std::unordered_map m;
return m;
  }
};

[Bug gcov-profile/85871] [8 Regression] g++.dg/gcov/gcov-8.C random failures

2018-09-18 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85871

--- Comment #13 from Martin Liška  ---
Author: marxin
Date: Tue Sep 18 09:32:09 2018
New Revision: 264387

URL: https://gcc.gnu.org/viewcvs?rev=264387&root=gcc&view=rev
Log:
Backport r264363

2018-09-18  Martin Liska  

Backport from mainline
2018-09-17  Martin Liska  

PR gcov-profile/85871
* gcov.c (output_intermediate_file): Fix out of bounds
access.

Modified:
branches/gcc-8-branch/gcc/ChangeLog
branches/gcc-8-branch/gcc/gcov.c

[Bug c/87347] ICE in warn_for_abs at gcc/c/c-parser.c:9226 since r264368

2018-09-18 Thread jamborm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87347

--- Comment #1 from Martin Jambor  ---
Bah, I should have thought about this.  The following will fix it, I'll
properly test it and submit a patch later this week.

diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c
index 1766a256633..a96d15fef1d 100644
--- a/gcc/c/c-parser.c
+++ b/gcc/c/c-parser.c
@@ -9116,9 +9116,10 @@ warn_for_abs (location_t loc, tree fndecl, tree arg)
  -Wint-conversion warnings.  Most other wrong types hopefully lead to type
  mismatch errors.  TODO: Think about what to do with FIXED_POINT_TYPE_P
  types and possibly other exotic types.  */
-  if (!INTEGRAL_TYPE_P (atype)
-  && !SCALAR_FLOAT_TYPE_P (atype)
-  && TREE_CODE (atype) != COMPLEX_TYPE)
+  if ((!INTEGRAL_TYPE_P (atype)
+   && !SCALAR_FLOAT_TYPE_P (atype)
+   && TREE_CODE (atype) != COMPLEX_TYPE)
+  || !TYPE_ARG_TYPES (TREE_TYPE (fndecl)))
 return;

   enum built_in_function fcode = DECL_FUNCTION_CODE (fndecl);

[Bug c++/87350] New: NULL-Pointer problem in cplus-dem.c when executing program c++filt

2018-09-18 Thread wcventure at 126 dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87350

Bug ID: 87350
   Summary: NULL-Pointer problem in cplus-dem.c when executing
program c++filt
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: wcventure at 126 dot com
  Target Milestone: ---

Hi,

Our fuzzer caught NULL-Pointer problems in c++filt of the latest binutils code
base, those inputs will cause the segment faults and I have confirmed them with
address sanitizer. 
Please use the “c++filt < $POC ” to reproduce the bug.
Please check it and debug it. Thank you.


The ASAN dumps the stack trace as follows on POC1:
https://github.com/ntu-sec/pocs/blob/master/binutils-aff4a119/crashes/npd_r_cplus-dem.c:1345_1.err.txt

AddressSanitizer:DEADLYSIGNAL
=
==23610==ERROR: AddressSanitizer: SEGV on unknown address 0x (pc
0x7f67702435a1 bp 0x7ffe2a376680 sp 0x7ffe2a375e08 T0)
==23610==The signal is caused by a READ memory access.
==23610==Hint: address points to the zero page.
#0 0x7f67702435a0 
/build/glibc-OTsEL5/glibc-2.27/string/../sysdeps/x86_64/multiarch/strlen-avx2.S:59
#1 0x49728c in __interceptor_strlen.part.30
(/home/hongxu/FOT/binutils/BUILD/install/bin/c++filt+0x49728c)
#2 0x8c9caa in work_stuff_copy_to_from
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:1345:17
#3 0x8c553c in iterate_demangle_function
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:2731:3
#4 0x8b77ec in demangle_prefix
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:2971:14
#5 0x8b2d00 in internal_cplus_demangle
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:1253:14
#6 0x8afe53 in cplus_demangle
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:918:9
#7 0x513dd5 in demangle_it
/home/hongxu/FOT/binutils/BUILD/binutils/../../binutils/cxxfilt.c:62:12
#8 0x5139c9 in main
/home/hongxu/FOT/binutils/BUILD/binutils/../../binutils/cxxfilt.c:276:4
#9 0x7f67700d6b96 in __libc_start_main
/build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310
#10 0x41a989 in _start
(/home/hongxu/FOT/binutils/BUILD/install/bin/c++filt+0x41a989)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV
/build/glibc-OTsEL5/glibc-2.27/string/../sysdeps/x86_64/multiarch/strlen-avx2.S:59
 
==23610==ABORTING


The ASAN dumps the stack trace as follows on POC2:
https://github.com/ntu-sec/pocs/blob/master/binutils-aff4a119/crashes/npd_r_cplus-dem.c:1360_1.err.txt

AddressSanitizer:DEADLYSIGNAL
=
==23847==ERROR: AddressSanitizer: SEGV on unknown address 0x (pc
0x008ca218 bp 0x7ffe44bfad50 sp 0x7ffe44bfaa10 T0)
==23847==The signal is caused by a READ memory access.
==23847==Hint: address points to the zero page.
#0 0x8ca217 in work_stuff_copy_to_from
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:1360:25
#1 0x8c553c in iterate_demangle_function
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:2731:3
#2 0x8b77ec in demangle_prefix
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:2971:14
#3 0x8b2d00 in internal_cplus_demangle
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:1253:14
#4 0x8afe53 in cplus_demangle
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:918:9
#5 0x513dd5 in demangle_it
/home/hongxu/FOT/binutils/BUILD/binutils/../../binutils/cxxfilt.c:62:12
#6 0x5139c9 in main
/home/hongxu/FOT/binutils/BUILD/binutils/../../binutils/cxxfilt.c:276:4
#7 0x7ff52abf2b96 in __libc_start_main
/build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c:310
#8 0x41a989 in _start
(/home/hongxu/FOT/binutils/BUILD/install/bin/c++filt+0x41a989)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:1360:25
in work_stuff_copy_to_from
==23847==ABORTING

[Bug c++/87350] NULL-Pointer problem in cplus-dem.c when executing program c++filt

2018-09-18 Thread wcventure at 126 dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87350

--- Comment #1 from Cheng Wen  ---
Created attachment 44714
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44714&action=edit
POC1

[Bug c++/87350] NULL-Pointer problem in cplus-dem.c when executing program c++filt

2018-09-18 Thread wcventure at 126 dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87350

--- Comment #2 from Cheng Wen  ---
Created attachment 44715
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44715&action=edit
POC2

[Bug c++/87335] The stack overflow in function cplus_demangle_type in cp-demangle.c:2565 (c++filt -t)

2018-09-18 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87335

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2018-09-18
 Ever confirmed|0   |1

--- Comment #4 from Jonathan Wakely  ---
Are you sure you attached the right file? When I try to demangle the attachment
it doesn't crash, the __cxa_demangle file returns -2, meaning the name is not
valid. That seems like the right result.

[Bug c++/87340] Stack overflow problem for c++filt

2018-09-18 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87340

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-09-18
 Ever confirmed|0   |1

--- Comment #4 from Jonathan Wakely  ---
The __cxa_demangle function returns 2 for each of these testcases, but the
cplus_demangle function segfaults.

[Bug c++/87335] The stack overflow in function cplus_demangle_type in cp-demangle.c:2565 (c++filt -t)

2018-09-18 Thread wcventure at 126 dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87335

--- Comment #5 from Cheng Wen  ---
(In reply to Jonathan Wakely from comment #4)
> Are you sure you attached the right file? When I try to demangle the
> attachment it doesn't crash, the __cxa_demangle file returns -2, meaning the
> name is not valid. That seems like the right result.

I have tried to reproduce this bug on different machines.
There are some questions to be confirmed.

(1) Do you use the latest version of binutils(binutils-2.32/binutils-2.31)? I
downloaded the package from here.
https://www.gnu.org/software/binutils/

(2) Please confirm that you have used the option "-t".
The command should be "./c++filt -t < $POC"

(3) Do you confirm this POC with address sanitizer?

[Bug c++/80635] std::optional and bogus -Wmaybe-uninitialized warning

2018-09-18 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635

Manuel López-Ibáñez  changed:

   What|Removed |Added

 CC||manu at gcc dot gnu.org,
   ||msebor at gcc dot gnu.org

--- Comment #13 from Manuel López-Ibáñez  ---
This may be another case where it is worth it to print the inline stack AND
silence a warning whose inline stack is within pragma GCC diagnostics.

However, there seems to be another kind of missed optimization going on here.

[Bug c++/87333] A stack overflow problem for c++filt

2018-09-18 Thread wcventure at 126 dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87333

--- Comment #3 from Cheng Wen  ---
Created attachment 44716
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44716&action=edit
POC1

I have the new POC to add.
Please use the “c++filt < $POC ” to reproduce the bug.
Please check it and debug it. Thank you.


POC1:
https://github.com/ntu-sec/pocs/blob/master/binutils-aff4a119/crashes/so_cplus-dem.c:4960_1

The ASAN dumps the stack trace as follows on POC1:
https://github.com/ntu-sec/pocs/blob/master/binutils-aff4a119/crashes/so_cplus-dem.c:4960_1.err.txt

AddressSanitizer:DEADLYSIGNAL
=
==24028==ERROR: AddressSanitizer: stack-overflow on address 0x7ffd854a7e18 (pc
0x00497287 bp 0x7ffd854a8690 sp 0x7ffd854a7e20 T0)
#0 0x497286 in __interceptor_strlen.part.30
(/home/hongxu/FOT/binutils/BUILD/install/bin/c++filt+0x497286)
#1 0x8bdc7e in string_append
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:4960:7
#2 0x8cb7f5 in demangle_args
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:4578:7
#3 0x8cdff7 in demangle_nested_args
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:4713:12
#4 0x8ad46a in do_type
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:3719:9
#5 0x8cd8c6 in do_arg
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:4332:8
...
...
...
#244 0x8ad46a in do_type
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:3719:9
#245 0x8cd8c6 in do_arg
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:4332:8
#246 0x8cc7b4 in demangle_args
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:4659:9
#247 0x8cdff7 in demangle_nested_args
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:4713:12
#248 0x8ad46a in do_type
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:3719:9
#249 0x8cd8c6 in do_arg
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:4332:8

SUMMARY: AddressSanitizer: stack-overflow
(/home/hongxu/FOT/binutils/BUILD/install/bin/c++filt+0x497286) in
__interceptor_strlen.part.30
==24028==ABORTING

[Bug c++/87333] A stack overflow problem for c++filt

2018-09-18 Thread wcventure at 126 dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87333

--- Comment #4 from Cheng Wen  ---
Created attachment 44717
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44717&action=edit
POC2

I have the new POC to add.
Please use the “c++filt < $POC ” to reproduce the bug.
Please check it and debug it. Thank you.

POC2:
https://github.com/ntu-sec/pocs/blob/master/binutils-aff4a119/crashes/so_cplus-dem.c:4960_2

The ASAN dumps the stack trace as follows on POC2:
https://github.com/ntu-sec/pocs/blob/master/binutils-aff4a119/crashes/so_cplus-dem.c:4960_2.err.txt

AddressSanitizer:DEADLYSIGNAL
=
==24101==ERROR: AddressSanitizer: stack-overflow on address 0x7ffcd22d1fd8 (pc
0x00497287 bp 0x7ffcd22d2850 sp 0x7ffcd22d1fe0 T0)
#0 0x497286 in __interceptor_strlen.part.30
(/home/hongxu/FOT/binutils/BUILD/install/bin/c++filt+0x497286)
#1 0x8bdc7e in string_append
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:4960:7
#2 0x8cb7f5 in demangle_args
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:4578:7
#3 0x8cdff7 in demangle_nested_args
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:4713:12
#4 0x8ad46a in do_type
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:3719:9
#5 0x8cd8c6 in do_arg
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:4332:8
...
...
...
#245 0x8cd8c6 in do_arg
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:4332:8
#246 0x8cc7b4 in demangle_args
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:4659:9
#247 0x8cdff7 in demangle_nested_args
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:4713:12
#248 0x8ad46a in do_type
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:3719:9
#249 0x8cd8c6 in do_arg
/home/hongxu/FOT/binutils/BUILD/libiberty/../../libiberty/cplus-dem.c:4332:8

SUMMARY: AddressSanitizer: stack-overflow
(/home/hongxu/FOT/binutils/BUILD/install/bin/c++filt+0x497286) in
__interceptor_strlen.part.30
==24101==ABORTING

[Bug c++/87335] The stack overflow in function cplus_demangle_type in cp-demangle.c:2565 (c++filt -t)

2018-09-18 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87335

--- Comment #6 from Jonathan Wakely  ---
(In reply to Cheng Wen from comment #5)
> (In reply to Jonathan Wakely from comment #4)
> > Are you sure you attached the right file? When I try to demangle the
> > attachment it doesn't crash, the __cxa_demangle file returns -2, meaning the
> > name is not valid. That seems like the right result.
> 
> I have tried to reproduce this bug on different machines.
> There are some questions to be confirmed.
> 
> (1) Do you use the latest version of binutils(binutils-2.32/binutils-2.31)?
> I downloaded the package from here.
> https://www.gnu.org/software/binutils/

Built from the binutils-gdb git repo:

$ /tmp/binutils/bin/c++filt -v
GNU c++filt (GNU Binutils) 2.31.51.20180918
Copyright (C) 2018 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.


> (2) Please confirm that you have used the option "-t".
> The command should be "./c++filt -t < $POC"

$ /tmp/binutils/bin/c++filt -t < POC-t | wc 
  0   1   26539
$ echo $?
0


> (3) Do you confirm this POC with address sanitizer?

Yes it's linked to libasan

$ ldd /tmp/binutils/bin/c++filt 
linux-vdso.so.1 (0x7fff0618b000)
libasan.so.4 => /lib64/libasan.so.4 (0x7fc372241000)
libdl.so.2 => /lib64/libdl.so.2 (0x7fc37203d000)
libc.so.6 => /lib64/libc.so.6 (0x7fc371c87000)
librt.so.1 => /lib64/librt.so.1 (0x7fc371a7f000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x7fc371861000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x7fc3714d9000)
libm.so.6 => /lib64/libm.so.6 (0x7fc37118e000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x7fc370f77000)
/lib64/ld-linux-x86-64.so.2 (0x7fc3731f9000)

[Bug gcov-profile/85871] g++.dg/gcov/gcov-8.C random failures

2018-09-18 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85871

Martin Liška  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||8.2.1
 Resolution|--- |FIXED
Summary|[8 Regression]  |g++.dg/gcov/gcov-8.C random
   |g++.dg/gcov/gcov-8.C random |failures
   |failures|
  Known to fail|8.2.0   |

--- Comment #14 from Martin Liška  ---
Fixed on all active branches.

[Bug c++/87350] NULL-Pointer problem in cplus-dem.c when executing program c++filt

2018-09-18 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87350

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-09-18
 Ever confirmed|0   |1

--- Comment #3 from Jonathan Wakely  ---
(In reply to Cheng Wen from comment #1)
> Created attachment 44714 [details]
> POC1

You've uploaded two complete HTML pages saved from github, but the mangled name
that crash are just:

_GLOBAL_$D$__tf30___0__
__thunk_0__0__$__H1



$ echo '_GLOBAL_$D$__tf30___0__' | /tmp/binutils/bin/c++filt 
ASAN:DEADLYSIGNAL
=
==6977==ERROR: AddressSanitizer: SEGV on unknown address 0x (pc
0x7f5fbbb47f31 bp 0x7fff4a202c20 sp 0x7fff4a202398 T0)
==6977==The signal is caused by a READ memory access.
==6977==Hint: address points to the zero page.
#0 0x7f5fbbb47f30 in __strlen_avx2 (/lib64/libc.so.6+0x155f30)
#1 0x7f5fbbffd27b  (/lib64/libasan.so.4+0x5127b)
#2 0x497e34 in work_stuff_copy_to_from
/home/jwakely/src/binutils-gdb/libiberty/cplus-dem.c:1345
#3 0x49cdd8 in iterate_demangle_function
/home/jwakely/src/binutils-gdb/libiberty/cplus-dem.c:2731
#4 0x49d962 in demangle_prefix
/home/jwakely/src/binutils-gdb/libiberty/cplus-dem.c:2971
#5 0x49d962 in internal_cplus_demangle
/home/jwakely/src/binutils-gdb/libiberty/cplus-dem.c:1253
#6 0x498860 in cplus_demangle
/home/jwakely/src/binutils-gdb/libiberty/cplus-dem.c:918
#7 0x402ea5 in demangle_it (/tmp/binutils/bin/c++filt+0x402ea5)
#8 0x4037af in main (/tmp/binutils/bin/c++filt+0x4037af)
#9 0x7f5fbba12fe9 in __libc_start_main (/lib64/libc.so.6+0x20fe9)
#10 0x402d29 in _start (/tmp/binutils/bin/c++filt+0x402d29)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/lib64/libc.so.6+0x155f30) in __strlen_avx2
==6977==ABORTING
wraith:tmp$ echo '__thunk_0__0__$__H1' | /tmp/binutils/bin/c++filt 
ASAN:DEADLYSIGNAL
=
==6981==ERROR: AddressSanitizer: SEGV on unknown address 0x (pc
0x00497f27 bp 0x7ffc897891e0 sp 0x7ffc89789170 T0)
==6981==The signal is caused by a READ memory access.
==6981==Hint: address points to the zero page.
#0 0x497f26 in work_stuff_copy_to_from
/home/jwakely/src/binutils-gdb/libiberty/cplus-dem.c:1358
#1 0x49cdd8 in iterate_demangle_function
/home/jwakely/src/binutils-gdb/libiberty/cplus-dem.c:2731
#2 0x49d962 in demangle_prefix
/home/jwakely/src/binutils-gdb/libiberty/cplus-dem.c:2971
#3 0x49d962 in internal_cplus_demangle
/home/jwakely/src/binutils-gdb/libiberty/cplus-dem.c:1253
#4 0x498860 in cplus_demangle
/home/jwakely/src/binutils-gdb/libiberty/cplus-dem.c:918
#5 0x402ea5 in demangle_it (/tmp/binutils/bin/c++filt+0x402ea5)
#6 0x4037af in main (/tmp/binutils/bin/c++filt+0x4037af)
#7 0x7ff5a9a18fe9 in __libc_start_main (/lib64/libc.so.6+0x20fe9)
#8 0x402d29 in _start (/tmp/binutils/bin/c++filt+0x402d29)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV
/home/jwakely/src/binutils-gdb/libiberty/cplus-dem.c:1358 in
work_stuff_copy_to_from
==6981==ABORTING

[Bug c++/87335] The stack overflow in function cplus_demangle_type in cp-demangle.c:2565 (c++filt -t)

2018-09-18 Thread wcventure at 126 dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87335

--- Comment #7 from Cheng Wen  ---
(In reply to Jonathan Wakely from comment #6)

Considering the memory size of different machines, maybe more 'P' is needed to
trigger this bug in the input.

[Bug c++/87335] The stack overflow in function cplus_demangle_type in cp-demangle.c:2565 (c++filt -t)

2018-09-18 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87335

--- Comment #8 from Jonathan Wakely  ---
It still works for up to ten million characters:

$ for i in `seq 1 10` ; do printf P ; done | /tmp/binutils/bin/c++filt -t ;
echo
PP
$ for i in `seq 1 100` ; do printf P ; done | /tmp/binutils/bin/c++filt -t | wc 
  0   1 100
$ for i in `seq 1 1000` ; do printf P ; done | /tmp/binutils/bin/c++filt -t |
wc 
  0   11000
$ for i in `seq 1 1` ; do printf P ; done | /tmp/binutils/bin/c++filt -t |
wc 
  0   1   1
$ for i in `seq 1 10` ; do printf P ; done | /tmp/binutils/bin/c++filt -t |
wc 
  0   1  10
$ for i in `seq 1 100` ; do printf P ; done | /tmp/binutils/bin/c++filt -t
| wc 
  0   1 100
$ for i in `seq 1 1000` ; do printf P ; done | /tmp/binutils/bin/c++filt -t
| wc 
  0   1 1000

[Bug c++/87350] NULL-Pointer problem in cplus-dem.c when executing program c++filt

2018-09-18 Thread wcventure at 126 dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87350

--- Comment #4 from Cheng Wen  ---
Yes.

One input test case is "_GLOBAL_$D$__tf30___0__".
Another input test case is "__thunk_0__0__$__H1".

I see that you can you can reproduce this error. Do you know the reason for
this bug?

[Bug c++/54052] g++ takes excessive time in opt and generate phase; can lead to Segmentation Fault when not enough memory available

2018-09-18 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54052

Jonathan Wakely  changed:

   What|Removed |Added

   Last reconfirmed|2017-08-22 00:00:00 |2018-9-18
 CC|redi at gcc dot gnu.org|

--- Comment #9 from Jonathan Wakely  ---
Compiles successfully using i686-pc-linux-gnu, but takes a long time. As I
said, it's an unreasonably large expression (3883 lines!) so that's not
surprising. Don't write silly code if you don't have enough memory to compile
it.

I tried compiling it with Clang and it crashes.

[Bug tree-optimization/87342] [9 Regression] ICE: verify_ssa failed (error: definition in block 10 does not dominate use in block 8)

2018-09-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87342

--- Comment #2 from Richard Biener  ---
Thanks, that's another case similar to PR87263 where we cannot use
dominated_by_p_w_unex.  But I think the error is in computation of max_rpo
for BB 15 which is 6 instead of 13.  Because we're supposed to mark the
respective edges executable.

Needs more thinking.

[Bug preprocessor/87351] New: misleading error message: missing binary operator before token "("

2018-09-18 Thread vincent-gcc at vinc17 dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87351

Bug ID: 87351
   Summary: misleading error message: missing binary operator
before token "("
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: preprocessor
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vincent-gcc at vinc17 dot net
  Target Milestone: ---

The error message

  error: missing binary operator before token "("

from the preprocessor is misleading in general, as in most cases, it is not a
binary operator that is missing, but the error is due to the use of sizeof, a
cast, or a function-like macro that is not defined. The preprocessor could
either output a fixed error message that would reflect the most common
misusages, or try to guess what is wrong (like the use of sizeof or something
that looks like a cast).

For instance:

$ cat tst.c
#if sizeof(int) > 4
#endif
$ gcc-snapshot -E tst.c
# 1 "tst.c"
# 1 ""
# 1 ""
# 31 ""
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 32 "" 2
# 1 "tst.c"
tst.c:1:11: error: missing binary operator before token "("
1 | #if sizeof(int) > 4
  |   ^

Some users can get confused. For instance, see:
*
https://stackoverflow.com/questions/21338385/what-does-the-compiler-error-missing-binary-operator-before-token-mean
*
https://cboard.cprogramming.com/c-programming/158452-error-missing-binary-operator-before-token.html
*
https://www.linuxquestions.org/questions/programming-9/missing-binary-operator-before-token-4175547706/
* https://forum.kde.org/viewtopic.php?f=269&t=128141

[Bug bootstrap/87338] gcc 8.2 fails to bootstrap on ia64

2018-09-18 Thread jason.duerstock at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87338

--- Comment #3 from Jason Duerstock  ---
Yes.  From the Debian build log:
https://buildd.debian.org/status/fetch.php?pkg=gcc-7&arch=ia64&ver=7.3.0-29&stamp=1536161281&raw=0

[Bug rtl-optimization/86882] [9 Regression] ICE in reg_overlap_mentioned_p, at rtlanal.c:1873

2018-09-18 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86882

Segher Boessenkool  changed:

   What|Removed |Added

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

--- Comment #7 from Segher Boessenkool  ---
I have a patch.

[Bug target/87330] ICE in scan_rtx_reg, at regrename.c:1097

2018-09-18 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87330

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed|2018-09-17 00:00:00 |2018-09-18
   Assignee|unassigned at gcc dot gnu.org  |siddhesh at gotplt dot 
org
 Ever confirmed|0   |1

--- Comment #3 from ktkachov at gcc dot gnu.org ---
Assigning.

[Bug preprocessor/87351] misleading error message: missing binary operator before token "("

2018-09-18 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87351

Jonathan Wakely  changed:

   What|Removed |Added

   Keywords||diagnostic
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-09-18
 Ever confirmed|0   |1

[Bug fortran/87352] New: Large stack usage with new gfortran

2018-09-18 Thread jeremy at jeremysanders dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87352

Bug ID: 87352
   Summary: Large stack usage with new gfortran
   Product: gcc
   Version: 8.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jeremy at jeremysanders dot net
  Target Milestone: ---

Created attachment 44718
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44718&action=edit
Affected module and example main program

With gcc/gfortran 7.3 and 8.2, creation of a variable in the main program with
a particular type defined in a module (attached) leads to a segfault due to
very large stack usage. This worked on gcc 4.8.4 and earlier versions.

In addition compilation of the module creates an object file which is x1
times larger than for earlier gcc versions (200MB vs 25KB). With optimization
(-O2), the compilation time is several minutes, rather than less than a second.

Instructions for compilation:

$ gfortran -ffixed-line-length-none -ffree-line-length-none -g -O2 -o testcomb
testcomb.f90 
testcomb.f90:1303:0:

 end module  testmodule

note: variable tracking size limit exceeded with -fvar-tracking-assignments,
retrying without
$ ./testcomb 
$ gdb ./testcomb 
GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git
...
(gdb) run
Starting program: /home/jsanders/tmp/foo/testcomb 

Program received signal SIGSEGV, Segmentation fault.
testprog () at testcomb.f90:1309
1309  type(instlist_type),target:: instlist

It works if the stack is increased to 819200.

This problem is seen using Ubuntu Bionic (18.04) on x86-64, using the built-in
gcc (7.3.0), or a self-compiled version (8.2.0) with no special build options.

[Bug other/87353] New: gcc man page formatting issue due to leading spaces in .texi contents

2018-09-18 Thread vincent-gcc at vinc17 dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87353

Bug ID: 87353
   Summary: gcc man page formatting issue due to leading spaces in
.texi contents
   Product: gcc
   Version: 9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vincent-gcc at vinc17 dot net
  Target Milestone: ---

The gcc(1) man page (gcc.1) shows as:

   Therefore, the G++ and driver automatically adds -shared-libgcc
whenever you build a shared library or a main executable, because
   C++
programs typically use exceptions, so this is the right thing to
   do.

This is due to gcc/doc/invoke.texi containing leading spaces:

Therefore, the G++ and driver automatically adds @option{-shared-libgcc}
 whenever you build a shared library or a main executable, because C++
 programs typically use exceptions, so this is the right thing to do.

Removing these spaces should solve the problem (I haven't checked other parts
of the manual), but AFAIK, such spaces are valid and do not yield any issue in
generated .info files. Thus the real bug could be in conversion utilities
(contrib/texi2pod.pl, provided by GCC, or pod2man).

[Bug other/87353] gcc man page formatting issue due to leading spaces in .texi contents

2018-09-18 Thread vincent-gcc at vinc17 dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87353

--- Comment #1 from Vincent Lefèvre  ---
The bug may be in contrib/texi2pod.pl as the following pod text is generated:

Therefore, the G++ and driver automatically adds B<-shared-libgcc>
 whenever you build a shared library or a main executable, because C++
 programs typically use exceptions, so this is the right thing to do.

and the pod specification says: "A verbatim paragraph is distinguished by
having its first character be a space or a tab."

[Bug c++/87335] The stack overflow in function cplus_demangle_type in cp-demangle.c:2565 (c++filt -t)

2018-09-18 Thread wcventure at 126 dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87335

--- Comment #9 from Cheng Wen  ---
(In reply to Jonathan Wakely from comment #8)

Hi Jonathan,

I debugged with this POC again. I still think it's a problem. I will show you
the debug process as follow.

> $ gdb ./c++filt
> Reading symbols from ./c++filt...done.
> (gdb) set args -t < POC-t
> (gdb) b cp-demangle.c:2565
> Breakpoint 1 at 0x8d5227: file ./cp-demangle.c, line 2565.
> (gdb) start
> (gdb) c
> Continuing.
> Breakpoint 1, cplus_demangle_type (di=0x7fffd560) at ./cp-demangle.c:2565
> 2565  cplus_demangle_type (di), NULL);
> (gdb) c
> Continuing.
> Breakpoint 1, cplus_demangle_type (di=0x7fffd560) at ./cp-demangle.c:2565
> 2565  cplus_demangle_type (di), NULL);
> ...
> ...
> ...
> (gdb) c
> Continuing.
> Breakpoint 1, cplus_demangle_type (di=0x7fffd560) at ./cp-demangle.c:2565
> 2565  cplus_demangle_type (di), NULL);
> (gdb) bt
> #0  cplus_demangle_type (di=0x7fffd560) at ./cp-demangle.c:2565
> #1  0x008d523d in cplus_demangle_type (di=0x7fffd560) at 
> ./cp-demangle.c:2565
> #2  0x008d523d in cplus_demangle_type (di=0x7fffd560) at 
> ./cp-demangle.c:2565
> #3  0x008d523d in cplus_demangle_type (di=0x7fffd560) at 
> ./cp-demangle.c:2565
> #4  0x008d523d in cplus_demangle_type (di=0x7fffd560) at 
> ./cp-demangle.c:2565
> ...
> ...
> ...
> #456 0x008d523d in cplus_demangle_type (di=0x7fffd560) at 
> ./cp-demangle.c:2565
> #457 0x008d523d in cplus_demangle_type (di=0x7fffd560) at 
> ./cp-demangle.c:2565
> #458 0x008dd318 in d_demangle_callback (mangled=0x18b2e40 
>  'P' ..., options=283,
>   callback=0x8dc110 , 
> opaque=0x7fffd860) at ./cp-demangle.c:6245
> #459 0x008dc84f in d_demangle (mangled=0x18b2e40  'P' 
> ..., options=283,
>   palc=0x7fffd9e0) at ./cp-demangle.c:6299
> #460 0x008dc696 in cplus_demangle_v3 (mangled=0x18b2e40 
>  'P' ..., options=283)
>   at ./cp-demangle.c:6456
> #461 0x008b1cf4 in cplus_demangle (mangled=0x18b2e40  
> 'P' ..., options=27)
>   at ./cplus-dem.c:880
> #462 0x00517676 in demangle_it (mangled_name=0x18b2e40  
> 'P' ...) at cxxfilt.c:62
> #463 0x0051726a in main (argc=2, argv=0x7fffe008) at cxxfilt.c:276


Using gdb to debug it. I set a breakpoint in cp-demangle.c:2565. After reaching
this breakpoint for any time. You can see the stack backtrace.
This will consume a lot of stack memory.
(Caution: the command such as "gdb --args ./c++filt -t < $POC" is not valid.
Please use "gdb ./c++filt", then "set args -t < $POC")

Thanks
Cheng Wen

[Bug fortran/87341] gfortran can not link executables: _edata: invalid version 21 (max 4)

2018-09-18 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87341

H.J. Lu  changed:

   What|Removed |Added

   See Also||https://sourceware.org/bugz
   ||illa/show_bug.cgi?id=23499

--- Comment #6 from H.J. Lu  ---
This sounds like

https://sourceware.org/bugzilla/show_bug.cgi?id=23499

Please try binutils 2.31 branch.

[Bug middle-end/63155] [6/7/8/9 Regression] memory hog

2018-09-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63155

--- Comment #26 from Richard Biener  ---
Author: rguenth
Date: Tue Sep 18 13:26:05 2018
New Revision: 264388

URL: https://gcc.gnu.org/viewcvs?rev=264388&root=gcc&view=rev
Log:
2018-09-18  Richard Biener  

PR middle-end/63155
* tree-ssa-coalesce.c (tree_int_map_hasher): Remove.
(compute_samebase_partition_bases): Likewise.
(coalesce_ssa_name): Always use compute_optimized_partition_bases.
(gimple_can_coalesce_p): Simplify.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-coalesce.c

[Bug fortran/87341] gfortran can not link executables: _edata: invalid version 21 (max 4)

2018-09-18 Thread mi+gcc at aldan dot algebra.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87341

mi+gcc at aldan dot algebra.com changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|MOVED   |---

--- Comment #7 from mi+gcc at aldan dot algebra.com ---
(In reply to H.J. Lu from comment #6)
> This sounds like
> 
> https://sourceware.org/bugzilla/show_bug.cgi?id=23499
> 
> Please try binutils 2.31 branch.

Actually, I have binutils-2.31 already -- the /usr/bin/as, that comes with
RHEL6, does not understand the AVX2 instructions, so I had to build binutils of
my own, and, of course, used the latest available:

 % /prod/pfe/local/bin/ld -v
 GNU ld (GNU Binutils) 2.31

and the ld used by gfortran (see the verbose output I posted) is a hardlink to
the above:

 %
/prod/pfe/local/lib/gcc/x86_64-pc-linux-gnu/8/../../../../x86_64-pc-linux-gnu/bin/ld
 GNU ld (GNU Binutils) 2.31

[Bug fortran/87341] gfortran can not link executables: _edata: invalid version 21 (max 4)

2018-09-18 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87341

--- Comment #8 from H.J. Lu  ---
(In reply to mi+gcc from comment #7)
> (In reply to H.J. Lu from comment #6)
> > This sounds like
> > 
> > https://sourceware.org/bugzilla/show_bug.cgi?id=23499
> > 
> > Please try binutils 2.31 branch.
> 
> Actually, I have binutils-2.31 already -- the /usr/bin/as, that comes with
> RHEL6, does not understand the AVX2 instructions, so I had to build binutils
> of my own, and, of course, used the latest available:
> 
>  % /prod/pfe/local/bin/ld -v
>  GNU ld (GNU Binutils) 2.31
> 
> and the ld used by gfortran (see the verbose output I posted) is a hardlink
> to the above:
> 
>  %
> /prod/pfe/local/lib/gcc/x86_64-pc-linux-gnu/8/../../../../x86_64-pc-linux-
> gnu/bin/ld
>  GNU ld (GNU Binutils) 2.31

I said binutils 2.31 branch, not 2.31 release.

[Bug fortran/87341] gfortran can not link executables: _edata: invalid version 21 (max 4)

2018-09-18 Thread mi+gcc at aldan dot algebra.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87341

--- Comment #9 from mi+gcc at aldan dot algebra.com ---
> I said binutils 2.31 branch, not 2.31 release.

The work I'm doing is meant for eventual production use. The company has
swallowed the use of free software, but using _unreleased_ versions may be too
much.

Is there a particular patch, you want me to apply to 2.31 release? I could do
that... Is this it, for example:

https://sourceware.org/ml/binutils/2018-08/msg00227.html

?

[Bug other/87353] gcc man page formatting issue due to leading spaces in .texi contents

2018-09-18 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87353

Jonathan Wakely  changed:

   What|Removed |Added

   Keywords||documentation
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-09-18
 Ever confirmed|0   |1

[Bug c++/86881] [8, 9 regression] tree check fail with flag Wshadow-compatible-local

2018-09-18 Thread nathan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86881

--- Comment #3 from Nathan Sidwell  ---
Author: nathan
Date: Tue Sep 18 13:52:30 2018
New Revision: 264391

URL: https://gcc.gnu.org/viewcvs?rev=264391&root=gcc&view=rev
Log:
[PATCH c++/86881] -Wshadow-local-compatible ICE

https://gcc.gnu.org/ml/gcc-patches/2018-09/msg00984.html
PR c++/86881
cp/
* name-lookup.c (check_local_shadow): Ignore auto types.

testsuite/
* g++.dg/warn/pr86881.C: New.

Added:
trunk/gcc/testsuite/g++.dg/warn/pr86881.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/name-lookup.c
trunk/gcc/testsuite/ChangeLog

[Bug other/87353] gcc man page formatting issue due to leading spaces in .texi contents

2018-09-18 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87353

--- Comment #2 from Jonathan Wakely  ---
Also, "Therefore, the G++ and driver" is nonsense.

[Bug other/87353] gcc man page formatting issue due to leading spaces in .texi contents

2018-09-18 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87353

--- Comment #3 from Jonathan Wakely  ---
This was introduced by r242433 

https://gcc.gnu.org/viewcvs/gcc/trunk/gcc/doc/invoke.texi?limit_changes=0&r1=242433&r2=242432&pathrev=242433

[Bug target/87104] missed &, == optimization makes Emacs ~0.4% slower on x86-64

2018-09-18 Thread pipcet at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87104

pipcet at gmail dot com changed:

   What|Removed |Added

  Attachment #44617|0   |1
is obsolete||

--- Comment #14 from pipcet at gmail dot com ---
Created attachment 44719
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44719&action=edit
WIP patch

Okay, I've run into a few issues:
1. temacs run time changes unpredictably based on the configuration data,
because of find_string_data_in_pure.
2. My CPU fuses "cmp" and a conditional branch and "test" and a conditional
branch, but not "and" and a conditional branch. So we were optimizing a
three-insn two-uop sequence into a two-insn two-uop sequence, and I was not
seeing any performance improvement.
3. The code size changes sometimes cause branches to be mispredicted much more
often for no apparent reason.

I've worked around (1) and (2), by disabling find_string_data_in_pure() and
making the peephole rule that turned "test" into "and" conditional on CPU type.
Now I'm seeing a consistent performance improvement (as well as fewer
instructions, fewer uops, and more fused branches) for Perl and Emacs.

[Bug testsuite/87339] [9 Regression] gcc.dg/warn-abs-1.c FAILs

2018-09-18 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87339

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ktkachov at gcc dot gnu.org

--- Comment #2 from ktkachov at gcc dot gnu.org ---
Fixed on arm and aarch64 with r264392.
If you can confirm this fixes the other platforms please close this off.

[Bug fortran/87341] gfortran can not link executables: _edata: invalid version 21 (max 4)

2018-09-18 Thread mi+gcc at aldan dot algebra.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87341

--- Comment #10 from mi+gcc at aldan dot algebra.com ---
(In reply to mi+gcc from comment #9)
> Is this it, for example:
> 
> https://sourceware.org/ml/binutils/2018-08/msg00227.html

Applied the patch to the 2.31 release, rebuilt/reinstalled binutils -- problem
is still here...

[Bug other/87353] gcc man page formatting issue due to leading spaces in .texi contents

2018-09-18 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87353

Jonathan Wakely  changed:

   What|Removed |Added

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

--- Comment #4 from Jonathan Wakely  ---
Fixed on trunk so far, branches to follow.

[Bug other/87353] gcc man page formatting issue due to leading spaces in .texi contents

2018-09-18 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87353

--- Comment #5 from Jonathan Wakely  ---
Author: redi
Date: Tue Sep 18 14:19:55 2018
New Revision: 264395

URL: https://gcc.gnu.org/viewcvs?rev=264395&root=gcc&view=rev
Log:
PR other/87353 fix formatting and grammar in manual

The changes to invoke.texi in r242433 left some unwanted spaces that
texi2pod.pl interprets as verbatim formatting. There are also some
grammatical errors due to the removal of references to GCJ, where the
G++ driver is referred to in the plural.

PR other/87353
* doc/invoke.texi (Link Options): Fix formatting and grammar.

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

[Bug fortran/87341] gfortran can not link executables: _edata: invalid version 21 (max 4)

2018-09-18 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87341

--- Comment #11 from H.J. Lu  ---
(In reply to mi+gcc from comment #10)
> (In reply to mi+gcc from comment #9)
> > Is this it, for example:
> > 
> > https://sourceware.org/ml/binutils/2018-08/msg00227.html
> 
> Applied the patch to the 2.31 release, rebuilt/reinstalled binutils --
> problem is still here...

Please show the output of:

$ objdump -T
/prod/pfe/local/lib/gcc/x86_64-pc-linux-gnu/8/../../../../lib64/libgfortran.so
| grep corrupt

[Bug fortran/87341] gfortran can not link executables: _edata: invalid version 21 (max 4)

2018-09-18 Thread mi+gcc at aldan dot algebra.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87341

--- Comment #12 from mi+gcc at aldan dot algebra.com ---
(In reply to H.J. Lu from comment #11)
> Please show the output of:
> 
> $ objdump -T
> /prod/pfe/local/lib/gcc/x86_64-pc-linux-gnu/8/../../../../lib64/libgfortran.
> so | grep corrupt

Neither the stock /usr/bin/objdump nor the newer /prod/pfe/local/bin/objdump
report any corruption (used grep -i just in case).

[Bug target/87354] New: x86-64: 16- and 32-byte register variables cannot be put in XMM16/YMM16 and up without -mavx512vl

2018-09-18 Thread jbeulich at novell dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87354

Bug ID: 87354
   Summary: x86-64: 16- and 32-byte register variables cannot be
put in XMM16/YMM16 and up without -mavx512vl
   Product: gcc
   Version: 8.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jbeulich at novell dot com
  Target Milestone: ---

The same issue had been present in gas, but was corrected by commit 6e041cf4b0:
YMM (and of course also XMM) registers can certainly be used with AVX512F
alone, just that the set of insns is pretty limited. I realize that making this
work may not be a trivial change, as assumptions to this effect appear to be
made all over the place, but this code should imo compile (and assemble) fine
with just -mavx512f, while currently only the first function compiles without
error (QI mode vectors have been used just for simplicity and to make things
look reasonably uniform):

asm(".arch generic64");
asm(".arch .avx512f");

typedef char __attribute__((vector_size(64))) v64qi_t;
typedef char __attribute__((vector_size(16))) v16qi_t;
typedef char __attribute__((vector_size(32))) v32qi_t;

v64qi_t test512(v64qi_t x) {
register v64qi_t y asm("zmm16");
asm("vmovdqa32 %1,%0" : "=v" (y) : "v" (x));
return y;
}

v16qi_t test128(v64qi_t x) {
register v16qi_t y asm("xmm16");
asm("vpmovqw %1,%0" : "=v" (y) : "v" (x));
return y;
}

v32qi_t test256(v64qi_t x) {
register v32qi_t y asm("ymm16");
asm("vpmovqd %1,%0" : "=v" (y) : "v" (x));
return y;
}

[Bug fortran/87341] gfortran can not link executables: _edata: invalid version 21 (max 4)

2018-09-18 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87341

--- Comment #13 from H.J. Lu  ---
(In reply to mi+gcc from comment #12)
> (In reply to H.J. Lu from comment #11)
> > Please show the output of:
> > 
> > $ objdump -T
> > /prod/pfe/local/lib/gcc/x86_64-pc-linux-gnu/8/../../../../lib64/libgfortran.
> > so | grep corrupt
> 
> Neither the stock /usr/bin/objdump nor the newer /prod/pfe/local/bin/objdump
> report any corruption (used grep -i just in case).

Please try binutils 2.31 branch from:

https://sourceware.org/git/?p=binutils-gdb.git;a=shortlog;h=refs/heads/binutils-2_31-branch

[Bug c++/86881] [8, 9 regression] tree check fail with flag Wshadow-compatible-local

2018-09-18 Thread nathan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86881

--- Comment #4 from Nathan Sidwell  ---
Author: nathan
Date: Tue Sep 18 15:06:35 2018
New Revision: 264396

URL: https://gcc.gnu.org/viewcvs?rev=264396&root=gcc&view=rev
Log:
[PATCH c++/86881] -Wshadow-local-compatible ICE

https://gcc.gnu.org/ml/gcc-patches/2018-09/msg00984.html
PR c++/86881
cp/
* name-lookup.c (check_local_shadow): Ignore auto types.

testsuite/
* g++.dg/warn/pr86881.C: New.

Added:
branches/gcc-8-branch/gcc/testsuite/g++.dg/warn/pr86881.C
Modified:
branches/gcc-8-branch/gcc/cp/ChangeLog
branches/gcc-8-branch/gcc/cp/name-lookup.c
branches/gcc-8-branch/gcc/testsuite/ChangeLog

[Bug c++/85137] [concepts] ICE with undeclared concept

2018-09-18 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85137

Paolo Carlini  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC|paolo.carlini at oracle dot com|
   Assignee|unassigned at gcc dot gnu.org  |paolo.carlini at oracle 
dot com

--- Comment #1 from Paolo Carlini  ---
Mine.

[Bug c++/86881] [8, 9 regression] tree check fail with flag Wshadow-compatible-local

2018-09-18 Thread nathan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86881

Nathan Sidwell  changed:

   What|Removed |Added

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

--- Comment #5 from Nathan Sidwell  ---
Fixed trunk r264391.
Fixed gcc-8 r264396.

[Bug c++/87340] Stack overflow problem for c++filt

2018-09-18 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87340

Martin Sebor  changed:

   What|Removed |Added

 CC||msebor at gcc dot gnu.org

--- Comment #5 from Martin Sebor  ---
(In reply to Martin Liška from comment #3)
> Then it would deserve something like segfault-on-invalid-input :)
> Or should I use ice-on-invalid-code?

Let's use ice-on-invalid.  Otherwise the two will end up being used
interchangeably over time.

[Bug fortran/87341] gfortran can not link executables: _edata: invalid version 21 (max 4)

2018-09-18 Thread mi+gcc at aldan dot algebra.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87341

--- Comment #14 from mi+gcc at aldan dot algebra.com ---
(In reply to H.J. Lu from comment #13)
> Please try binutils 2.31 branch from:
> 
> https://sourceware.org/git/?p=binutils-gdb.git;a=shortlog;h=refs/heads/
> binutils-2_31-branch

I'm sorry, I can not do that at this time -- I need to deliver the software for
my employer and rebuilding the gcc suit with --disable-gold provides a
work-around.

I think, this bug-report -- against the compiler suit neither working with the
latest release of binutils, nor warning about it -- ought to remain open for
reasons I put forth in comment#4.

The underlying problem with binutils deserves its own ticket, as Andrew
suggests in comment#3. I think, I've given enough information for anyone to be
able to reproduce the problem:

  1. Build the gcc suit with the configure-arguments provided
  2. Attempt to use the newly-built gfortran to build a FORTRAN program:

   PRINT *, "Hello World!"
   END

I could create this ticket for you, if you insist, but you should be able to
reproduce the problem yourself now. Thank you.

[Bug fortran/87341] gfortran can not link executables: _edata: invalid version 21 (max 4)

2018-09-18 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87341

H.J. Lu  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |MOVED

--- Comment #15 from H.J. Lu  ---
(In reply to mi+gcc from comment #14)
> (In reply to H.J. Lu from comment #13)
> > Please try binutils 2.31 branch from:
> > 
> > https://sourceware.org/git/?p=binutils-gdb.git;a=shortlog;h=refs/heads/
> > binutils-2_31-branch
> 
> I'm sorry, I can not do that at this time -- I need to deliver the software
> for my employer and rebuilding the gcc suit with --disable-gold provides a
> work-around.
> 
> I think, this bug-report -- against the compiler suit neither working with
> the latest release of binutils, nor warning about it -- ought to remain open
> for reasons I put forth in comment#4.
> 
> The underlying problem with binutils deserves its own ticket, as Andrew
> suggests in comment#3. I think, I've given enough information for anyone to
> be able to reproduce the problem:
> 

As I said, the problem is fixed on binutils 2.31 branch.

[Bug rtl-optimization/86882] [9 Regression] ICE in reg_overlap_mentioned_p, at rtlanal.c:1873

2018-09-18 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86882

--- Comment #8 from Segher Boessenkool  ---
Author: segher
Date: Tue Sep 18 16:19:56 2018
New Revision: 264400

URL: https://gcc.gnu.org/viewcvs?rev=264400&root=gcc&view=rev
Log:
Handle CLOBBER in reg_overlap_mentioned_p (PR86882)

Combine will put CLOBBER (with a non-void mode) anywhere in a pattern
to poison it.  reg_overlap_mentioned_p did not handle this.  This patch
fixes that.


PR rtl-optimization/86882
* rtlanal.c (reg_overlap_mentioned_p): Handle CLOBBER.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/rtlanal.c

[Bug rtl-optimization/86882] [9 Regression] ICE in reg_overlap_mentioned_p, at rtlanal.c:1873

2018-09-18 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86882

--- Comment #9 from Segher Boessenkool  ---
Author: segher
Date: Tue Sep 18 16:24:58 2018
New Revision: 264401

URL: https://gcc.gnu.org/viewcvs?rev=264401&root=gcc&view=rev
Log:
Backport PR86882 fix to 8


PR rtl-optimization/86882
* rtlanal.c (reg_overlap_mentioned_p): Handle CLOBBER.

Modified:
branches/gcc-8-branch/gcc/ChangeLog
branches/gcc-8-branch/gcc/rtlanal.c

[Bug rtl-optimization/86882] [9 Regression] ICE in reg_overlap_mentioned_p, at rtlanal.c:1873

2018-09-18 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86882

Segher Boessenkool  changed:

   What|Removed |Added

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

--- Comment #10 from Segher Boessenkool  ---
Fixed on trunk and 8; closing as fixed.

[Bug c++/85065] [concepts] ICE with invalid use of a concept

2018-09-18 Thread paolo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85065

--- Comment #2 from paolo at gcc dot gnu.org  ---
Author: paolo
Date: Tue Sep 18 16:35:27 2018
New Revision: 264402

URL: https://gcc.gnu.org/viewcvs?rev=264402&root=gcc&view=rev
Log:
/cp
2018-09-18  Paolo Carlini  

PR c++/85065
* cp-tree.h (NON_ERROR): New.
* pt.c (auto_hash::hash): Use it.
(do_auto_deduction): Likewise.

/testsuite
2018-09-18  Paolo Carlini  

PR c++/85065
* g++.dg/concepts/pr85065.C: New.

Added:
trunk/gcc/testsuite/g++.dg/concepts/pr85065.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog

[Bug c++/85065] [concepts] ICE with invalid use of a concept

2018-09-18 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85065

Paolo Carlini  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Assignee|paolo.carlini at oracle dot com|unassigned at gcc dot 
gnu.org
   Target Milestone|--- |9.0

--- Comment #3 from Paolo Carlini  ---
Fixed.

[Bug c++/67491] [meta-bug] concepts issues

2018-09-18 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491
Bug 67491 depends on bug 85065, which changed state.

Bug 85065 Summary: [concepts] ICE with invalid use of a concept
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85065

   What|Removed |Added

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

[Bug fortran/85954] [8/9 Regression] ICE in make_ssa_name_fn, at tree-ssanames.c:266

2018-09-18 Thread pault at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85954

--- Comment #8 from Paul Thomas  ---
Author: pault
Date: Tue Sep 18 17:54:20 2018
New Revision: 264404

URL: https://gcc.gnu.org/viewcvs?rev=264404&root=gcc&view=rev
Log:
2018-09-18  Paul Thomas  

PR fortran/85954
* resolve.c (resolve_assoc_var): If the target expression is a
deferred charlen dummy and the associate name shares the
charlen, generate a new one. Make sure that new charlens are in
the namespace list so that they get cleaned up.
* trans-array.c (gfc_is_reallocatable_lhs): Associate names are
not reallocatable.
* trans-decl.c (gfc_get_symbol_decl): Put deferred character
length dummy and result arrays on the deferred initialization
list so that the variable length arrays can be correctly dealt
with.
* trans-expr.c (gfc_conv_string_length): Return if 'expr' is
NULL rather than ICEing.

2018-09-18  Paul Thomas  

PR fortran/85954
* gfortran.dg/deferred_character_21.f90 : New test.


Added:
branches/gcc-8-branch/gcc/testsuite/gfortran.dg/deferred_character_21.f90
Modified:
branches/gcc-8-branch/gcc/fortran/ChangeLog
branches/gcc-8-branch/gcc/fortran/resolve.c
branches/gcc-8-branch/gcc/fortran/trans-array.c
branches/gcc-8-branch/gcc/fortran/trans-decl.c
branches/gcc-8-branch/gcc/fortran/trans-expr.c
branches/gcc-8-branch/gcc/testsuite/ChangeLog

[Bug fortran/87336] [8/9 regression] wrong output for pointer dummy assiocated to target actual argument

2018-09-18 Thread pault at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87336

--- Comment #3 from Paul Thomas  ---
Author: pault
Date: Tue Sep 18 17:58:20 2018
New Revision: 264405

URL: https://gcc.gnu.org/viewcvs?rev=264405&root=gcc&view=rev
Log:
2018-09-18  Paul Thomas  

PR fortran/87336
* trans-array.c (gfc_get_array_span): Try to get the element
length of incomplete types. Return NULL_TREE otherwise.
(gfc_conv_expr_descriptor): Only set the 'span' field if the
above does not return NULL_TREE. Set 'span' field if possible
for all new descriptors.

2018-09-18  Paul Thomas  

PR fortran/87336
* gfortran.dg/pointer_array_10.f90 : New test.
* gfortran.dg/assign_10.f90 : Increase 'parm' count to 20.
* gfortran.dg/transpose_optimization_2.f90 : Increase 'parm'
count to 72.


Added:
trunk/gcc/testsuite/gfortran.dg/pointer_array_10.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-array.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/assign_10.f90
trunk/gcc/testsuite/gfortran.dg/transpose_optimization_2.f90

[Bug fortran/85954] [8/9 Regression] ICE in make_ssa_name_fn, at tree-ssanames.c:266

2018-09-18 Thread pault at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85954

Paul Thomas  changed:

   What|Removed |Added

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

--- Comment #9 from Paul Thomas  ---
Fixed on both branches.

Many thanks for the report.

Paul

[Bug target/87355] New: missed comparison optimizations (grep DFA, x86-64)

2018-09-18 Thread eggert at cs dot ucla.edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87355

Bug ID: 87355
   Summary: missed comparison optimizations (grep DFA, x86-64)
   Product: gcc
   Version: 8.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: eggert at cs dot ucla.edu
  Target Milestone: ---

Created attachment 44720
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44720&action=edit
source code illustrating missed optimizations

I found this when attempting to tune grep's DFA code on x86-64, and simplified
the issue to the attached source code t.c which defines two functions f and g
that are logically equivalent, and which can both be implemented via a single
machine-language comparison to THRESHOLD. However, GCC generates two
comparisons for f and three comparisons for g, as shown in the attached
assembly-language file t.s generated by 'gcc -O2 -S t.c'. I am running Fedora
28 x86-64 with 8.1.1 20180712 (Red Hat 8.1.1-5).

I'm not sure whether this problem is limited to x86-64 or is more general, and
for now am labeling its component as 'target'.

[Bug target/87355] missed comparison optimizations (grep DFA, x86-64)

2018-09-18 Thread eggert at cs dot ucla.edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87355

--- Comment #1 from eggert at cs dot ucla.edu ---
Created attachment 44721
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44721&action=edit
Assembly-language output of 'gcc -O2 -S t.c'

[Bug tree-optimization/87355] missed comparison optimizations (grep DFA, x86-64)

2018-09-18 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87355

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||missed-optimization
  Component|target  |tree-optimization
   Severity|normal  |enhancement

[Bug fortran/86830] [8/9 Regression] Contiguous array pointer function result not recognized as contiguous

2018-09-18 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86830

--- Comment #6 from janus at gcc dot gnu.org ---
Author: janus
Date: Tue Sep 18 19:16:24 2018
New Revision: 264407

URL: https://gcc.gnu.org/viewcvs?rev=264407&root=gcc&view=rev
Log:
2018-09-18  Janus Weil  

Backport from trunk
PR fortran/86830
* expr.c (gfc_is_simply_contiguous): Handle type-bound procedure calls
with non-polymorphic objects.

2018-09-18  Janus Weil  

Backport from trunk
PR fortran/86830
* gfortran.dg/typebound_call_30.f90: New test case.

Added:
branches/gcc-8-branch/gcc/testsuite/gfortran.dg/typebound_call_30.f90
Modified:
branches/gcc-8-branch/gcc/fortran/ChangeLog
branches/gcc-8-branch/gcc/fortran/expr.c
branches/gcc-8-branch/gcc/testsuite/ChangeLog

  1   2   >