[Bug c++/59949] lambda expression as default argument of function template causes "already defined" messages in assembler

2016-10-22 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59949

Andrew Pinski  changed:

   What|Removed |Added

   Last reconfirmed|2014-01-26 00:00:00 |2016-10-22
   Severity|minor   |normal

[Bug testsuite/60487] FAIL: gcc.dg/tree-prof/crossmodule-indircall-1a.c compilation, -fprofile-generate -D_PROFILE_GENERATE

2016-10-22 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60487

--- Comment #2 from Andrew Pinski  ---
Has this been fixed yet?

[Bug bootstrap/55496] False positive -Werror=uninitialized breaks profiledbootstrap and bootstrap-lto

2016-10-22 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55496

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||build

--- Comment #3 from Andrew Pinski  ---
Does this still happen?

[Bug ipa/55499] [devirt] trunk fails to eliminate dead functions where all call sites were inlined

2016-10-22 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55499

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #3 from Andrew Pinski  ---
This has been fixed.  I can't remember which patch did it but it is the one
which added CLOBBER statements to the deconstructors.

[Bug middle-end/55498] [devirt] trunk fails inline-devirt test #6 due to lack of return functions

2016-10-22 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55498

Andrew Pinski  changed:

   What|Removed |Added

   Last reconfirmed|2012-12-13 00:00:00 |2016-10-22
   Severity|normal  |enhancement

[Bug ipa/63571] Local functions with only local aliases not regparm optimized on i686-linux

2016-10-22 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63571

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||missed-optimization
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-10-22
 Ever confirmed|0   |1
   Severity|normal  |enhancement

--- Comment #1 from Andrew Pinski  ---
.

[Bug c/78074] New: gcc-6.2.0 miscompiles calloc reimplementation

2016-10-22 Thread phelps at pobox dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78074

Bug ID: 78074
   Summary: gcc-6.2.0 miscompiles calloc reimplementation
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: phelps at pobox dot com
  Target Milestone: ---

For better or worse, tcsh provides its own malloc/calloc/realloc/free
functions.  With gcc-6.2.0 (as supplied by Ubuntu-12.10, and also compiled from
sources), I'm seeing its realloc compiled into a infinite loop.  Here is a
stripped down test case that loops indefinitely:

#include 
#include 
#include 

void *calloc(size_t nmemb, size_t size)
{
void *p = malloc(nmemb * size);
if (p != NULL)
memset(p, 0, nmemb * size);
return p;
}


int main(int argc, char *argv[])
{
char *value = calloc(64, 1);
printf("value=%p\n", value);
exit(0);
}

With -O2, it looks like gcc is interpreting the call to malloc as a call to
calloc instead:

(gdb) disassemble calloc
Dump of assembler code for function calloc:
   0x0760 <+0>: imul   %rsi,%rdi
   0x0764 <+4>: mov$0x1,%esi
   0x0769 <+9>: jmpq   0x760 
End of assembler dump.

There's clearly something special about the names here: replacing calloc with
xcalloc produces code that runs fine.

[Bug middle-end/78074] gcc-6.2.0 miscompiles calloc reimplementation

2016-10-22 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78074

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Component|c   |middle-end
 Resolution|--- |INVALID

--- Comment #1 from Andrew Pinski  ---
Use -fno-builtin to remove this optimization that is so GCC does not recognize
malloc/memset here.
This optimization has been there since 2014.

[Bug fortran/78033] Internal Compiler Error in enforce_single_undo_checkpoint

2016-10-22 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78033

Dominique d'Humieres  changed:

   What|Removed |Added

 CC||gerhard.steinmetz.fortran@t
   ||-online.de

--- Comment #8 from Dominique d'Humieres  ---
*** Bug 71759 has been marked as a duplicate of this bug. ***

[Bug fortran/71759] [5/6/7 Regression] ICE in enforce_single_undo_checkpoint, at fortran/symbol.c:3478

2016-10-22 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71759

Dominique d'Humieres  changed:

   What|Removed |Added

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

--- Comment #6 from Dominique d'Humieres  ---
Also fixed by the patch posted at 

https://gcc.gnu.org/ml/fortran/2016-10/msg00156.html

Marking as duplicate of pr78033.

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

[Bug fortran/78033] Internal Compiler Error in enforce_single_undo_checkpoint

2016-10-22 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78033

--- Comment #9 from Dominique d'Humieres  ---
> Patch posted at 
>
> https://gcc.gnu.org/ml/fortran/2016-10/msg00156.html

The patch regtested fine but for

FAIL: gfortran.dg/gomp/udr3.f90   -O   (test for errors, line 16)
FAIL: gfortran.dg/gomp/udr3.f90   -O  (test for excess errors)

Running the test manually I see

...
/opt/gcc/work/gcc/testsuite/gfortran.dg/gomp/udr3.f90:16:6:

 !$omp declare reduction (baz:integer,real,integer & ! { dg-error "Redefinition
of !.OMP DECLARE REDUCTION|Previous" }
  1
Error: Unclassifiable OpenMP directive at (1)
...

i.e., the error no longer matches the regexp.

[Bug tree-optimization/78060] [7 Regression] -O3 causes "error: type mismatch in binary expression"

2016-10-22 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78060

Martin Liška  changed:

   What|Removed |Added

 CC||su at cs dot ucdavis.edu

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

[Bug tree-optimization/78072] [7 Regression] ICE on valid code at -O3 on x86_64-linux-gnu: verify_gimple failed

2016-10-22 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78072

Martin Liška  changed:

   What|Removed |Added

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

--- Comment #3 from Martin Liška  ---
Caused by loop splitting commit (r241374), I'm marking that as dup of PR78060.

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

[Bug c++/10619] Error message for no matching function calls does not list explicitly-specified template arguments

2016-10-22 Thread gcc-bugzilla at contacts dot eelis.net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=10619

Eelis  changed:

   What|Removed |Added

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

--- Comment #6 from Eelis  ---
GCC now emits additional diagnostics explaining why the candidate f could not
be used, which is exactly what I wanted. Thanks!

[Bug c++/42490] using-directive in namespace doesn't work properly

2016-10-22 Thread gcc-bugzilla at contacts dot eelis.net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42490

Eelis  changed:

   What|Removed |Added

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

--- Comment #4 from Eelis  ---
Seems to be fixed, thanks!

[Bug fortran/78033] Internal Compiler Error in enforce_single_undo_checkpoint

2016-10-22 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78033

--- Comment #10 from Dominique d'Humieres  ---
> The patch regtested fine but for
>
> FAIL: gfortran.dg/gomp/udr3.f90   -O   (test for errors, line 16)
> FAIL: gfortran.dg/gomp/udr3.f90   -O  (test for excess errors)

I have overlooked another failure

FAIL: gfortran.dg/array_constructor_42.f90   -O  (test for excess errors)

/opt/gcc/work/gcc/testsuite/gfortran.dg/array_constructor_42.f90:15:24:

 vec = (/ real(a = 1), 1. /)
1
Error: Invalid type-spec at (1)
/opt/gcc/work/gcc/testsuite/gfortran.dg/array_constructor_42.f90:21:26:

 print *,(/ real(a = 1) /)
  1
Error: Invalid type-spec at (1)

[Bug fortran/61376] Error using private statement in polymorphic derived type

2016-10-22 Thread vehre at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61376

--- Comment #2 from vehre at gcc dot gnu.org ---
Author: vehre
Date: Sat Oct 22 12:33:38 2016
New Revision: 241439

URL: https://gcc.gnu.org/viewcvs?rev=241439&root=gcc&view=rev
Log:
gcc/fortran/ChangeLog:

2016-10-22  Andre Vehreschild  

PR fortran/43366
PR fortran/51864
PR fortran/57117
PR fortran/61337
PR fortran/61376
* primary.c (gfc_expr_attr): For transformational functions on classes
get the attrs from the class argument.
* resolve.c (resolve_ordinary_assign): Remove error message due to
feature implementation.  Rewrite POINTER_ASSIGNS to ordinary ones when
the right-hand side is scalar class object (with some restrictions).
* trans-array.c (trans_array_constructor): Create the temporary from
class' inner type, i.e., the derived type.
(build_class_array_ref): Add support for class array's storage of the
class object or the array descriptor in the decl saved descriptor.
(gfc_conv_expr_descriptor): When creating temporaries for class objects
add the class object's handle into the decl saved descriptor.
(structure_alloc_comps): Use the common way to get the _data component.
(gfc_is_reallocatable_lhs): Add notion of allocatable class objects.
* trans-expr.c (gfc_find_and_cut_at_last_class_ref): Remove the only
ref
only when the expression's type is BT_CLASS.
(gfc_trans_class_init_assign): Correctly handle class arrays.
(gfc_trans_class_assign): Joined into gfc_trans_assignment_1.
(gfc_conv_procedure_call): Support for class types as arguments.
(trans_get_upoly_len): For unlimited polymorphics retrieve the _len
component's tree.
(trans_class_vptr_len_assignment): Catch all ways to assign the _vptr
and _len components of a class object correctly.
(pointer_assignment_is_proc_pointer): Identify assignments of
procedure pointers.
(gfc_trans_pointer_assignment): Enhance support for class object
pointer
assignments.
(gfc_trans_scalar_assign): Removed assert.
(trans_class_assignment): Assign to a class object.
(gfc_trans_assignment_1): Treat class objects correctly.
(gfc_trans_assignment): Propagate flags to trans_assignment_1.
* trans-stmt.c (gfc_trans_allocate): Use gfc_trans_assignment now
instead of copy_class_to_class.
* trans-stmt.h: Function prototype removed.
* trans.c (trans_code): Less special casing for class objects.
* trans.h: Added flags to gfc_trans_assignment () prototype.

gcc/testsuite/ChangeLog:

2016-10-22  Andre Vehreschild  

Forgot to add on original commit.
* gfortran.dg/coarray_alloc_comp_2.f08: New test.

2016-10-22  Andre Vehreschild  

PR fortran/43366
PR fortran/57117
PR fortran/61337
* gfortran.dg/alloc_comp_class_5.f03: New test.
* gfortran.dg/class_allocate_21.f90: New test.
* gfortran.dg/class_allocate_22.f90: New test.
* gfortran.dg/realloc_on_assign_27.f08: New test.



Added:
trunk/gcc/testsuite/gfortran.dg/alloc_comp_class_5.f03
trunk/gcc/testsuite/gfortran.dg/class_allocate_21.f90
trunk/gcc/testsuite/gfortran.dg/class_allocate_22.f90
trunk/gcc/testsuite/gfortran.dg/coarray_alloc_comp_2.f08
trunk/gcc/testsuite/gfortran.dg/realloc_on_assign_27.f08
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/primary.c
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-expr.c
trunk/gcc/fortran/trans-stmt.c
trunk/gcc/fortran/trans-stmt.h
trunk/gcc/fortran/trans.c
trunk/gcc/fortran/trans.h
trunk/gcc/testsuite/ChangeLog

[Bug fortran/51864] [OOP] ALLOCATE with polymorphic array constructor as SOURCE=

2016-10-22 Thread vehre at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51864

--- Comment #3 from vehre at gcc dot gnu.org ---
Author: vehre
Date: Sat Oct 22 12:33:38 2016
New Revision: 241439

URL: https://gcc.gnu.org/viewcvs?rev=241439&root=gcc&view=rev
Log:
gcc/fortran/ChangeLog:

2016-10-22  Andre Vehreschild  

PR fortran/43366
PR fortran/51864
PR fortran/57117
PR fortran/61337
PR fortran/61376
* primary.c (gfc_expr_attr): For transformational functions on classes
get the attrs from the class argument.
* resolve.c (resolve_ordinary_assign): Remove error message due to
feature implementation.  Rewrite POINTER_ASSIGNS to ordinary ones when
the right-hand side is scalar class object (with some restrictions).
* trans-array.c (trans_array_constructor): Create the temporary from
class' inner type, i.e., the derived type.
(build_class_array_ref): Add support for class array's storage of the
class object or the array descriptor in the decl saved descriptor.
(gfc_conv_expr_descriptor): When creating temporaries for class objects
add the class object's handle into the decl saved descriptor.
(structure_alloc_comps): Use the common way to get the _data component.
(gfc_is_reallocatable_lhs): Add notion of allocatable class objects.
* trans-expr.c (gfc_find_and_cut_at_last_class_ref): Remove the only
ref
only when the expression's type is BT_CLASS.
(gfc_trans_class_init_assign): Correctly handle class arrays.
(gfc_trans_class_assign): Joined into gfc_trans_assignment_1.
(gfc_conv_procedure_call): Support for class types as arguments.
(trans_get_upoly_len): For unlimited polymorphics retrieve the _len
component's tree.
(trans_class_vptr_len_assignment): Catch all ways to assign the _vptr
and _len components of a class object correctly.
(pointer_assignment_is_proc_pointer): Identify assignments of
procedure pointers.
(gfc_trans_pointer_assignment): Enhance support for class object
pointer
assignments.
(gfc_trans_scalar_assign): Removed assert.
(trans_class_assignment): Assign to a class object.
(gfc_trans_assignment_1): Treat class objects correctly.
(gfc_trans_assignment): Propagate flags to trans_assignment_1.
* trans-stmt.c (gfc_trans_allocate): Use gfc_trans_assignment now
instead of copy_class_to_class.
* trans-stmt.h: Function prototype removed.
* trans.c (trans_code): Less special casing for class objects.
* trans.h: Added flags to gfc_trans_assignment () prototype.

gcc/testsuite/ChangeLog:

2016-10-22  Andre Vehreschild  

Forgot to add on original commit.
* gfortran.dg/coarray_alloc_comp_2.f08: New test.

2016-10-22  Andre Vehreschild  

PR fortran/43366
PR fortran/57117
PR fortran/61337
* gfortran.dg/alloc_comp_class_5.f03: New test.
* gfortran.dg/class_allocate_21.f90: New test.
* gfortran.dg/class_allocate_22.f90: New test.
* gfortran.dg/realloc_on_assign_27.f08: New test.



Added:
trunk/gcc/testsuite/gfortran.dg/alloc_comp_class_5.f03
trunk/gcc/testsuite/gfortran.dg/class_allocate_21.f90
trunk/gcc/testsuite/gfortran.dg/class_allocate_22.f90
trunk/gcc/testsuite/gfortran.dg/coarray_alloc_comp_2.f08
trunk/gcc/testsuite/gfortran.dg/realloc_on_assign_27.f08
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/primary.c
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-expr.c
trunk/gcc/fortran/trans-stmt.c
trunk/gcc/fortran/trans-stmt.h
trunk/gcc/fortran/trans.c
trunk/gcc/fortran/trans.h
trunk/gcc/testsuite/ChangeLog

[Bug fortran/57117] [OOP] ICE for sourced allocation of a polymorphic entity using TRANSPOSE

2016-10-22 Thread vehre at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57117

--- Comment #15 from vehre at gcc dot gnu.org ---
Author: vehre
Date: Sat Oct 22 12:33:38 2016
New Revision: 241439

URL: https://gcc.gnu.org/viewcvs?rev=241439&root=gcc&view=rev
Log:
gcc/fortran/ChangeLog:

2016-10-22  Andre Vehreschild  

PR fortran/43366
PR fortran/51864
PR fortran/57117
PR fortran/61337
PR fortran/61376
* primary.c (gfc_expr_attr): For transformational functions on classes
get the attrs from the class argument.
* resolve.c (resolve_ordinary_assign): Remove error message due to
feature implementation.  Rewrite POINTER_ASSIGNS to ordinary ones when
the right-hand side is scalar class object (with some restrictions).
* trans-array.c (trans_array_constructor): Create the temporary from
class' inner type, i.e., the derived type.
(build_class_array_ref): Add support for class array's storage of the
class object or the array descriptor in the decl saved descriptor.
(gfc_conv_expr_descriptor): When creating temporaries for class objects
add the class object's handle into the decl saved descriptor.
(structure_alloc_comps): Use the common way to get the _data component.
(gfc_is_reallocatable_lhs): Add notion of allocatable class objects.
* trans-expr.c (gfc_find_and_cut_at_last_class_ref): Remove the only
ref
only when the expression's type is BT_CLASS.
(gfc_trans_class_init_assign): Correctly handle class arrays.
(gfc_trans_class_assign): Joined into gfc_trans_assignment_1.
(gfc_conv_procedure_call): Support for class types as arguments.
(trans_get_upoly_len): For unlimited polymorphics retrieve the _len
component's tree.
(trans_class_vptr_len_assignment): Catch all ways to assign the _vptr
and _len components of a class object correctly.
(pointer_assignment_is_proc_pointer): Identify assignments of
procedure pointers.
(gfc_trans_pointer_assignment): Enhance support for class object
pointer
assignments.
(gfc_trans_scalar_assign): Removed assert.
(trans_class_assignment): Assign to a class object.
(gfc_trans_assignment_1): Treat class objects correctly.
(gfc_trans_assignment): Propagate flags to trans_assignment_1.
* trans-stmt.c (gfc_trans_allocate): Use gfc_trans_assignment now
instead of copy_class_to_class.
* trans-stmt.h: Function prototype removed.
* trans.c (trans_code): Less special casing for class objects.
* trans.h: Added flags to gfc_trans_assignment () prototype.

gcc/testsuite/ChangeLog:

2016-10-22  Andre Vehreschild  

Forgot to add on original commit.
* gfortran.dg/coarray_alloc_comp_2.f08: New test.

2016-10-22  Andre Vehreschild  

PR fortran/43366
PR fortran/57117
PR fortran/61337
* gfortran.dg/alloc_comp_class_5.f03: New test.
* gfortran.dg/class_allocate_21.f90: New test.
* gfortran.dg/class_allocate_22.f90: New test.
* gfortran.dg/realloc_on_assign_27.f08: New test.



Added:
trunk/gcc/testsuite/gfortran.dg/alloc_comp_class_5.f03
trunk/gcc/testsuite/gfortran.dg/class_allocate_21.f90
trunk/gcc/testsuite/gfortran.dg/class_allocate_22.f90
trunk/gcc/testsuite/gfortran.dg/coarray_alloc_comp_2.f08
trunk/gcc/testsuite/gfortran.dg/realloc_on_assign_27.f08
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/primary.c
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-expr.c
trunk/gcc/fortran/trans-stmt.c
trunk/gcc/fortran/trans-stmt.h
trunk/gcc/fortran/trans.c
trunk/gcc/fortran/trans.h
trunk/gcc/testsuite/ChangeLog

[Bug fortran/61337] Wrong indexing and runtime crash with unlimited polymorphic array.

2016-10-22 Thread vehre at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61337

--- Comment #5 from vehre at gcc dot gnu.org ---
Author: vehre
Date: Sat Oct 22 12:33:38 2016
New Revision: 241439

URL: https://gcc.gnu.org/viewcvs?rev=241439&root=gcc&view=rev
Log:
gcc/fortran/ChangeLog:

2016-10-22  Andre Vehreschild  

PR fortran/43366
PR fortran/51864
PR fortran/57117
PR fortran/61337
PR fortran/61376
* primary.c (gfc_expr_attr): For transformational functions on classes
get the attrs from the class argument.
* resolve.c (resolve_ordinary_assign): Remove error message due to
feature implementation.  Rewrite POINTER_ASSIGNS to ordinary ones when
the right-hand side is scalar class object (with some restrictions).
* trans-array.c (trans_array_constructor): Create the temporary from
class' inner type, i.e., the derived type.
(build_class_array_ref): Add support for class array's storage of the
class object or the array descriptor in the decl saved descriptor.
(gfc_conv_expr_descriptor): When creating temporaries for class objects
add the class object's handle into the decl saved descriptor.
(structure_alloc_comps): Use the common way to get the _data component.
(gfc_is_reallocatable_lhs): Add notion of allocatable class objects.
* trans-expr.c (gfc_find_and_cut_at_last_class_ref): Remove the only
ref
only when the expression's type is BT_CLASS.
(gfc_trans_class_init_assign): Correctly handle class arrays.
(gfc_trans_class_assign): Joined into gfc_trans_assignment_1.
(gfc_conv_procedure_call): Support for class types as arguments.
(trans_get_upoly_len): For unlimited polymorphics retrieve the _len
component's tree.
(trans_class_vptr_len_assignment): Catch all ways to assign the _vptr
and _len components of a class object correctly.
(pointer_assignment_is_proc_pointer): Identify assignments of
procedure pointers.
(gfc_trans_pointer_assignment): Enhance support for class object
pointer
assignments.
(gfc_trans_scalar_assign): Removed assert.
(trans_class_assignment): Assign to a class object.
(gfc_trans_assignment_1): Treat class objects correctly.
(gfc_trans_assignment): Propagate flags to trans_assignment_1.
* trans-stmt.c (gfc_trans_allocate): Use gfc_trans_assignment now
instead of copy_class_to_class.
* trans-stmt.h: Function prototype removed.
* trans.c (trans_code): Less special casing for class objects.
* trans.h: Added flags to gfc_trans_assignment () prototype.

gcc/testsuite/ChangeLog:

2016-10-22  Andre Vehreschild  

Forgot to add on original commit.
* gfortran.dg/coarray_alloc_comp_2.f08: New test.

2016-10-22  Andre Vehreschild  

PR fortran/43366
PR fortran/57117
PR fortran/61337
* gfortran.dg/alloc_comp_class_5.f03: New test.
* gfortran.dg/class_allocate_21.f90: New test.
* gfortran.dg/class_allocate_22.f90: New test.
* gfortran.dg/realloc_on_assign_27.f08: New test.



Added:
trunk/gcc/testsuite/gfortran.dg/alloc_comp_class_5.f03
trunk/gcc/testsuite/gfortran.dg/class_allocate_21.f90
trunk/gcc/testsuite/gfortran.dg/class_allocate_22.f90
trunk/gcc/testsuite/gfortran.dg/coarray_alloc_comp_2.f08
trunk/gcc/testsuite/gfortran.dg/realloc_on_assign_27.f08
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/primary.c
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-expr.c
trunk/gcc/fortran/trans-stmt.c
trunk/gcc/fortran/trans-stmt.h
trunk/gcc/fortran/trans.c
trunk/gcc/fortran/trans.h
trunk/gcc/testsuite/ChangeLog

[Bug fortran/43366] [OOP][F08] Intrinsic assign to polymorphic variable

2016-10-22 Thread vehre at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43366

--- Comment #18 from vehre at gcc dot gnu.org ---
Author: vehre
Date: Sat Oct 22 12:33:38 2016
New Revision: 241439

URL: https://gcc.gnu.org/viewcvs?rev=241439&root=gcc&view=rev
Log:
gcc/fortran/ChangeLog:

2016-10-22  Andre Vehreschild  

PR fortran/43366
PR fortran/51864
PR fortran/57117
PR fortran/61337
PR fortran/61376
* primary.c (gfc_expr_attr): For transformational functions on classes
get the attrs from the class argument.
* resolve.c (resolve_ordinary_assign): Remove error message due to
feature implementation.  Rewrite POINTER_ASSIGNS to ordinary ones when
the right-hand side is scalar class object (with some restrictions).
* trans-array.c (trans_array_constructor): Create the temporary from
class' inner type, i.e., the derived type.
(build_class_array_ref): Add support for class array's storage of the
class object or the array descriptor in the decl saved descriptor.
(gfc_conv_expr_descriptor): When creating temporaries for class objects
add the class object's handle into the decl saved descriptor.
(structure_alloc_comps): Use the common way to get the _data component.
(gfc_is_reallocatable_lhs): Add notion of allocatable class objects.
* trans-expr.c (gfc_find_and_cut_at_last_class_ref): Remove the only
ref
only when the expression's type is BT_CLASS.
(gfc_trans_class_init_assign): Correctly handle class arrays.
(gfc_trans_class_assign): Joined into gfc_trans_assignment_1.
(gfc_conv_procedure_call): Support for class types as arguments.
(trans_get_upoly_len): For unlimited polymorphics retrieve the _len
component's tree.
(trans_class_vptr_len_assignment): Catch all ways to assign the _vptr
and _len components of a class object correctly.
(pointer_assignment_is_proc_pointer): Identify assignments of
procedure pointers.
(gfc_trans_pointer_assignment): Enhance support for class object
pointer
assignments.
(gfc_trans_scalar_assign): Removed assert.
(trans_class_assignment): Assign to a class object.
(gfc_trans_assignment_1): Treat class objects correctly.
(gfc_trans_assignment): Propagate flags to trans_assignment_1.
* trans-stmt.c (gfc_trans_allocate): Use gfc_trans_assignment now
instead of copy_class_to_class.
* trans-stmt.h: Function prototype removed.
* trans.c (trans_code): Less special casing for class objects.
* trans.h: Added flags to gfc_trans_assignment () prototype.

gcc/testsuite/ChangeLog:

2016-10-22  Andre Vehreschild  

Forgot to add on original commit.
* gfortran.dg/coarray_alloc_comp_2.f08: New test.

2016-10-22  Andre Vehreschild  

PR fortran/43366
PR fortran/57117
PR fortran/61337
* gfortran.dg/alloc_comp_class_5.f03: New test.
* gfortran.dg/class_allocate_21.f90: New test.
* gfortran.dg/class_allocate_22.f90: New test.
* gfortran.dg/realloc_on_assign_27.f08: New test.



Added:
trunk/gcc/testsuite/gfortran.dg/alloc_comp_class_5.f03
trunk/gcc/testsuite/gfortran.dg/class_allocate_21.f90
trunk/gcc/testsuite/gfortran.dg/class_allocate_22.f90
trunk/gcc/testsuite/gfortran.dg/coarray_alloc_comp_2.f08
trunk/gcc/testsuite/gfortran.dg/realloc_on_assign_27.f08
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/primary.c
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-expr.c
trunk/gcc/fortran/trans-stmt.c
trunk/gcc/fortran/trans-stmt.h
trunk/gcc/fortran/trans.c
trunk/gcc/fortran/trans.h
trunk/gcc/testsuite/ChangeLog

[Bug ada/78066] Misleading error message about redundant Dynamic_Predicate incorrectly mentions "Valid"

2016-10-22 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78066

Eric Botcazou  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-10-22
 CC||ebotcazou at gcc dot gnu.org
 Ever confirmed|0   |1
  Known to fail||6.2.1, 7.0

--- Comment #1 from Eric Botcazou  ---
> The exact repetition of the range constraint on type T
> in its Dynamic_Predicate leads to infinite recursion.
> This is as predicted by a warning. However, the warning mentions
> attribute Valid, whereas the source has a membership test.

It's because the compiler (cleverly?) synthesizes 'Valid out of the test.

> Also, the workaround shown in the commented line seems to be
> checking membership in the same set of values, but compilation
> and program do not exhibit the same behavior.
> 
> (Is infinite recursion acceptable behavior when constraint
> and Dynamic_Predicate are identical?)

Of course not.

[Bug libstdc++/71322] [DR 2720] std::filesystem::permissions always follows symlinks

2016-10-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71322

Jonathan Wakely  changed:

   What|Removed |Added

 Status|SUSPENDED   |NEW

--- Comment #2 from Jonathan Wakely  ---
Fixed on trunk at r241418

[Bug fortran/78021] [5/6/7 Regression] Wrong result with optimization on character constant

2016-10-22 Thread tkoenig at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78021

--- Comment #4 from Thomas Koenig  ---
Author: tkoenig
Date: Sat Oct 22 14:04:46 2016
New Revision: 241440

URL: https://gcc.gnu.org/viewcvs?rev=241440&root=gcc&view=rev
Log:
2016-10-22  Thomas Koenig  

PR fortran/78021
* gfc_compare_functions:  Strings with different lengths in
argument lists compare unequal.

2016-10-22  Thomas Koenig  

PR fortran/78021
* gfortran.dg/string_length_3.f90:  New test.


Added:
trunk/gcc/testsuite/gfortran.dg/string_length_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/dependency.c
trunk/gcc/testsuite/ChangeLog

[Bug testsuite/60487] FAIL: gcc.dg/tree-prof/crossmodule-indircall-1a.c compilation, -fprofile-generate -D_PROFILE_GENERATE

2016-10-22 Thread danglin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60487

John David Anglin  changed:

   What|Removed |Added

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

--- Comment #3 from John David Anglin  ---
Appears fixed.

[Bug fortran/78033] Internal Compiler Error in enforce_single_undo_checkpoint

2016-10-22 Thread sgk at troutmask dot apl.washington.edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78033

--- Comment #11 from Steve Kargl  ---
On Sat, Oct 22, 2016 at 12:19:36PM +, dominiq at lps dot ens.fr wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78033
> 
> --- Comment #10 from Dominique d'Humieres  ---
> > The patch regtested fine but for
> >
> > FAIL: gfortran.dg/gomp/udr3.f90   -O   (test for errors, line 16)
> > FAIL: gfortran.dg/gomp/udr3.f90   -O  (test for excess errors)
> 
> I have overlooked another failure
> 
> FAIL: gfortran.dg/array_constructor_42.f90   -O  (test for excess errors)
> 
> /opt/gcc/work/gcc/testsuite/gfortran.dg/array_constructor_42.f90:15:24:
> 
>  vec = (/ real(a = 1), 1. /)
> 1
> Error: Invalid type-spec at (1)
> /opt/gcc/work/gcc/testsuite/gfortran.dg/array_constructor_42.f90:21:26:
> 
>  print *,(/ real(a = 1) /)
>   1
> Error: Invalid type-spec at (1)
> 

Yeah, I found that one in my final round of regression testing
(ie., clean src/, bootstrap, regression test).  What is weird 
is that the some of the changes in the version of match.c I have
is not what I remember last writing to disk.  Must have hit an
undo edit before saving.

The udr3.f90 failure is mystery at the moment.

[Bug target/71767] Endless stream of warnings when using GCC with -Wa,-q and Clang Integrated Assembler

2016-10-22 Thread egall at gwmail dot gwu.edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71767

--- Comment #33 from Eric Gallager  ---
I'm not sure if this is due to the patches from this bug report, or if it's due
to some other change made to GCC recently, but my fork of Emacs now fails to
build with LTO due to a bunch of undefined local symbols:

/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_toggleFullScreen$.lto_priv.1027
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_window.lto_priv.394
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_setFSValue$.lto_priv.1033
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_fsIsNative.lto_priv.1034
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_windowDidBecomeKey$.lto_priv.1035
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_ClassRefs_4.lto_priv.333
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_deleteWorkingText.lto_priv.1043
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_frame.lto_priv.350
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_windowWillResize$toSize$.lto_priv.1039
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_screens.lto_priv.474
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_ClassRefs_8.lto_priv.431
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_objectAtIndex$.lto_priv.358
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_mouseMoved$.lto_priv.1048
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_mouseDown$.lto_priv.1051
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_isFullscreen.lto_priv.1046
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_toolbar.lto_priv.434
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_retain.lto_priv.405
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_release.lto_priv.312
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_subviews.lto_priv.1056
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_count.lto_priv.355
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_class.lto_priv.440
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_ClassRefs_15.lto_priv.391
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_isKindOfClass$.lto_priv.442
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_condemn.lto_priv.1059
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_judge.lto_priv.1057
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_updateFrameSize$.lto_priv.1032
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_display.lto_priv.399
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_Class_EmacsView.lto_priv.1044
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_viewDidEndLiveResize.lto_priv.1045
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_stringWithUTF8String$.lto_priv.323
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_ClassRefs_3.lto_priv.285
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_dealloc.lto_priv.367
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_modifierFlags.lto_priv.472
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_keyDown$.lto_priv.464
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_visibleRect.lto_priv.1053
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_setOnMouseEntered$.lto_priv.1055
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_arrowCursor.lto_priv.480
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_ClassRefs_27.lto_priv.1052
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_addCursorRect$cursor$.lto_priv.1054
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_UTF8String.lto_priv.294
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_objectEnumerator.lto_priv.304
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_nextObject.lto_priv.308
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_isEqualToString$.lto_priv.316
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_invalidate.lto_priv.331
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_ClassRefs_17.lto_priv.374
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_context.lto_priv.336
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_windowNumber.lto_priv.341
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_contentView.lto_priv.353
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_windowWillExitFullScreen$.lto_priv.1030
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_windowDidExitFullScreen$.lto_priv.1031
/var/tmp//ccaoPXbR.s:unknown:Undefined local symbol
L_OBJC_SelRef_windowWillEnterFullScreen$.lto_priv.1028
/var/tm

[Bug target/71767] Endless stream of warnings when using GCC with -Wa,-q and Clang Integrated Assembler

2016-10-22 Thread iains at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71767

--- Comment #34 from Iain Sandoe  ---
(In reply to Eric Gallager from comment #33)
> I'm not sure if this is due to the patches from this bug report, or if it's
> due to some other change made to GCC recently, but my fork of Emacs now
> fails to build with LTO due to a bunch of undefined local symbols:

honestly, rather hard to tell from the info given, please can you identify what
you've built (and what version) and on what Darwin etc.

> I was figuring it might have something to do with this patch because this
> patch messed with the "L_" prefixing of symbols. GCC's LTO worked with my
> fork of Emacs a few months ago.

yeah, it's possible - although if you look at the logic that adds the "L" onto
objc local syms it wasn't touched (and they shouldn't pass equality test with
"LC" either).

Can you find any reproducer smaller than "emacs" ? 

I have a current build of 241437 under test with rebased patches and it doesn't
show this in the LTO tests in the test-suite.  However it might be being hidden
by some other error.  [I'll re-test with my work-around for instancetype
applied].

[Bug c/78075] New: Need a way to tell pthread_cancel don't to the forced unwind

2016-10-22 Thread baiyang at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78075

Bug ID: 78075
   Summary: Need a way to tell pthread_cancel don't to the forced
unwind
   Product: gcc
   Version: 4.5.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: baiyang at gmail dot com
  Target Milestone: ---

I want pthread_cancel not throw __forced_unwind exception, and there is no need
to do the cleanup in our case. e.g.: I just want terminate the thread
immediately without ANY cleanup, like the TerminateThread Win32 API. 

As far as I known, behaviors of the musl-libc and CLang libc are both equal to
the TerminateThread API.

I understand __forced_unwind is very useful in some cases, but it is clearly
unable to adapt to all situations. 

So could we add a new API, let user set the wanted behavior of pthread_cancel,
like: pthread_setcancelmethod(PTHREAD_CANCEL_NO_UNWIND) ?

[Bug c/78075] Need a way to tell pthread_cancel don't to the forced unwind

2016-10-22 Thread baiyang at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78075

--- Comment #1 from BaiYang  ---
pthread_exit too, of course.

[Bug tree-optimization/78076] New: [7 Regression] Conditional jump or move depends on uninitialised value @ tree-vect-loop.c:2307

2016-10-22 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78076

Bug ID: 78076
   Summary: [7 Regression] Conditional jump or move depends on
uninitialised value @ tree-vect-loop.c:2307
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: trippels at gcc dot gnu.org
  Target Milestone: ---

Created attachment 39868
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39868&action=edit
unreduced testcase

markus@x4 tmp % valgrind --track-origins=yes --trace-children=yes gcc -c -O3
ptio.i
==23766== Memcheck, a memory error detector
==23766== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==23766== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==23766== Command: /var/tmp/gcc_test/usr/local/bin/gcc -c -O3 ptio.i
==23766==
==23779== Memcheck, a memory error detector
==23779== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==23779== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==23779== Command:
/var/tmp/gcc_test/usr/local/bin/../libexec/gcc/x86_64-pc-linux-gnu/7.0.0/cc1
-fpreprocessed ptio.i -quiet -dumpbase ptio.i -mtune=generic -march=x86-64
-auxbase ptio -O3 -o /tmp/ccrgJkXg.s
==23779==
==23779== Conditional jump or move depends on uninitialised value(s)
==23779==at 0xDD2F03: vect_analyze_loop(loop*) (tree-vect-loop.c:2307)
==23779==by 0xDEB42D: vectorize_loops() (tree-vectorizer.c:549)
==23779==by 0xA9BCB7: execute_one_pass(opt_pass*) (passes.c:2341)
==23779==by 0xA9C370: execute_pass_list_1(opt_pass*) (passes.c:2430)
==23779==by 0xA9C382: execute_pass_list_1(opt_pass*) (passes.c:2431)
==23779==by 0xA9C382: execute_pass_list_1(opt_pass*) (passes.c:2431)
==23779==by 0xA9C3CC: execute_pass_list(function*, opt_pass*)
(passes.c:2441)
==23779==by 0x76F63D: cgraph_node::expand() (cgraphunit.c:2001)
==23779==by 0x770DEB: expand_all_functions (cgraphunit.c:2137)
==23779==by 0x770DEB: symbol_table::compile() [clone .part.47]
(cgraphunit.c:2494)
==23779==by 0x7734C4: compile (cgraphunit.c:2587)
==23779==by 0x7734C4: symbol_table::finalize_compilation_unit()
(cgraphunit.c:2584)
==23779==by 0xB70A7A: compile_file() (toplev.c:493)
==23779==by 0x5CDAA6: do_compile (toplev.c:2012)
==23779==by 0x5CDAA6: toplev::main(int, char**) (toplev.c:2146)
==23779==  Uninitialised value was created by a stack allocation
==23779==at 0xCDBF5C: record_estimate(loop*, tree_node*,
generic_wide_int > const&, gimple*, bool, bool,
bool) (tree-ssa-loop-niter.c:2976)
==23779==

[Bug tree-optimization/71620] [7 regression] gcc.dg/vect/slp-45.c FAILs

2016-10-22 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71620

Eric Botcazou  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-10-22
 CC||ebotcazou at gcc dot gnu.org
Summary|gcc.dg/vect/slp-45.c FAILs  |[7 regression]
   ||gcc.dg/vect/slp-45.c FAILs
 Ever confirmed|0   |1

--- Comment #1 from Eric Botcazou  ---
It's probably a duplicate of PR tree-opt/71491, the tests are almost the same:

--- gcc.dg/vect/slp-43.c2016-06-26 09:13:43.642038963 +0200
+++ gcc.dg/vect/slp-45.c2016-06-26 09:13:43.644039025 +0200
@@ -14,8 +14,8 @@
 { \
   for (int j = 0; j < N; ++j) \
 out[j] = in[j]; \
-  in += s*N; \
-  out += N; \
+  in += N; \
+  out += s*N; \
 } \
 }

[Bug testsuite/71491] [7 Regression] gcc.dg/vect/slp-43.c FAILs

2016-10-22 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71491

Eric Botcazou  changed:

   What|Removed |Added

 CC||ebotcazou at gcc dot gnu.org

--- Comment #2 from Eric Botcazou  ---
PR tree-opt/71620 is probably a duplicate.

[Bug tree-optimization/71264] [5 Regression] ICE in convert_move

2016-10-22 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71264

Eric Botcazou  changed:

   What|Removed |Added

 CC||ebotcazou at gcc dot gnu.org

--- Comment #19 from Eric Botcazou  ---
Richard, can you make the testcase compile-only if it cannot be vectorized in
the end (except for x86 by chance apparently)?

[Bug c/78075] Need a way to tell pthread_cancel don't to the forced unwind

2016-10-22 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78075

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #2 from Andrew Pinski  ---
This api is controlled by glibc, please report it there.

[Bug rtl-optimization/78029] [7 Regression] ICE in maybe_record_trace_start, at dwarf2cfi.c:2285

2016-10-22 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78029

Andrew Pinski  changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
   Target Milestone|--- |7.0
Summary|ICE in  |[7 Regression] ICE in
   |maybe_record_trace_start,   |maybe_record_trace_start,
   |at dwarf2cfi.c:2285 |at dwarf2cfi.c:2285

[Bug lto/64543] gcc fails to build due to undefined references to functions in libiberty

2016-10-22 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64543

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2016-10-22
 Ever confirmed|0   |1

--- Comment #2 from Andrew Pinski  ---
Does this work now?

[Bug target/71767] Endless stream of warnings when using GCC with -Wa,-q and Clang Integrated Assembler

2016-10-22 Thread howarth.at.gcc at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71767

--- Comment #35 from Jack Howarth  ---
(In reply to Eric Gallager from comment #33)
> I'm not sure if this is due to the patches from this bug report, or if it's
> due to some other change made to GCC recently, but my fork of Emacs now
> fails to build with LTO due to a bunch of undefined local symbols:

Did you actually add the patches for this bug report to your local gcc build?
The patches haven't been posted to gcc-patches yet or committed into trunk.

[Bug c/78075] Need a way to tell pthread_cancel don't to the forced unwind

2016-10-22 Thread baiyang at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78075

--- Comment #3 from BaiYang  ---
(In reply to Andrew Pinski from comment #2)
> This api is controlled by glibc, please report it there.

Where is it? I need report it again at another bugzilla right?

[Bug c/78075] Need a way to tell pthread_cancel don't to the forced unwind

2016-10-22 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78075

--- Comment #4 from Andrew Pinski  ---
(In reply to BaiYang from comment #3)
> (In reply to Andrew Pinski from comment #2)
> > This api is controlled by glibc, please report it there.
> 
> Where is it? I need report it again at another bugzilla right?

Yes https://sourceware.org/bugzilla/

:)

[Bug c/78075] Need a way to tell pthread_cancel don't to the forced unwind

2016-10-22 Thread baiyang at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78075

BaiYang  changed:

   What|Removed |Added

 Resolution|MOVED   |FIXED

--- Comment #5 from BaiYang  ---
(In reply to Andrew Pinski from comment #4)
> Yes https://sourceware.org/bugzilla/
> 
> :)

ok, thanks :)

[Bug c/78075] Need a way to tell pthread_cancel don't to the forced unwind

2016-10-22 Thread sch...@linux-m68k.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78075

Andreas Schwab  changed:

   What|Removed |Added

 Resolution|FIXED   |MOVED

[Bug target/78077] New: gcc 6.2.0 fails to link temacs from emacs-25.1 using the Xcode 8 linker

2016-10-22 Thread howarth.at.gcc at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78077

Bug ID: 78077
   Summary: gcc 6.2.0 fails to link temacs from emacs-25.1 using
the Xcode 8 linker
   Product: gcc
   Version: 6.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: howarth.at.gcc at gmail dot com
  Target Milestone: ---

The gcc 6.2.0 release fails to link temacs in the build of emacs-25.1 on
x86_64-apple-darwin15 using the Xcode 8 linker. Configuring a build as...

../configure --without-ns CC=/sw/bin/gcc-fsf-6 CXX=/sw/bin/g++-fsf-6
CPPFLAGS="-I/sw/include" LDFLAGS="-L/sw/lib"

results in a build that fails at...

  CCLD temacs
0  0x1097875cc  __assert_rtn + 144
1  0x10979a9df 
mach_o::relocatable::Parser::parse(mach_o::relocatable::ParserOptions
const&) + 3195
2  0x109792536  mach_o::relocatable::Parser::parse(unsigned char
const*, unsigned long long, char const*, long, ld::File::Ordinal,
mach_o::relocatable::ParserOptions const&) + 342
3  0x1097d3bac  ld::tool::InputFiles::makeFile(Options::FileInfo const&, bool)
+ 824
4  0x1097d640b  ld::tool::InputFiles::parseWorkerThread() + 495
5  0x7fff99bde99d  _pthread_body + 131
6  0x7fff99bde91a  _pthread_body + 0
A linker snapshot was created at:
/tmp/temacs-2016-09-22-161008.ld-snapshot
ld: Assertion failed: (cfiStartsArray[i] != cfiStartsArray[i-1]), function
parse, file
/Library/Caches/com.apple.xbs/Sources/ld64/ld64-274.1/src/ld/parsers/macho_relocatable_file.cpp,
line 1893.
collect2: error: ld returned 1 exit status

[Bug target/71767] Endless stream of warnings when using GCC with -Wa,-q and Clang Integrated Assembler

2016-10-22 Thread howarth.at.gcc at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71767

--- Comment #36 from Jack Howarth  ---
(In reply to Jack Howarth from comment #35)
> (In reply to Eric Gallager from comment #33)
> > I'm not sure if this is due to the patches from this bug report, or if it's
> > due to some other change made to GCC recently, but my fork of Emacs now
> > fails to build with LTO due to a bunch of undefined local symbols:
> 
> Did you actually add the patches for this bug report to your local gcc
> build? The patches haven't been posted to gcc-patches yet or committed into
> trunk.

I can't reproduce that particular failure in a build of emacs 25.1 against gcc
6.2.0 (with or without patchiest cf 240230 applied) because I run into a linker
bug when linking temacs using the Xcode 8 linker).

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78077

[Bug c/78078] New: error on ATOMIC_VAR_INIT with aggregate initializer

2016-10-22 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78078

Bug ID: 78078
   Summary: error on ATOMIC_VAR_INIT with aggregate initializer
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: msebor at gcc dot gnu.org
  Target Milestone: ---

This is the subject of C11 DR 485
(http://www.open-std.org/jtc1/sc22/wg14/www/docs/summary.htm#dr_485).  The
ATOMIC_VAR_INIT macro is intended to be used to initialize objects of atomic
types, including structs.  Unfortunately, the C specification suggests that the
macro accepts just one argument, making it unsuitable to initialize structs
with more than one member.  The test case below shows the problem.  As
indicated in the Committee Discussion section of the DR (and soon in the
Suggested Technical Corrigendum), the macro should be defined to take a
variable number of arguments so that code like in the test case below can be
correctly handled.

$ cat b.c && /build/gcc-trunk-svn/gcc/xgcc -B /build/gcc-trunk-svn/gcc -S -Wall
-Wextra -Wpedantic b.c
#include 

struct S { int a, b; };

_Atomic struct S s = ATOMIC_VAR_INIT ({ 1, 2 });
b.c:5:47: error: macro "ATOMIC_VAR_INIT" passed 2 arguments, but takes just 1
 _Atomic struct S s = ATOMIC_VAR_INIT ({ 1, 2 });
   ^
b.c:5:22: error: ‘ATOMIC_VAR_INIT’ undeclared here (not in a function); did you
mean ‘ATOMIC_VAR_INIT’?
 _Atomic struct S s = ATOMIC_VAR_INIT ({ 1, 2 });
  ^~~
  ATOMIC_VAR_INIT

[Bug middle-end/70773] Profiled sudoku solver slower due to lack of sdiv/udiv

2016-10-22 Thread tulipawn at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70773

--- Comment #9 from PeteVine  ---
It seems the LPATHBench exhibits the same issue.

https://raw.githubusercontent.com/logicchains/LPATHBench/master/c_fast.c

compiled the following way:

gcc -falign-functions=32 -std=gnu99 -O2 -mcpu=cortex-a5 -fomit-frame-pointer
-mfpu=neon -ftree-vectorize -ffast-math c_fast.c -o c_fast 

is faster than a profiled version. (10 runs avg. shows about 4% slowdown)

Once again division is present in the profiled assembly:

bl  __aeabi_idiv

[Bug c/78078] error on ATOMIC_VAR_INIT with aggregate initializer

2016-10-22 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78078

Martin Sebor  changed:

   What|Removed |Added

   Keywords||rejects-valid
   Severity|normal  |minor

[Bug c/78078] [DR485] error on ATOMIC_VAR_INIT with aggregate initializer

2016-10-22 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78078

Andrew Pinski  changed:

   What|Removed |Added

   Keywords|rejects-valid   |
Summary|error on ATOMIC_VAR_INIT|[DR485] error on
   |with aggregate initializer  |ATOMIC_VAR_INIT with
   ||aggregate initializer
   Severity|minor   |normal

[Bug c/78078] [DR485] error on ATOMIC_VAR_INIT with aggregate initializer

2016-10-22 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78078

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |SUSPENDED
   Last reconfirmed||2016-10-22
 Ever confirmed|0   |1

--- Comment #1 from Andrew Pinski  ---
Suspend until the Defect report gets resolved.

[Bug target/78077] gcc 6.2.0 fails to link temacs from emacs-25.1 using the Xcode 8 linker

2016-10-22 Thread howarth.at.gcc at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78077

--- Comment #1 from Jack Howarth  ---
This Xcode 8 linker failure is suppressed when emacs 25.1 is built at -O0, but
occurs for -O1, -O2, -Os and -O3.

[Bug target/71767] Endless stream of warnings when using GCC with -Wa,-q and Clang Integrated Assembler

2016-10-22 Thread howarth.at.gcc at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71767

--- Comment #37 from Jack Howarth  ---
(In reply to Eric Gallager from comment #33)
> I'm not sure if this is due to the patches from this bug report, or if it's
> due to some other change made to GCC recently, but my fork of Emacs now
> fails to build with LTO due to a bunch of undefined local symbols:

This issue exists in stock gcc 6.2.0 on x86_64-apple-darwin15. I can reproduce
the issue building emacs 25.1 configured with...

../configure --without-ns --prefix=/Users/howarth/emacs-dist
CC=/sw/bin/gcc-fsf-6 CXX=/sw/bin/g++-fsf-6 CPPFLAGS="-I/sw/include"
LDFLAGS="-flto -fno-pie -L/sw/lib" CFLAGS="-O0 -g -fno-pie -flto"

which produces a build that fails at...

  CCLD temacs
/var/folders/vh/xthx1f251nqfj804049zl1wmgn/T//cc5Viitn.s:288358:1: error:
assembler local symbol 'L1' not defined
...
/var/folders/vh/xthx1f251nqfj804049zl1wmgn/T//cc5Viitn.s:288358:1: error:
assembler local symbol 'L174' not defined

[Bug c/78079] New: implicit initialization overrides explicit designated initializer

2016-10-22 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78079

Bug ID: 78079
   Summary: implicit initialization overrides explicit designated
initializer
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: msebor at gcc dot gnu.org
  Target Milestone: ---

In C11 DR 413
(http://www.open-std.org/jtc1/sc22/wg14/www/docs/summary.htm#dr_413) the
committee's resolution clarifies by adding an example the intent already
present in the standard that implicit initialization of struct members doesn't
override their explicit initialization.

When compiled using GCC the added example (below) aborts at runtime when it is
expected to run successfully to completion.  (Clang does the right thing and
its output might help illuminate why.  See below.)

$ cat b.c && /build/gcc-trunk-svn/gcc/xgcc -B /build/gcc-trunk-svn/gcc -Wall
-Wextra -Wpedantic b.c && ./a.out
typedef struct {
int k;
int l;
int a[2];
} T;

typedef struct {
int i;
T t;
} S;

T x = {.l = 43, .k = 42, .a[1] = 19, .a[0] = 18 };

int main (void)
{
S l = { 1, .t = x, .t.l = 41, .t.a[1] = 17};
if (l.t.k != 42) __builtin_abort ();
}
Aborted (core dumped)



$ /build/llvm-trunk/bin/clang -Wall -Wextra -Wpedantic b.c && ./a.out
b.c:16:30: warning: subobject initialization overrides initialization of other
  fields within its enclosing subobject [-Winitializer-overrides]
S l = { 1, .t = x, .t.l = 41, .t.a[1] = 17};
 ^~~
b.c:16:25: note: previous initialization is here
S l = { 1, .t = x, .t.l = 41, .t.a[1] = 17};
^
b.c:16:41: warning: subobject initialization overrides initialization of other
  fields within its enclosing subobject [-Winitializer-overrides]
S l = { 1, .t = x, .t.l = 41, .t.a[1] = 17};
^~
b.c:16:25: note: previous initialization is here
S l = { 1, .t = x, .t.l = 41, .t.a[1] = 17};
^
2 warnings generated.

[Bug c/63944] [DR#413] Partial overriding of nonconstant struct/union initializers with designated initializers

2016-10-22 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63944

Andrew Pinski  changed:

   What|Removed |Added

 CC||msebor at gcc dot gnu.org

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

[Bug c/78079] [DR413] implicit initialization overrides explicit designated initializer

2016-10-22 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78079

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #1 from Andrew Pinski  ---
Dup of bug 63944.

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

[Bug target/78056] [7 Regression] build failure on Power7

2016-10-22 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78056

Martin Sebor  changed:

   What|Removed |Added

 CC||msebor at gcc dot gnu.org

--- Comment #12 from Martin Sebor  ---
I see the same ICE on RHEL 7.2 with Binutils 2.23.52.0.1-50.el7 20130226 and
can confirm that switching to Binutils 2.27 lets the build proceed.  Among the
changes in auto-host.h between a 2.23 build and the successful 2.27 build that
look related to Binutils I see these:

HAVE_AS_COMPRESS_DEBUG1   ->   2
HAVE_AS_ENTRY_MARKERS undefined   ->   1
HAVE_AS_POWER9undefined   ->   1
HAVE_LD_COMPRESS_DEBUG1   ->   3
HAVE_LD_PUSHPOPSTATE_SUPPORT  undefined   ->   1
LD_COMPRESS_DEBUG_OPTION  ""  ->   "--compress-debug-sections"
POWERPC64_TOC_POINTER_ALIGNMENT   undefined   ->   256

[Bug c++/78080] New: chown command (sys/stat.h) fail to change the owner directory if the return value is not attributed to a variable.

2016-10-22 Thread rosemberg at ymail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78080

Bug ID: 78080
   Summary: chown command (sys/stat.h) fail to change the owner
directory if the return value is not attributed to a
variable.
   Product: gcc
   Version: 5.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: rosemberg at ymail dot com
  Target Milestone: ---

Hi,
chown command (sys/stat.h) fail to change the owner directory if the return
value is not attributed to a variable.

Supposed the directory /home/user/tochange exists and the program is running
with administrator rights and tochange owner and group is not the same like its
parent directory .

example of success code:

#include 
#include 
#include 

int main()
{

string sPath("/home/user/tochange");
struct stat info;

stat("/home/user",&info);

int iA = chown(sPath.c_str(), info.st_uid, info.st_gid);
cout << iA << endl;

return 0;
}


The result to iA will be 0 (success)

If I change the last 2 lines (before return 0;) to the follow code, the chown
command failed and cout will return -1 (nothing was changed):

cout << chown(sPath.c_str(), info.st_uid, info.st_gid) << endl;


it also happened with if statement.

Best regards,
M.Rosemberg

[Bug target/77837] missing -Wformat-length warning for %p with null argument on powerpc64

2016-10-22 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77837

Martin Sebor  changed:

   What|Removed |Added

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

--- Comment #4 from Martin Sebor  ---
Turns out this was not fixed after all and the submitted patch is still
necessary.

[Bug target/78056] [7 Regression] build failure on Power7

2016-10-22 Thread amodra at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78056

--- Comment #13 from Alan Modra  ---
Thanks Martin, so it is HAVE_AS_POWER9 being undefined, which then results in
TARGET_P9_VECTOR and others being defined to zero.  Kelvin's fix of not
defining the builtins when no power9 support is available sounds right to me
(but best to use derived TARGET_P9_VECTOR etc. rather than HAS_AS_POWER9).

I also think that invoking gcc with -mcpu=power9 ought to complain if
HAVE_AS_POWER9 is not defined, ie. tests like

  if (TARGET_P9_VECTOR != ((rs6000_isa_flags & OPTION_MASK_P9_VECTOR) != 0))
 error ("-mpower9-vector requires assembler support for power9");

be added to rs6000_override_options.

[Bug c/78081] New: -Wmaybe-initialized false-alarm regression for Emacs regex.c

2016-10-22 Thread eggert at gnu dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78081

Bug ID: 78081
   Summary: -Wmaybe-initialized false-alarm regression for Emacs
regex.c
   Product: gcc
   Version: 6.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: eggert at gnu dot org
  Target Milestone: ---

Created attachment 39869
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39869&action=edit
test program illustrating -Wmaybe-uninitialized false alarm

I found this when compiling a test version of GNU Emacs with gcc (GCC) 6.2.1
20160916 (Red Hat 6.2.1-2) on x86-64. The problem does not occur with gcc (GCC)
4.8.5 20150623 (Red Hat 4.8.5-4) on x86-64 so this appears to be a regression.

The problem caused the Emacs build to fail when configured with
--enable-gcc-warnings, when compiling src/regex.c. I reduced the problem case
to a relatively small source file u2.i (attached). Compile it with the command:

gcc -S -Werror=maybe-uninitialized -O2 u2.i

GCC will complain as follows and then fail:

u2.i: In function 're_search_2':
u2.i:59:42: error: 'offset2' may be used uninitialized in this function
[-Werro\
r=maybe-uninitialized]
   if (string2) string2 = offset2 + new_base;
  ^~

This diagnostic is incorrect, as offset2 must be initialized, using the same
reasoning that offset1 must be initialized (which GCC gets right).

[Bug target/78056] [7 Regression] build failure on Power7

2016-10-22 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78056

--- Comment #14 from Segher Boessenkool  ---
I used the following patch yesterday, and it works.  Totally
hacky of course, it should be factored to its own function, etc.

===
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 654206f..667c169 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -17509,6 +17509,8 @@ altivec_init_builtins (void)
 def_builtin (d->name, void_ftype_pcvoid_int_int, d->code);

   /* Initialize the predicates.  */
+if (TARGET_P9_VECTOR)
+{
   d = bdesc_altivec_preds;
   for (i = 0; i < ARRAY_SIZE (bdesc_altivec_preds); i++, d++)
 {
@@ -17549,6 +17551,7 @@ altivec_init_builtins (void)

   def_builtin (d->name, type, d->code);
 }
+}

   /* Initialize the abs* operators.  */
   d = bdesc_abs;
===

[Bug tree-optimization/78076] [7 Regression] Conditional jump or move depends on uninitialised value @ tree-vect-loop.c:2307

2016-10-22 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78076

--- Comment #1 from Markus Trippelsdorf  ---
int a, b;
void fn1() {
  for (; a < 0; ++a) {
b = 0;
for (; b < a; b++)
  ;
  }
}

[Bug c/78082] New: [7 Regression] Conditional jump or move depends on uninitialised value @ c-format.c:3347

2016-10-22 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78082

Bug ID: 78082
   Summary: [7 Regression] Conditional jump or move depends on
uninitialised value @ c-format.c:3347
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: trippels at gcc dot gnu.org
  Target Milestone: ---
  Host: powerpc64le-unknown-linux-gnu
Target: powerpc64le-unknown-linux-gnu
 Build: powerpc64le-unknown-linux-gnu

Created attachment 39870
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39870&action=edit
unreduced testcase

On ppc64le:

trippels@gcc2-power8 linux % valgrind -q --track-origins=yes
--trace-children=yes gcc -c -Wformat cpuacct.i
==126902== Conditional jump or move depends on uninitialised value(s)
==126902==at 0x409811C: strlen (in
/usr/lib64/valgrind/vgpreload_memcheck-ppc64le-linux.so)
==126902==by 0xB80761F: ???
==126902==by 0x102A34DB: get_corrected_substring (c-format.c:3347)
==126902==by 0x102A34DB: format_type_warning(substring_loc const&,
source_range*, format_wanted_type*, tree_node*, tree_node*, format_kind_info
const*, int, char) (c-format.c:3458)
==126902==by 0x102A87EF: check_format_types (c-format.c:3072)
==126902==by 0x102A87EF:
argument_parser::check_argument_type(format_char_info const*, length_modifier
const&, tree_node*&, char const*&, bool, unsigned long&, tree_node*&, int, char
const*, char const*, unsigned int, char) [clone .part.31] (c-format.c:2672)
==126902==by 0x102AA133: check_argument_type (c-format.c:2709)
==126902==by 0x102AA133: check_format_info_main (c-format.c:2817)
==126902==by 0x102AA133: check_format_arg(void*, tree_node*, unsigned long)
(c-format.c:1669)
==126902==by 0x10291E9F: check_function_arguments_recurse(void (*)(void*,
tree_node*, unsigned long), void*, tree_node*, unsigned long) (c-common.c:5677)
==126902==by 0x102A515F: check_format_info (c-format.c:1402)
==126902==by 0x102A515F: check_function_format(tree_node*, int,
tree_node**) (c-format.c:1063)
==126902==by 0x102927F7: check_function_arguments(unsigned int, tree_node
const*, int, tree_node**) (c-common.c:5589)
==126902==by 0x101FD397: build_function_call_vec(unsigned int, vec, tree_node*, vec*,
vec*) (c-typeck.c:3113)
==126902==by 0x1022710F:
c_parser_postfix_expression_after_primary(c_parser*, unsigned int, c_expr)
(c-parser.c:8458)
==126902==by 0x1021AD37: c_parser_postfix_expression(c_parser*)
(c-parser.c:8271)
==126902==by 0x1021E41B: c_parser_unary_expression(c_parser*)
(c-parser.c:7089)
==126902==  Uninitialised value was created by a heap allocation
==126902==at 0x4096784: realloc (in
/usr/lib64/valgrind/vgpreload_memcheck-ppc64le-linux.so)
==126902==by 0x112719E3: xrealloc (xmalloc.c:180)
==126902==by 0x11200407: maybe_grow (input.c:435)
==126902==by 0x11200407: read_data (input.c:448)
==126902==by 0x11200407: maybe_read_data(fcache*) (input.c:470)
==126902==by 0x11201033: get_next_line(fcache*, char**, long*)
(input.c:487)
==126902==by 0x1120188B: goto_next_line (input.c:611)
==126902==by 0x1120188B: read_line_num (input.c:697)
==126902==by 0x1120188B: location_get_source_line(char const*, int, int*)
(input.c:726)
==126902==by 0x1120349B: get_substring_ranges_for_loc(cpp_reader*,
string_concat_db*, unsigned int, cpp_ttype, cpp_substring_ranges&)
(input.c:1365)
==126902==by 0x1120401B: get_source_location_for_substring(cpp_reader*,
string_concat_db*, unsigned int, cpp_ttype, int, int, int, unsigned int*)
(input.c:1445)
==126902==by 0x102606F3: c_get_substring_location(substring_loc const&,
unsigned int*) (c-common.c:862)
==126902==by 0x108D2A27: substring_loc::get_location(unsigned int*) const
(substring-locations.c:194)
==126902==by 0x102A32FB: get_corrected_substring (c-format.c:3305)
==126902==by 0x102A32FB: format_type_warning(substring_loc const&,
source_range*, format_wanted_type*, tree_node*, tree_node*, format_kind_info
const*, int, char) (c-format.c:3458)
==126902==by 0x102A87EF: check_format_types (c-format.c:3072)
==126902==by 0x102A87EF:
argument_parser::check_argument_type(format_char_info const*, length_modifier
const&, tree_node*&, char const*&, bool, unsigned long&, tree_node*&, int, char
const*, char const*, unsigned int, char) [clone .part.31] (c-format.c:2672)
==126902==by 0x102AA133: check_argument_type (c-format.c:2709)
==126902==by 0x102AA133: check_format_info_main (c-format.c:2817)
==126902==by 0x102AA133: check_format_arg(void*, tree_node*, unsigned long)
(c-format.c:1669)
==126902== 
kernel/sched/cpuacct.c: In function ‘cpuacct_stats_show’:
kernel/sched/cpuacct.c:298:25: warning: format ‘%lld’ expects argument of type
‘long long int’, but argument 4 has type ‘long unsigned int’ [-Wformat=]
   seq_pr

[Bug c++/78083] New: wrong mangling for varargs lambdas

2016-10-22 Thread richard-gccbugzilla at metafoo dot co.uk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78083

Bug ID: 78083
   Summary: wrong mangling for varargs lambdas
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: richard-gccbugzilla at metafoo dot co.uk
  Target Milestone: ---

Testcase:

inline int f() {
  auto a = [](...) { static int n; return ++n; };
  auto b = []() { static int n; return ++n; };
  return a() + b();
}
int k = f();

The lambdas should have closure-type-names of UlzE_ and UlvE_ in their
manglings respectively, but GCC mangles the second one incorrectly as UlvE0_.
EDG and (as of a few minutes ago) Clang get this right.