[Bug middle-end/78501] [7 regression] SEGV in vrp_val_max

2016-11-23 Thread prathamesh3492 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78501

--- Comment #2 from prathamesh3492 at gcc dot gnu.org ---
Hi,
From the trace, it seems ptrdiff_type_node is set to NULL for ada ?
Either we can guard setting range for CFN_BUILTIN_STRLEN by checking
ptrtdiff_type_node is non null, or make vrp_val_max return NULL if type is
NULL.
I am trying to reproduce on x86_64-unknown-linux-gnu.

Thanks,
Prathamesh

[Bug fortran/78279] ICE in identical_array_ref, at fortran/dependency.c:104

2016-11-23 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78279

kargl at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P4

[Bug fortran/78279] ICE in identical_array_ref, at fortran/dependency.c:104

2016-11-23 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78279

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 CC||kargl at gcc dot gnu.org,
   ||tkoenig at netcologne dot de
   Assignee|unassigned at gcc dot gnu.org  |kargl at gcc dot gnu.org

--- Comment #2 from kargl at gcc dot gnu.org ---
I have a patch unless Thomas has some other idea.

[Bug target/78458] [7 Regression] LRA ICE building libgcc for powerpc-linux-gnuspe e500v2

2016-11-23 Thread bergner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78458

--- Comment #13 from Peter Bergner  ---
Author: bergner
Date: Thu Nov 24 02:07:51 2016
New Revision: 242818

URL: https://gcc.gnu.org/viewcvs?rev=242818=gcc=rev
Log:
gcc/
PR target/78458
* config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return MODE
if it is at least NREGS wide.

gcc/testsuite/
PR target/78458
* gcc.target/powerpc/pr78458.c: New.

Added:
trunk/gcc/testsuite/gcc.target/powerpc/pr78458.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000.h
trunk/gcc/testsuite/ChangeLog

[Bug c++/78504] New: Bad fixit hint: '_Pragma' does not name a type; did you mean '_Pragma'?

2016-11-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78504

Bug ID: 78504
   Summary: Bad fixit hint: '_Pragma' does not name a type; did
you mean '_Pragma'?
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: redi at gcc dot gnu.org
CC: dmalcolm at gcc dot gnu.org
  Target Milestone: ---

g++ -c -x c++ - <<< '_Pragma(GCC system_header)'
:1:9: error: _Pragma takes a parenthesized string literal
:1:1: error: '_Pragma' does not name a type; did you mean '_Pragma'?

[Bug c/78503] New: -Wint-in-bool-context false positive on unsigned multiplication

2016-11-23 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78503

Bug ID: 78503
   Summary: -Wint-in-bool-context false positive on unsigned
multiplication
   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: ---

GCC issues a -Wint-in-bool-context warning on the following test case and
suggests using the AND expression instead.  The code is valid (it tries to
avoid calling malloc with a zero argument) and the warning is a false positive.
 The suggestion to use the AND expression also isn't very helpful here (it's
confusing).  There is no obvious way the AND expression could be used while
preserving the effects of the code.  Changing expression to (n * sizeof (int)
!= 0) does avoid the warning.

$ cat c.c && gcc -S -Wall c.c
void f (void*);

void g (unsigned n)
{
  void *p = (n * sizeof (int)) ? __builtin_malloc (n * sizeof (n)) : 0;
  f (p);
}
c.c: In function ‘g’:
c.c:5:16: warning: ‘*’ in boolean context, suggest ‘&&’ instead
[-Wint-in-bool-context]
   void *p = (n * sizeof (int)) ? __builtin_malloc (n * sizeof (n)) : 0;
 ~~~^~~


Note that the test case has been distilled from a modified definition of the
XALLOCAVEC macro in libiberty:

  #define XALLOCAVEC(T, N)   ((N) ? (T *) alloca (sizeof (T) * (N)) : (T *)0)

The modified definition which tries to prevent zero-size allocation then causes
GCC to fail to bootstrap with errors like the following:

/src/gcc/svn/gcc/fold-const.c:1499:33: error: ‘*’ in boolean context, suggest
‘&&’ instead [-Werror=int-in-bool-context]
  elts = XALLOCAVEC (tree, nelts * 4);
/src/gcc/svn/gcc/../include/libiberty.h:356:28: note: in definition of macro
‘XALLOCAVEC’
 #define XALLOCAVEC(T, N) ((N) ? (T *) alloca (sizeof (T) * (N)) : (T *)0)
^

[Bug fortran/78500] ICE in gfc_check_vardef_context, at fortran/expr.c:5289

2016-11-23 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78500

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 CC||kargl at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |kargl at gcc dot gnu.org

--- Comment #3 from kargl at gcc dot gnu.org ---
patch submitted to mailing lists

[Bug middle-end/78501] [7 regression] SEGV in vrp_val_max

2016-11-23 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78501

Dominique d'Humieres  changed:

   What|Removed |Added

 Target|*-*-solaris2.*  |*-*-solaris2.*
   ||x86_64-apple-darwin16
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-11-24
   Host|*-*-solaris2.*  |*-*-solaris2.*
   ||x86_64-apple-darwin16
 Ever confirmed|0   |1
  Build|*-*-solaris2.*  |*-*-solaris2.*
   ||x86_64-apple-darwin16

--- Comment #1 from Dominique d'Humieres  ---
Also seen on x86_64-apple-darwin16.

[Bug libstdc++/71556] set::get_time() requires leading 0s for %H and friends

2016-11-23 Thread sebunger44 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71556

Sebastian Unger  changed:

   What|Removed |Added

 CC||sebunger44 at gmail dot com

--- Comment #2 from Sebastian Unger  ---
I also just ran into this. Took me a while to convince myself that I was
actually looking at a compiler (well library) bug before searching.

clang does not have this issue.

It also affects %m and %d. Haven't tried any others.

[Bug target/68467] libgcc, compilation for target m68k-linux breaks in linux_atomic.c

2016-11-23 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68467

Jeffrey A. Law  changed:

   What|Removed |Added

   Priority|P3  |P4
   Assignee|unassigned at gcc dot gnu.org  |law at redhat dot com

[Bug fortran/78492] [OOP] Compiler segfault with non_overridable function in generic interface

2016-11-23 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78492

Jeffrey A. Law  changed:

   What|Removed |Added

   Priority|P3  |P4
 CC||law at redhat dot com

[Bug fortran/78499] ICE in gfc_typename, at fortran/misc.c:158

2016-11-23 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78499

Jeffrey A. Law  changed:

   What|Removed |Added

   Priority|P3  |P4
 CC||law at redhat dot com

[Bug fortran/78500] ICE in gfc_check_vardef_context, at fortran/expr.c:5289

2016-11-23 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78500

Jeffrey A. Law  changed:

   What|Removed |Added

   Priority|P3  |P4
 CC||law at redhat dot com

[Bug c++/78502] New: Analyze 'final'/'override' even for uninstantiated class templates

2016-11-23 Thread jengelh at inai dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78502

Bug ID: 78502
   Summary: Analyze 'final'/'override' even for uninstantiated
class templates
   Product: gcc
   Version: 6.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jengelh at inai dot de
  Target Milestone: ---

This is a feature request for a future version.
gcc 6.x currently misses to warn about nonderivable classes of templates that
are left uninstantiated:

$ cat t.cpp
class A final {};
template class B : public A {};

Observed:
$ g++-6 t.cpp -std=gnu++11 -c -Wall
$
(no diagnostics)

Expected:
Clang 3.7.0:
$ clang++ -std=gnu++11 -c -Wall t.cpp
t.cpp:2:39: error: base 'A' is marked 'final'
template class B : public A {};

Coverity 8.5.0.5:
$ cov-build g++ -std=gnu++11 -c -Wall t.cpp
"t.cpp", line 2: error #1920: a "final" class type cannot be used as a base
class
  class B : public A {

gcc version 6.2.1 20161121 [gcc-6-branch revision 242657] (SUSE Linux)

[Bug fortran/78297] ICE in finish_equivalences, at fortran/trans-common.c:1246

2016-11-23 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78297

kargl at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #6 from kargl at gcc dot gnu.org ---
Fixed on 5-branch, 6-branch, and trunk.

[Bug fortran/78297] ICE in finish_equivalences, at fortran/trans-common.c:1246

2016-11-23 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78297

--- Comment #5 from kargl at gcc dot gnu.org ---
Author: kargl
Date: Wed Nov 23 22:48:54 2016
New Revision: 242811

URL: https://gcc.gnu.org/viewcvs?rev=242811=gcc=rev
Log:
2016-11-23  Steven G. Kargl  

PR fortran/78297
* trans-common.c (finish_equivalences): Do not dereference a NULL
pointer.

2016-11-23  Steven G. Kargl  

PR fortran/78297
* gfortran.dg/pr78297.f90: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/gfortran.dg/pr78297.f90
Modified:
branches/gcc-5-branch/gcc/fortran/ChangeLog
branches/gcc-5-branch/gcc/fortran/trans-common.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug fortran/78298] ICE in lookup_decl_in_outer_ctx, bei omp-low.c:4115

2016-11-23 Thread anlauf at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78298

Harald Anlauf  changed:

   What|Removed |Added

 CC||anlauf at gmx dot de

--- Comment #2 from Harald Anlauf  ---
Fusing the outer $omp parallel / $omp do makes the code compile, e.g.:

program p
  implicit none
  integer :: i, j, n
  n = 2
!  !$omp parallel
!  !$omp do
  !$omp parallel do
  do i = 1, n
 !$omp parallel
 !$omp do
 do j = 1, n
call sub(i)
 end do
 !$omp end parallel
  end do
!  !$omp end parallel
  !$omp end parallel do
  !call unused()
contains
  subroutine sub(x)
integer :: x
  end subroutine sub
  subroutine unused()
i = 0
j = 0
  end
end program p


The differences in the dump-tree may be revealing to sb. understanding
the parsing of OpenMP constructs.

[Bug fortran/78297] ICE in finish_equivalences, at fortran/trans-common.c:1246

2016-11-23 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78297

--- Comment #4 from kargl at gcc dot gnu.org ---
Author: kargl
Date: Wed Nov 23 22:16:53 2016
New Revision: 242806

URL: https://gcc.gnu.org/viewcvs?rev=242806=gcc=rev
Log:
2016-11-23  Steven G. Kargl  

PR fortran/78297
* trans-common.c (finish_equivalences): Do not dereference a NULL
pointer.

2016-11-23  Steven G. Kargl  

PR fortran/78297
* gfortran.dg/pr78297.f90: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/gfortran.dg/pr78297.f90
Modified:
branches/gcc-6-branch/gcc/fortran/ChangeLog
branches/gcc-6-branch/gcc/fortran/trans-common.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug middle-end/78501] [7 regression] SEGV in vrp_val_max

2016-11-23 Thread ro at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78501

Rainer Orth  changed:

   What|Removed |Added

   Target Milestone|--- |7.0

[Bug middle-end/78501] New: [7 regression] SEGV in vrp_val_max

2016-11-23 Thread ro at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78501

Bug ID: 78501
   Summary: [7 regression] SEGV in vrp_val_max
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ro at gcc dot gnu.org
CC: prathamesh3492 at gcc dot gnu.org
  Target Milestone: ---
  Host: *-*-solaris2.*
Target: *-*-solaris2.*
 Build: *-*-solaris2.*

As of r242800, Ada bootstrap is broken on (at least) Solaris/x86 and SPARC: in 
stage2, I get

/var/gcc/regression/trunk/12-gcc/build/./prev-gcc/xgcc
-B/var/gcc/regression/trunk/12-gcc/build/./prev-gcc/
-B/vol/gcc/i386-pc-solaris2.12/bin/ -B/vol/gcc/i386-pc-solaris2.12/bin/
-B/vol/gcc/i386-pc-solaris2.12/lib/ -isystem
/vol/gcc/i386-pc-solaris2.12/include -isystem
/vol/gcc/i386-pc-solaris2.12/sys-include-c -g -O2  -gnatpg -gnatwns -gnata
-W -Wall -nostdinc -I- -I. -Iada/generated -Iada
-I/vol/gcc/src/hg/trunk/local/gcc/ada
-I/vol/gcc/src/hg/trunk/local/gcc/ada/gcc-interface
/vol/gcc/src/hg/trunk/local/gcc/ada/osint.adb -o ada/osint.o

raised CONSTRAINT_ERROR : SIGSEGV
make: *** [ada/osint.o] Error 1

Thread 2 received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1 (LWP 1)]
0x099519ac in vrp_val_max (type=0x0)
at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:156
156   if (!INTEGRAL_TYPE_P (type))
(gdb) where
#0  0x099519ac in vrp_val_max (type=0x0)
at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:156
#1  0x0995de5d in extract_range_basic (vr=0xfeffd164, stmt=0xfa517f24)
at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:4033
#2  0x09967eb5 in vrp_visit_assignment_or_call (stmt=0xfa517f24, 
output_p=0xfeffd194, vr=0xfeffd164)
at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:7137
#3  0x09969b75 in extract_range_from_stmt (stmt=0xfa517f24, 
taken_edge_p=0xfeffd174, output_p=0xfeffd194, vr=0xfeffd164)
at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:7927
#4  0x099730f5 in evrp_dom_walker::before_dom_children (this=0xfeffd32c, 
bb=0xfa5ec200) at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:10885
#5  0x09f71ed5 in dom_walker::walk (this=0xfeffd32c, bb=0xfa5ec200)
at /vol/gcc/src/hg/trunk/local/gcc/domwalk.c:265
#6  0x09973dbe in execute_early_vrp ()
at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:11109
#7  0x099743af in (anonymous namespace)::pass_early_vrp::execute (
this=0xac86450) at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:11358
#8  0x09590d66 in execute_one_pass (pass=0xac86450)
at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2370
#9  0x095910a1 in execute_pass_list_1 (pass=0xac86450)
at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2459
#10 0x095910d1 in execute_pass_list_1 (pass=0xac86200)
at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2460
#11 0x0959111b in execute_pass_list (fn=0xfade9680, pass=0xac86100)
at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2470
#12 0x0958f713 in do_per_function_toporder (
callback=0x95910e9 , 
data=0xac86100) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:1729
#13 0x09591c90 in execute_ipa_pass_list (pass=0xac860c0)
at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2812
#14 0x091ec739 in ipa_passes ()
at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2286
#15 0x091ecb64 in symbol_table::compile (this=0xfac09000)
at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2425
#16 0x091ed010 in symbol_table::finalize_compilation_unit (this=0xfac09000)
at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2584
#17 0x0968f70c in compile_file ()
at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:488
#18 0x09691937 in do_compile ()
at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:1983
#19 0x09691bf2 in toplev::main (this=0xfeffdafe, argc=34, argv=0xfeffdb54)
at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:2117
#20 0x0a09b44c in main (argc=34, argv=0xfeffdb54)
at /vol/gcc/src/hg/trunk/local/gcc/main.c:39

This has obviously been introduced by

2016-11-23  Prathamesh Kulkarni  

PR middle-end/78153
* gimple-fold.c (fold_stmt_1): Handle case for GIMPLE_RETURN.
* tree-vrp.c (extract_range_basic): Handle case for
CFN_BUILT_IN_STRLEN.

  Rainer

[Bug fortran/78499] ICE in gfc_typename, at fortran/misc.c:158

2016-11-23 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78499

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-11-23
 Ever confirmed|0   |1

--- Comment #2 from Dominique d'Humieres  ---
Confirmed.

[Bug fortran/78297] ICE in finish_equivalences, at fortran/trans-common.c:1246

2016-11-23 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78297

--- Comment #3 from kargl at gcc dot gnu.org ---
Author: kargl
Date: Wed Nov 23 21:44:05 2016
New Revision: 242802

URL: https://gcc.gnu.org/viewcvs?rev=242802=gcc=rev
Log:
2016-11-23  Steven G. Kargl  

PR fortran/78297
* trans-common.c (finish_equivalences): Do not dereference a NULL
pointer.

2016-11-23  Steven G. Kargl  

PR fortran/78297
* gfortran.dg/pr78297.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/pr78297.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-common.c
trunk/gcc/testsuite/ChangeLog

[Bug fortran/69604] ICE in gfc_add_modify_loc, at fortran/trans.c:159

2016-11-23 Thread anlauf at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69604

--- Comment #11 from Harald Anlauf  ---
While reducing PR 78290, I found another example giving a similar traceback:

% gfc-trunk gfcbug136.f90
gfcbug136.f90:13:0:

   ip=>ta%i !!! Works if you comment this line out !!!

internal compiler error: in gfc_add_modify_loc, at fortran/trans.c:159
0x835756e gfc_add_modify_loc(unsigned int, stmtblock_t*, tree_node*,
tree_node*)
../../trunk/gcc/fortran/trans.c:158
0x83575e7 gfc_add_modify(stmtblock_t*, tree_node*, tree_node*)
../../trunk/gcc/fortran/trans.c:170
0x83a90eb gfc_trans_pointer_assignment(gfc_expr*, gfc_expr*)
../../trunk/gcc/fortran/trans-expr.c:8267
0x83a9688 gfc_trans_pointer_assign(gfc_code*)
../../trunk/gcc/fortran/trans-expr.c:8054
0x8358357 trans_code
../../trunk/gcc/fortran/trans.c:1714
0x838d62c gfc_generate_function_code(gfc_namespace*)
../../trunk/gcc/fortran/trans-decl.c:6261
0x830d833 translate_all_program_units
../../trunk/gcc/fortran/parse.c:6038
0x830d833 gfc_parse_file()
../../trunk/gcc/fortran/parse.c:6238
0x8352db5 gfc_be_parse_file
../../trunk/gcc/fortran/f95-lang.c:202

% cat gfcbug136.f90
! Reduced from PR 78290, similar to PR 69604
subroutine foo ()
  implicit none
  type mytype
integer :: i = 1
  end type mytype

  type(mytype),target  :: ta(9)
  integer ,pointer :: ip(:)

  volatile :: ip  ! <-- ICE

  ip=>ta%i !!! Works if you comment this line out !!!

end subroutine foo

[Bug fortran/78500] ICE in gfc_check_vardef_context, at fortran/expr.c:5289

2016-11-23 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78500

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-11-23
 Ever confirmed|0   |1

--- Comment #2 from Dominique d'Humieres  ---
Confirmed.

[Bug target/78012] -mfpxx produces assembly code using odd FP registers on MIPS

2016-11-23 Thread ma...@linux-mips.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78012

Maciej W. Rozycki  changed:

   What|Removed |Added

 CC||matthew.fortune at imgtec dot 
com

--- Comment #5 from Maciej W. Rozycki  ---
I have been able to reproduce the bug now -- to trigger it you need to
request classic SVR4 code either by means of compiler defaults or with
the use of the `-mplt' option, in which case a pair of single-word FPU
accesses is produced for $f15: first SWC1 to save it, and then LWC1 to
restore it from the stack frame, as follows:

swc1$f15,224($sp)# 1178 *movsi_internal/15  [length = 4]
lwc1$f15,224($sp)# 1179 *movsi_internal/13  [length = 4]

Notice the integer mode used.  I haven't investigated it further.

You need all of `-mips32r2 -mfpxx -mno-plt' to trigger it.  It does
*not* trigger if `-fPIC' or `-fPIE' is used in place of `-mno-plt'.

[Bug sanitizer/69278] Confusion option handling for -sanitize-recovery=alll

2016-11-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69278

--- Comment #11 from Jakub Jelinek  ---
Author: jakub
Date: Wed Nov 23 19:51:27 2016
New Revision: 242795

URL: https://gcc.gnu.org/viewcvs?rev=242795=gcc=rev
Log:
PR sanitizer/69278
* opts.c (parse_sanitizer_options): For -fsanitize=undefined,
restore enabling also SANITIZE_UNREACHABLE and SANITIZE_RETURN.

* g++.dg/ubsan/return-7.C: New test.
* c-c++-common/ubsan/unreachable-4.c: New test.

Added:
trunk/gcc/testsuite/c-c++-common/ubsan/unreachable-4.c
trunk/gcc/testsuite/g++.dg/ubsan/return-7.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/opts.c
trunk/gcc/testsuite/ChangeLog

[Bug tree-optimization/78482] [5/6/7 Regression] wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu

2016-11-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78482

--- Comment #10 from Jakub Jelinek  ---
Author: jakub
Date: Wed Nov 23 19:50:23 2016
New Revision: 242794

URL: https://gcc.gnu.org/viewcvs?rev=242794=gcc=rev
Log:
PR tree-optimization/78482
* gcc.dg/torture/pr78482.c (c, d): Use signed char instead of char.
(bar): New function.
(main): Call bar instead of printf.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/torture/pr78482.c

[Bug fortran/78500] ICE in gfc_check_vardef_context, at fortran/expr.c:5289

2016-11-23 Thread gerhard.steinmetz.fort...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78500

--- Comment #1 from Gerhard Steinmetz  
---

Whereas :


$ cat z2.f90
type(t) function f()
   f = 1
end


$ gfortran-7-20161120 -c z2.f90
z2.f90:1:0:

 type(t) function f()

Error: The type for function 'f' at (1) is not accessible
z2.f90:2:3:

f = 1
   1
Error: Type inaccessible in variable definition context (assignment) at (1)

[Bug fortran/78500] New: ICE in gfc_check_vardef_context, at fortran/expr.c:5289

2016-11-23 Thread gerhard.steinmetz.fort...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78500

Bug ID: 78500
   Summary: ICE in gfc_check_vardef_context, at
fortran/expr.c:5289
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gerhard.steinmetz.fort...@t-online.de
  Target Milestone: ---

With invalid code down to at least 4.8 :
(configured with --enable-checking=yes)


$ cat z1.f90
class(t) function f()
   f = 1
end


$ gfortran-7-20161120 -c z1.f90
z1.f90:1:0:

 class(t) function f()

Error: CLASS variable 'f' at (1) must be dummy, allocatable or pointer
f951: internal compiler error: Segmentation fault
0xc4265f crash_signal
../../gcc/toplev.c:333
0x69642c gfc_check_vardef_context(gfc_expr*, bool, bool, bool, char const*)
../../gcc/fortran/expr.c:5289
0x6f81e6 gfc_resolve_code(gfc_code*, gfc_namespace*)
../../gcc/fortran/resolve.c:10915
0x6fab92 resolve_codes
../../gcc/fortran/resolve.c:16025
0x6fac8e gfc_resolve(gfc_namespace*)
../../gcc/fortran/resolve.c:16060
0x6e520a resolve_all_program_units
../../gcc/fortran/parse.c:5977
0x6e520a gfc_parse_file()
../../gcc/fortran/parse.c:6224
0x729052 gfc_be_parse_file
../../gcc/fortran/f95-lang.c:202

[Bug fortran/78499] ICE in gfc_typename, at fortran/misc.c:158

2016-11-23 Thread gerhard.steinmetz.fort...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78499

--- Comment #1 from Gerhard Steinmetz  
---

Whereas :


$ cat z2.f90
program p
   type t
   end type
   type(t) :: x = 0
end


$ gfortran-7-20161120 z2.f90
z2.f90:4:17:

type(t) :: x = 0
 1
Error: Can't convert INTEGER(4) to TYPE(t) at (1)

[Bug fortran/78499] New: ICE in gfc_typename, at fortran/misc.c:158

2016-11-23 Thread gerhard.steinmetz.fort...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78499

Bug ID: 78499
   Summary: ICE in gfc_typename, at fortran/misc.c:158
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gerhard.steinmetz.fort...@t-online.de
  Target Milestone: ---

With invalid code down to at least 4.8 :
(configured with --enable-checking=yes)


$ cat z1.f90
program p
   type t
   end type
   class(t) :: x = 0
end


$ gfortran-7-20161120 z1.f90
z1.f90:4:16:

class(t) :: x = 0
1
Error: CLASS variable 'x' at (1) must be dummy, allocatable or pointer
f951: internal compiler error: Segmentation fault
0xc4265f crash_signal
../../gcc/toplev.c:333
0x6c239b gfc_typename(gfc_typespec*)
../../gcc/fortran/misc.c:158
0x6aa429 gfc_convert_type_warn(gfc_expr*, gfc_typespec*, int, int)
../../gcc/fortran/intrinsic.c:5020
0x695b49 gfc_check_assign_symbol(gfc_symbol*, gfc_component*, gfc_expr*)
../../gcc/fortran/expr.c:3878
0x71612b do_traverse_symtree
../../gcc/fortran/symbol.c:3994
0x6ff279 resolve_types
../../gcc/fortran/resolve.c:15963
0x6fac7c gfc_resolve(gfc_namespace*)
../../gcc/fortran/resolve.c:16058
0x6e520a resolve_all_program_units
../../gcc/fortran/parse.c:5977
0x6e520a gfc_parse_file()
../../gcc/fortran/parse.c:6224
0x729052 gfc_be_parse_file
../../gcc/fortran/f95-lang.c:202

[Bug middle-end/69183] ICE when using OpenMP PRIVATE keyword in OMP DO loop not explicitly encapsulated in OMP PARALLEL region

2016-11-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69183

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Wed Nov 23 19:28:41 2016
New Revision: 242793

URL: https://gcc.gnu.org/viewcvs?rev=242793=gcc=rev
Log:
PR middle-end/69183
* omp-low.c (build_outer_var_ref): Change lastprivate argument
to code, pass it recursively, adjust uses.  For OMP_CLAUSE_PRIVATE
on worksharing constructs, treat it like clauses on simd construct.
Formatting fix.
(lower_rec_input_clauses): For OMP_CLAUSE_PRIVATE_OUTER_REF pass
OMP_CLAUSE_PRIVATE as last argument to build_outer_var_ref.
(lower_lastprivate_clauses): Pass OMP_CLAUSE_LASTPRIVATE instead
of true as last argument to build_outer_var_ref.

* gfortran.dg/gomp/pr69183.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/gomp/pr69183.f90
Modified:
trunk/gcc/ChangeLog
trunk/gcc/omp-low.c
trunk/gcc/testsuite/ChangeLog

[Bug target/78230] Compile pr66178.c fail for mips64el-elf with N64 abi

2016-11-23 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78230

Jeffrey A. Law  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||law at redhat dot com
 Resolution|--- |FIXED

--- Comment #4 from Jeffrey A. Law  ---
Fixed on the trunk.

[Bug target/78230] Compile pr66178.c fail for mips64el-elf with N64 abi

2016-11-23 Thread law at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78230

--- Comment #3 from Jeffrey A. Law  ---
Author: law
Date: Wed Nov 23 19:20:33 2016
New Revision: 242792

URL: https://gcc.gnu.org/viewcvs?rev=242792=gcc=rev
Log:
PR target/78230
* gcc.dg/torture/pr66178.c (test): Use uintptr_t instead of int.
(test2) Ditto.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/torture/pr66178.c

[Bug preprocessor/78498] New: valgrind conditional jump or move depends on uninitialised value(s) in format_type_warning

2016-11-23 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78498

Bug ID: 78498
   Summary: valgrind conditional jump or move depends on
uninitialised value(s) in format_type_warning
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: preprocessor
  Assignee: unassigned at gcc dot gnu.org
  Reporter: msebor at gcc dot gnu.org
  Target Milestone: ---

While debugging some memory problems in my own work I came across a Valgrind
error that looks like it might be related to or a vestige of bug 78324.

$ cat a.c && gcc -O2 -S -Wall -Wextra a.c -wrapper valgrind
void f (void)
{
  __builtin_printf ("%i", "");
}

==28974== Memcheck, a memory error detector
==28974== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==28974== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==28974== Command: /build/gcc-svn/gcc/cc1 -quiet -iprefix
/home/msebor/build/gcc-svn/gcc/../lib/gcc/x86_64-pc-linux-gnu/7.0.0/ -isystem
/build/gcc-svn/gcc/include -isystem /build/gcc-svn/gcc/include-fixed a.c -quiet
-dumpbase a.c -mtune=generic -march=x86-64 -auxbase a -O2 -Wall -Wextra -o a.s
==28974== 
==28974== Conditional jump or move depends on uninitialised value(s)
==28974==at 0x4C2CC18: strlen (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==28974==by 0x1A6F646: xstrndup (xstrndup.c:51)
==28974==by 0x88D4F5: get_corrected_substring(substring_loc const&,
format_wanted_type*, tree_node*, format_kind_info const*, int, char)
(c-format.c:3350)
==28974==by 0x88D886: format_type_warning(substring_loc const&,
source_range*, format_wanted_type*, tree_node*, tree_node*, format_kind_info
const*, int, char) (c-format.c:3461)
==28974==by 0x88CCEE: check_format_types(substring_loc const&,
format_wanted_type*, format_kind_info const*, int, char) (c-format.c:3075)
==28974==by 0x88BE99: 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)
(c-format.c:2675)
==28974==by 0x88C30F: check_format_info_main(format_check_results*,
function_format_info*, char const*, unsigned int, tree_node*, int, tree_node*,
unsigned long, object_allocator&) (c-format.c:2820)
==28974==by 0x889674: check_format_arg(void*, tree_node*, unsigned long)
(c-format.c:1672)
==28974==by 0x87616C: check_function_arguments_recurse(void (*)(void*,
tree_node*, unsigned long), void*, tree_node*, unsigned long) (c-common.c:5689)
==28974==by 0x875EB5: check_function_arguments_recurse(void (*)(void*,
tree_node*, unsigned long), void*, tree_node*, unsigned long) (c-common.c:5622)
==28974==by 0x888671: check_format_info(function_format_info*, tree_node*)
(c-format.c:1405)
==28974==by 0x88795E: check_function_format(tree_node*, int, tree_node**)
(c-format.c:1066)
==28974== 
a.c: In function ‘f’:
a.c:3:23: warning: format ‘%i’ expects argument of type ‘int’, but argument 2
has type ‘char *’ [-Wformat=]
   __builtin_printf ("%i", "");
  ~^   ~~
  %s
==28974== 
==28974== HEAP SUMMARY:
==28974== in use at exit: 2,437,618 bytes in 2,544 blocks
==28974==   total heap usage: 12,675 allocs, 10,131 frees, 5,117,261 bytes
allocated
==28974== 
==28974== LEAK SUMMARY:
==28974==definitely lost: 0 bytes in 0 blocks
==28974==indirectly lost: 0 bytes in 0 blocks
==28974==  possibly lost: 0 bytes in 0 blocks
==28974==still reachable: 2,437,618 bytes in 2,544 blocks
==28974== suppressed: 0 bytes in 0 blocks
==28974== Rerun with --leak-check=full to see details of leaked memory
==28974== 
==28974== For counts of detected and suppressed errors, rerun with: -v
==28974== Use --track-origins=yes to see where uninitialised values come from
==28974== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

[Bug tree-optimization/78482] [5/6/7 Regression] wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu

2016-11-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78482

--- Comment #9 from Jakub Jelinek  ---
Created attachment 40135
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40135=edit
gcc7-pr78482-test.patch

Does this patch fix that?

In addition to changing char to signed char, I've changed the testcase so that
it actually FAILs with unfixed compiler and PASSes with fixed one, previously
with unfixed compiler it would just print 2 on stdout where nothing would
notice that.

[Bug tree-optimization/78482] [5/6/7 Regression] wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu

2016-11-23 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78482

--- Comment #8 from Andrew Pinski  ---
(In reply to David Edelsohn from comment #7)
> Yep, timing out on AIX also.  Is this assuming signed char?

Looks like it from the code.
char c, d;

for (; c >= 0; c--)


Simple fix is to just change char to be signed char.

[Bug tree-optimization/78482] [5/6/7 Regression] wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu

2016-11-23 Thread dje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78482

David Edelsohn  changed:

   What|Removed |Added

 CC||dje at gcc dot gnu.org

--- Comment #7 from David Edelsohn  ---
Yep, timing out on AIX also.  Is this assuming signed char?

[Bug tree-optimization/78482] [5/6/7 Regression] wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu

2016-11-23 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78482

Segher Boessenkool  changed:

   What|Removed |Added

 CC||segher at gcc dot gnu.org

--- Comment #6 from Segher Boessenkool  ---
The new testcase fails (it times out) on powerpc64-linux and powerpc-linux.

[Bug c++/77907] [6 Regression] Add "const" to argument of constexpr constructor causes the object to be left in unconstructed state

2016-11-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77907

Jakub Jelinek  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org
Summary|[6/7 Regression] Add|[6 Regression] Add "const"
   |"const" to argument of  |to argument of constexpr
   |constexpr constructor   |constructor causes the
   |causes the object to be |object to be left in
   |left in unconstructed state |unconstructed state

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

[Bug c++/77907] [6/7 Regression] Add "const" to argument of constexpr constructor causes the object to be left in unconstructed state

2016-11-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77907

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Wed Nov 23 18:45:27 2016
New Revision: 242790

URL: https://gcc.gnu.org/viewcvs?rev=242790=gcc=rev
Log:
PR c++/77907
* cp-gimplify.c (cp_fold) : When calling constructor
and maybe_constant_value returns non-CALL_EXPR, create INIT_EXPR
with the object on lhs and maybe_constant_value returned expr on rhs.

* g++.dg/cpp0x/pr77907.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/pr77907.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-gimplify.c
trunk/gcc/testsuite/ChangeLog

[Bug inline-asm/78487] asm cpuid code and -fgcse crashes

2016-11-23 Thread s-beyer at gmx dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78487

Stephan Beyer  changed:

   What|Removed |Added

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

--- Comment #6 from Stephan Beyer  ---
Ok, the problem is solved using __get_cpuid(). Sorry for bothering you and
thank you for the quick help.

[Bug regression/78497] compiling with -save-temps adds -Wimplicit-fallthrough warnings

2016-11-23 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78497

--- Comment #1 from Andrew Pinski  ---
I don't think there is much to be done here.  I doubt we care so much about
people using -save-temps and getting more warnings.

[Bug tree-optimization/77673] [5/6/7 Regression] 4-byte load generated instead of 1-byte load, possibly reading past the end of object

2016-11-23 Thread thopre01 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77673

--- Comment #7 from Thomas Preud'homme  ---
(In reply to Thomas Preud'homme from comment #6)
> (In reply to Thomas Preud'homme from comment #5)
> > Got a patch, testing it now.
> 
> Bootstrapped and testsuite came back clean. Trying to turn the code in
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77673#c0 into a testcase.
> Expect a patch soon.
> 
> Best regards.

Patch is open for review at
https://gcc.gnu.org/ml/gcc-patches/2016-11/msg02337.html

[Bug libgcc/57058] Bootstrap problems on AIX (libgcc configure, 64-bit)

2016-11-23 Thread dje at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57058

David Edelsohn  changed:

   What|Removed |Added

 CC||dje at gcc dot gnu.org

--- Comment #1 from David Edelsohn  ---
If you encounter assembler errors with .llong, something else is wrong.

Building GCC as a 64 bit application on AIX is not well tested.

[Bug regression/78497] New: compiling with -save-temps adds -Wimplicit-fallthrough warnings

2016-11-23 Thread aoliva at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78497

Bug ID: 78497
   Summary: compiling with -save-temps adds -Wimplicit-fallthrough
warnings
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: regression
  Assignee: unassigned at gcc dot gnu.org
  Reporter: aoliva at gcc dot gnu.org
  Target Milestone: ---

Since -save-temps performs separate preprocessing and drops comments, and
-Wimplicit-fallthrough machinery recognizes some of the fallthrough comments to
silence warnings, we get additional warnings (or errors, with -Werror) when
compiling with -save-temps vs without it.

It occurred to me that the preprocessor must be looking out for such comments
in order for -Wimplicit-fallthrough to work, and in case of separate
preprocessing, it would be desirable to retain information about the internal
state implied by the removed comments in a #line directive, so that even with
separate preprocessing we'd still have the same state to work with during
compilation.

This may require introducing artificial line breaks and blanks in the
preprocessed output, so as to introduce the state at the right point in the (to
be reconstructed) token stream.

[Bug middle-end/78153] strlen return value can be assumed to be less than PTRDIFF_MAX

2016-11-23 Thread prathamesh3492 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78153

--- Comment #1 from prathamesh3492 at gcc dot gnu.org ---
Author: prathamesh3492
Date: Wed Nov 23 18:04:14 2016
New Revision: 242786

URL: https://gcc.gnu.org/viewcvs?rev=242786=gcc=rev
Log:
2016-11-23  Prathamesh Kulkarni  

PR middle-end/78153
* gimple-fold.c (fold_stmt_1): Handle case for GIMPLE_RETURN.
* tree-vrp.c (extract_range_basic): Handle case for
CFN_BUILT_IN_STRLEN.

testsuite/
* gcc.dg/tree-ssa/pr78153-1.c: New test.
* gcc.dg/tree-ssa/pr78153-2.c: Likewise.

Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/pr78153-1.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/pr78153-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimple-fold.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vrp.c

[Bug target/78362] [7 Regression] ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1804 during libgomp build

2016-11-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78362

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek  ---
Any progress on this?
  if (!aarch64_plus_immediate (operands[2], mode)
  && can_create_pseudo_p ()
  && !REGNO_PTR_FRAME_P (REGNO (operands[1])))
is indeed wrong, because register_operand allows not just REG, but also SUBREG
of either REG, or MEM (last case only before reload).
I bet for SUBREG with SUBREG_REG being a REG you want to use REGNO_PTR_FRAME_P
similarly on the SUBREG_REG, for SUBREG of MEM I think the final regno is
unlikely going to be REGNO_PTR_FRAME_P.
So:
  rtx op1 = operands[1];
  if (GET_CODE (op1) == SUBREG)
op1 = SUBREG_REG (op1);
  if (!aarch64_plus_immediate (operands[2], mode)
  && can_create_pseudo_p ()
  && (!REG_P (op1)
  || !REGNO_PTR_FRAME_P (REGNO (op1)))
?

[Bug target/63250] Complex fp16 arithmetic uses nonexistent libgcc functions

2016-11-23 Thread jgreenhalgh at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63250

--- Comment #5 from James Greenhalgh  ---
Author: jgreenhalgh
Date: Wed Nov 23 17:36:21 2016
New Revision: 242784

URL: https://gcc.gnu.org/viewcvs?rev=242784=gcc=rev
Log:
[Patch ARM 17/17] Enable _Float16 for ARM and fix PR target/63250

gcc/

PR target/63250
* config/arm/arm-builtins.c (arm_simd_floatHF_type_node): Rename to...
(arm_fp16_type_node): ...This, make visibile.
(arm_simd_builtin_std_type): Rename arm_simd_floatHF_type_node to
arm_fp16_type_node.
(arm_init_simd_builtin_types): Likewise.
(arm_init_fp16_builtins): Likewise.
* config/arm/arm.c (arm_excess_precision): New.
(arm_floatn_mode): Likewise.
(TARGET_C_EXCESS_PRECISION): Likewise.
(TARGET_FLOATN_MODE): Likewise.
(arm_promoted_type): Only promote arm_fp16_type_node.
* config/arm/arm.h (arm_fp16_type_node): Declare.

gcc/testsuite/

PR target/63250
* lib/target-supports.exp (add_options_for_float16): Add
-mfp16-format=ieee when testign arm*-*-*.



Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/arm/arm-builtins.c
trunk/gcc/config/arm/arm.c
trunk/gcc/config/arm/arm.h
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/lib/target-supports.exp

[Bug sanitizer/69278] Confusion option handling for -sanitize-recovery=alll

2016-11-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69278

--- Comment #10 from Jakub Jelinek  ---
Created attachment 40134
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40134=edit
gcc7-pr69278.patch

Untested fix for that.

[Bug sanitizer/69278] Confusion option handling for -sanitize-recovery=alll

2016-11-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69278

--- Comment #9 from Jakub Jelinek  ---
You've already changed that behavior in r240491 (but also broke
-fsanitize=undefined at the same time, will fix momentarily).

[Bug target/78458] [7 Regression] LRA ICE building libgcc for powerpc-linux-gnuspe e500v2

2016-11-23 Thread joseph at codesourcery dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78458

--- Comment #12 from joseph at codesourcery dot com  ---
Applying also the third patch

Index: gcc/config/rs6000/rs6000.c
===
--- gcc/config/rs6000/rs6000.c  (revision 242751)
+++ gcc/config/rs6000/rs6000.c  (working copy)
@@ -8443,14 +8443,13 @@ rs6000_legitimate_offset_address_p (machine_mode m
 case TFmode:
 case IFmode:
 case KFmode:
+case TDmode:
+case TImode:
+case PTImode:
   if (TARGET_E500_DOUBLE)
return (SPE_CONST_OFFSET_OK (offset)
&& SPE_CONST_OFFSET_OK (offset + 8));
-  /* fall through */

-case TDmode:
-case TImode:
-case PTImode:
   extra = 8;
   if (!worst_case)
break;

results in glibc compiling successfully and the compilation parts of the 
testsuite running OK; not yet done any execution testing with these 
patches.  The bad offset came from an insn:

(insn 115 1209 1210 (set (reg:DF 27 27 [orig:294 _129 ] [294])
(subreg:DF (mem/c:TI (plus:SI (reg/f:SI 1 1)
(const_int 256 [0x100])) [14 %sfp+256 S16 A128]) 0)) 1909
{*frob_df_ti}
 (nil))

[Bug c/78380] GCC crash with internal compiler error: in gen_reg_rtx, at emit-rtl.c:1025

2016-11-23 Thread elmar at yasara dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78380

--- Comment #2 from Elmar  ---

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71009 might also be related

I checked, but the workaround in bug 71009 to use -fmath-errno doesn't work for
me.

[Bug sanitizer/69278] Confusion option handling for -sanitize-recovery=alll

2016-11-23 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69278

--- Comment #8 from Martin Liška  ---
(In reply to Martin Liška from comment #7)
> Well, the actual difference is that they enabled by default
> -fsanitize-recover=address:
> 
> ~/bin/llvm/bin/clang -fsanitize=address /tmp/leak.c ; grep store leak.s
>   callq   __asan_report_store4_noabort

Wrong comment (it's not enabled by default):

~/bin/llvm/bin/clang -fsanitize=address /tmp/leak.c -S ; grep store leak.s
callq   __asan_report_store4

[Bug sanitizer/69278] Confusion option handling for -sanitize-recovery=alll

2016-11-23 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69278

--- Comment #7 from Martin Liška  ---
Well, the actual difference is that they enabled by default
-fsanitize-recover=address:

~/bin/llvm/bin/clang -fsanitize=address /tmp/leak.c ; grep store leak.s
callq   __asan_report_store4_noabort

[Bug fortran/66227] [5/6/7 Regression] [OOP] EXTENDS_TYPE_OF n returns wrong result for polymorphic variable allocated to extended type

2016-11-23 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66227

janus at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #11 from janus at gcc dot gnu.org ---
(In reply to janus from comment #8)
> I'll backport the fix to the release branches soon if no problems appear on
> trunk.

Both backports have been applied by now. Thus, the problem is fixed for the
upcoming releases 5.5, 6.3 and 7.0.

Closing. Thanks for the report!

[Bug fortran/66227] [5/6/7 Regression] [OOP] EXTENDS_TYPE_OF n returns wrong result for polymorphic variable allocated to extended type

2016-11-23 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66227

--- Comment #10 from janus at gcc dot gnu.org ---
Author: janus
Date: Wed Nov 23 16:46:31 2016
New Revision: 242770

URL: https://gcc.gnu.org/viewcvs?rev=242770=gcc=rev
Log:
2016-11-23  Janus Weil  

Backport from trunk
PR fortran/66227
* simplify.c (gfc_simplify_extends_type_of): Fix missed optimization.
Prevent over-simplification. Fix a comment. Add a comment.

2016-11-23  Janus Weil  

Backport from trunk
PR fortran/66227
* gfortran.dg/extends_type_of_3.f90: Fix and extend the test case.

Modified:
branches/gcc-5-branch/gcc/fortran/ChangeLog
branches/gcc-5-branch/gcc/fortran/simplify.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog
branches/gcc-5-branch/gcc/testsuite/gfortran.dg/extends_type_of_3.f90

[Bug middle-end/78461] [7 Regression] ICE: in operator+=, at gimple-ssa-sprintf.c:214

2016-11-23 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78461

Martin Sebor  changed:

   What|Removed |Added

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

--- Comment #6 from Martin Sebor  ---
Fixed in r242769.

[Bug middle-end/78461] [7 Regression] ICE: in operator+=, at gimple-ssa-sprintf.c:214

2016-11-23 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78461

--- Comment #5 from Martin Sebor  ---
Author: msebor
Date: Wed Nov 23 16:44:16 2016
New Revision: 242769

URL: https://gcc.gnu.org/viewcvs?rev=242769=gcc=rev
Log:
PR middle-end/78461 - [7 Regression] ICE: in operator+=

gcc/testsuite/ChangeLog:

PR middle-end/78461
* gcc.dg/tree-ssa/builtin-sprintf-4.c: New test.
* gcc.dg/tree-ssa/builtin-sprintf-warn-2.c: Adjust warning text.

gcc/ChangeLog:

PR middle-end/78461
* gimple-ssa-sprintf.c (format_string): Correct the maxima and
set the minimum number of bytes for an unknown string to zero.


Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-4.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimple-ssa-sprintf.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-2.c

[Bug c++/77739] [5/6 Regression] internal compiler error: in create_tmp_var, at gimple-expr.c:524

2016-11-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77739

Jakub Jelinek  changed:

   What|Removed |Added

  Known to work||7.0
Summary|[5/6/7 Regression] internal |[5/6 Regression] internal
   |compiler error: in  |compiler error: in
   |create_tmp_var, at  |create_tmp_var, at
   |gimple-expr.c:524   |gimple-expr.c:524
  Known to fail|7.0 |

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

[Bug c++/71450] [5/6 Regression] ICE on invalid C++11 code on x86_64-linux-gnu: in tree check: expected record_type or union_type or qual_union_type, have template_type_parm in lookup_base, at cp/sear

2016-11-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71450

Jakub Jelinek  changed:

   What|Removed |Added

Summary|[5/6/7 Regression] ICE on   |[5/6 Regression] ICE on
   |invalid C++11 code on   |invalid C++11 code on
   |x86_64-linux-gnu: in tree   |x86_64-linux-gnu: in tree
   |check: expected record_type |check: expected record_type
   |or union_type or|or union_type or
   |qual_union_type, have   |qual_union_type, have
   |template_type_parm in   |template_type_parm in
   |lookup_base, at |lookup_base, at
   |cp/search.c:203 |cp/search.c:203

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

[Bug fortran/66227] [5/6/7 Regression] [OOP] EXTENDS_TYPE_OF n returns wrong result for polymorphic variable allocated to extended type

2016-11-23 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66227

--- Comment #9 from janus at gcc dot gnu.org ---
Author: janus
Date: Wed Nov 23 16:26:38 2016
New Revision: 242768

URL: https://gcc.gnu.org/viewcvs?rev=242768=gcc=rev
Log:
2016-11-23  Janus Weil  

Backport from trunk
PR fortran/66227
* simplify.c (gfc_simplify_extends_type_of): Fix missed optimization.
Prevent over-simplification. Fix a comment. Add a comment.

2016-11-23  Janus Weil  

Backport from trunk
PR fortran/66227
* gfortran.dg/extends_type_of_3.f90: Fix and extend the test case.

Modified:
branches/gcc-6-branch/gcc/fortran/ChangeLog
branches/gcc-6-branch/gcc/fortran/simplify.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog
branches/gcc-6-branch/gcc/testsuite/gfortran.dg/extends_type_of_3.f90

[Bug sanitizer/69278] Confusion option handling for -sanitize-recovery=alll

2016-11-23 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69278

--- Comment #6 from Martin Liška  ---
Behavior was changed in between clang 3.7.1 and 3.8.1:
https://godbolt.org/g/poL2cY.

[Bug ipa/78494] Issues pointed out by valgrind --tool=exp-dhat

2016-11-23 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78494

--- Comment #4 from Markus Trippelsdorf  ---
Created attachment 40133
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40133=edit
full output for top 100 allocation points

[Bug bootstrap/78390] [7 Regression] Bootstrap failure: match.pd: cannot determine type of operand

2016-11-23 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78390

Michael Matz  changed:

   What|Removed |Added

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

--- Comment #29 from Michael Matz  ---
So, this is fixed now.

[Bug c++/71450] [5/6/7 Regression] ICE on invalid C++11 code on x86_64-linux-gnu: in tree check: expected record_type or union_type or qual_union_type, have template_type_parm in lookup_base, at cp/se

2016-11-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71450

--- Comment #4 from Jakub Jelinek  ---
Author: jakub
Date: Wed Nov 23 15:59:25 2016
New Revision: 242767

URL: https://gcc.gnu.org/viewcvs?rev=242767=gcc=rev
Log:
PR c++/71450
* pt.c (tsubst_copy): Return error_mark_node when mark_used
fails, even when complain & tf_error.

* g++.dg/cpp0x/pr71450-1.C: New test.
* g++.dg/cpp0x/pr71450-2.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/pr71450-1.C
trunk/gcc/testsuite/g++.dg/cpp0x/pr71450-2.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog

[Bug c/78380] GCC crash with internal compiler error: in gen_reg_rtx, at emit-rtl.c:1025

2016-11-23 Thread egall at gwmail dot gwu.edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78380

Eric Gallager  changed:

   What|Removed |Added

 CC||egall at gwmail dot gwu.edu

--- Comment #1 from Eric Gallager  ---
(In reply to Elmar from comment #0)
> Created attachment 40057 [details]
> Preprocessed source file
> 
> Dear GCC team,
> 
> I encountered this crash when compiling for MacOSX, either directly in
> MacOSX (precompiled GCC 6.2.0 downloaded from hpc.sourceforge.net) or when
> cross-compiling from Linux (GCC 6.2.0 compiled using
> https://github.com/tpoechtrager/osxcross scripts)
> 
> The bug database found three possibly related bugs, but in emit-rtl.c line
> 1027, not line 1025 like mine:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70420
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69401
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68538
> 

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71009 might also be related

[Bug c++/77739] [5/6/7 Regression] internal compiler error: in create_tmp_var, at gimple-expr.c:524

2016-11-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77739

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Wed Nov 23 15:54:39 2016
New Revision: 242766

URL: https://gcc.gnu.org/viewcvs?rev=242766=gcc=rev
Log:
PR c++/77739
* cp-gimplify.c (cp_gimplify_tree) : Pass
false as handle_invisiref_parm_p to cp_genericize_tree.
(struct cp_genericize_data): Add handle_invisiref_parm_p field.
(cp_genericize_r): Don't wrap is_invisiref_parm into references
if !wtd->handle_invisiref_parm_p.
(cp_genericize_tree): Add handle_invisiref_parm_p argument,
set wtd.handle_invisiref_parm_p to it.
(cp_genericize): Pass true as handle_invisiref_parm_p to
cp_genericize_tree.  Formatting fix.

* g++.dg/cpp1y/pr77739.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/cpp1y/pr77739.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-gimplify.c
trunk/gcc/testsuite/ChangeLog

[Bug rtl-optimization/77541] [7 Regression] wrong code with 512bit vectors of int128 @ -O1

2016-11-23 Thread vmakarov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77541

--- Comment #4 from Vladimir Makarov  ---
(In reply to Uroš Bizjak from comment #2)
> (In reply to Uroš Bizjak from comment #1)
> > This is RA failure, where reload tries to fix up:
> 
> To be clear, it is LRA pass, not reload.

Yes, it is a LRA bug.  I can not reproduce it with -O but I reproduced it with
-O2.

I am working on it.  I hope to have a fix at the end of week.

Re: [C++ PR 78252] illformed lamda?

2016-11-23 Thread Nathan Sidwell

On 11/22/2016 02:26 PM, Nathan Sidwell wrote:

template
void for2 (T )
{
}

void Foo ()
{
  auto lam_1 = [](int &) { };
  auto lam_2 = [](auto &) { }; // IIUC this is implicitly templatey

  for2 (lam_1);
  for2 (lam_2);  // What is the lambda's argument type?
}

We get 2 instantiations of for2:
.type_Z4for2IZ3FoovEUlRiE_EvRT_, @function
.type_Z4for2IZ3FoovEUlRT_E0_EvS1_, @function


Ok. looking further, I now think this is well formed.

lam_2's 'auto &' parameter creates an implicit templated function 
operator member function. We could have used 'Da' to refer to the auto 
parms, but we didn't.  I think that means that the demangler needs to be 
taught that 'T[n]_' occurring inside a lambda's argument encoding means 
'auto' and does not refer to any containing template instantiation name?


nathan

--
Nathan Sidwell


Re: [C++ PR 78252] illformed lamda?

2016-11-23 Thread Jason Merrill
On Wed, Nov 23, 2016 at 10:34 AM, Nathan Sidwell  wrote:
> On 11/22/2016 02:26 PM, Nathan Sidwell wrote:
>>
>> template
>> void for2 (T )
>> {
>> }
>>
>> void Foo ()
>> {
>>   auto lam_1 = [](int &) { };
>>   auto lam_2 = [](auto &) { }; // IIUC this is implicitly templatey
>>
>>   for2 (lam_1);
>>   for2 (lam_2);  // What is the lambda's argument type?
>> }
>>
>> We get 2 instantiations of for2:
>> .type_Z4for2IZ3FoovEUlRiE_EvRT_, @function
>> .type_Z4for2IZ3FoovEUlRT_E0_EvS1_, @function
>
>
> Ok. looking further, I now think this is well formed.
>
> lam_2's 'auto &' parameter creates an implicit templated function operator
> member function. We could have used 'Da' to refer to the auto parms, but we
> didn't.  I think that means that the demangler needs to be taught that
> 'T[n]_' occurring inside a lambda's argument encoding means 'auto' and does
> not refer to any containing template instantiation name?

That sounds good.  I wonder why is_auto doesn't already return true for them?

Jason


[Bug inline-asm/78487] asm cpuid code and -fgcse crashes

2016-11-23 Thread s-beyer at gmx dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78487

--- Comment #5 from Stephan Beyer  ---
It crashes on run-time.

I have absolutely no experience using extended asm syntax but I
guess g++ relies on the constraints for its optimization, so I
guess the constraints are wrong.

I will port the code to use the macro from cpuid.h and close the
issue if there are no more crashes.

Thank you.

[Bug libstdc++/78483] Error: reference to 'on_exit' is ambiguous

2016-11-23 Thread krzysztof at jusiak dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78483

--- Comment #5 from Kris  ---
Fair do's. But then, IMHO, 'on_exit' shouldn't pollute the global namespace
either. Hence, it should be prefixed with '__'?

[Bug middle-end/69183] ICE when using OpenMP PRIVATE keyword in OMP DO loop not explicitly encapsulated in OMP PARALLEL region

2016-11-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69183

--- Comment #5 from Jakub Jelinek  ---
Created attachment 40132
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40132=edit
gcc7-pr69183.patch

Untested fix.

[Bug tree-optimization/71595] [7 Regression] ICE on valid code at -O2 and -O3 on x86_64-linux-gnu: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:704

2016-11-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71595

--- Comment #6 from Richard Biener  ---
diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c
index beb65b0..4af39fa 100644
--- a/gcc/tree-ssa-loop-ivcanon.c
+++ b/gcc/tree-ssa-loop-ivcanon.c
@@ -647,7 +647,7 @@ unloop_loops (bitmap loop_closed_ssa_invalidated,
   latch_edge->flags |= flags;
   latch_edge->goto_locus = locus;

-  latch_edge->dest->loop_father = current_loops->tree_root;
+  add_bb_to_loop (latch_edge->dest, current_loops->tree_root);
   latch_edge->dest->count = 0;
   latch_edge->dest->frequency = 0;
   set_immediate_dominator (CDI_DOMINATORS, latch_edge->dest,
latch_edge->src);

fixes that verification issue (but not the loop-closed SSA issue).  It looks
like remove_path doesn't properly update loop_closed_ssa_invalidated.

[Bug libstdc++/78483] Error: reference to 'on_exit' is ambiguous

2016-11-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78483

--- Comment #4 from Jonathan Wakely  ---
Right, on_exit is not part of the C++ standard, so it's correct that it is not
in namespace std.

[Bug libstdc++/78486] feature request: std::iu16stringstream std::ou16stringstream, and utf8

2016-11-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78486

Jonathan Wakely  changed:

   What|Removed |Added

   Severity|normal  |enhancement

--- Comment #2 from Jonathan Wakely  ---
No they aren't part of the standard, but could be added as conforming
extensions. They'd need support from char_traits specializations and facets,
which is not just copy

[Bug libstdc++/78490] [c++17] libstdc++ has undefined behavior in operator= of propagate_const

2016-11-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78490

Jonathan Wakely  changed:

   What|Removed |Added

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

--- Comment #5 from Jonathan Wakely  ---
Fixed for 6.3

[Bug libstdc++/78490] [c++17] libstdc++ has undefined behavior in operator= of propagate_const

2016-11-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78490

--- Comment #4 from Jonathan Wakely  ---
Author: redi
Date: Wed Nov 23 15:22:35 2016
New Revision: 242762

URL: https://gcc.gnu.org/viewcvs?rev=242762=gcc=rev
Log:
PR78490 add missing returns to propagate_const

2016-11-23  Felix Morgner  
Jonathan Wakely  

PR libstdc++/78490
* include/experimental/propagate_const (propagate_const::operator=):
Add missing return statements.
* testsuite/experimental/propagate_const/assignment/move_neg.cc:
Adjust dg-error line numbers.
* testsuite/experimental/propagate_const/requirements2.cc: Likewise.

Modified:
branches/gcc-6-branch/libstdc++-v3/ChangeLog
branches/gcc-6-branch/libstdc++-v3/include/experimental/propagate_const
   
branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/propagate_const/assignment/move_neg.cc
   
branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/propagate_const/requirements2.cc

[Bug middle-end/69183] ICE when using OpenMP PRIVATE keyword in OMP DO loop not explicitly encapsulated in OMP PARALLEL region

2016-11-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69183

Jakub Jelinek  changed:

   What|Removed |Added

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

[Bug tree-optimization/71595] [7 Regression] ICE on valid code at -O2 and -O3 on x86_64-linux-gnu: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:704

2016-11-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71595

--- Comment #4 from Richard Biener  ---
The real reason is probably that after

  if (changed)
{
  unsigned i;

  unloop_loops (loop_closed_ssa_invalidated, _invalidated);

the loop tree is hosed.  The following into-loop-closed-SSA rewrite cannot
be possibly successful then.

[Bug tree-optimization/71595] [7 Regression] ICE on valid code at -O2 and -O3 on x86_64-linux-gnu: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:704

2016-11-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71595

Richard Biener  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
  Known to work||6.2.1
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org

--- Comment #5 from Richard Biener  ---
Debug patch:

diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c
index beb65b0..6948e62 100644
--- a/gcc/tree-ssa-loop-ivcanon.c
+++ b/gcc/tree-ssa-loop-ivcanon.c
@@ -1379,6 +1379,8 @@ tree_unroll_loops_completely (bool may_increase_size,
bool unroll_outer)

   unloop_loops (loop_closed_ssa_invalidated, _invalidated);

+ verify_loop_structure ();
+
  /* We can not use TODO_update_ssa_no_phi because VOPS gets confused. 
*/
  if (loop_closed_ssa_invalidated
  && !bitmap_empty_p (loop_closed_ssa_invalidated))


mine.

[Bug target/71399] [5/6/7 Regression] 5.3.0 bootstrap comparison failure on arm-linux-gnueabihf

2016-11-23 Thread ludo at gnu dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71399

--- Comment #15 from Ludovic Courtès  ---
Hi Jakub,

Thanks for the suggestions.  Unfortunately I cannot offer to rebuild everything
with dumps right now; I'll see if I can do something later, no promise.

Hopefully, with the details and faulty commit I gave earlier, people can more
easily reproduce and pinpoint the problem.

[Bug tree-optimization/78496] New: Missed opportunities for jump threading

2016-11-23 Thread ysrumyan at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78496

Bug ID: 78496
   Summary: Missed opportunities for jump threading
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ysrumyan at gmail dot com
  Target Milestone: ---

Created attachment 40131
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40131=edit
test-case to reproduce, compile with -O3 option.

We noticed a huge performance drop on one important benchmark which is caused
by hoisting and collecting comparisons participated in conditional branches.
Here is comments provided by Richard on it:

Note this is a general issue with PRE which tends to
see partial redundancies when it can compute an expression to a
constant on one edge.  There is nothing wrong with that but the
particular example shows the lack of a cost model with respect
to register pressure (same applies to other GIMPLE optimization passes).

In this case we have a lot of expression anticipated from the same
blocks where on one incoming edge their value is constant.  Profitability
here really depends on the "distance" of the to be inserted PHI and
its use I guess.

We're missing quite some jump-threading here as well:

  :
  # x1_197 = PHI 
  # _407 = PHI <_16(15), _16(123), 0(105)>
  # aa1_410 = PHI 
  # d1_413 = PHI 
  # w1_416 = PHI 
  # v1_377 = PHI 
  # oo1_371 = PHI 
  # ss1_376 = PHI 
  # r1_609 = PHI 
  # _612 = PHI <_596(15), _596(123), _188(105)>
  # out_ind_lsm.82_322 = PHI 
  _549 = w1_416 <= 899;
  _548 = _407 > 839;
  _541 = _548 & _549;
  if (_541 != 0)
goto ;
  else
goto ;

here 105 -> 16 -> 124 (forwarder) -> 18 which would eventually
make PRE behave somewhat saner (avoding the far distances).

The case appears with phicprop1 (or rather DOM, itself missing
a followup transform with respect to folding a degenerate constant
PHI plus the followup secondary threading opportunities).  The
backwards threader doesn't exploit the above opportunity though.
Our forward threaders (like DOM) do.  Unfortunately it requires
quite a few iterations to get all opportunities exploited...
(inserting 9 DOM/phi-only-cprop pass pairs "helps")

I suggest to open a bugreport for this.  Jeff may want to look at
the threading issue (I believe the backward threader _does_ iterate).

I attach a test-case to reproduce an issue.

[Bug c++/78495] [7 regression][new inheriting ctors] variant members lead to uninitialized parameter

2016-11-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78495

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |7.0

[Bug tree-optimization/78396] [7 regression] gcc.dg/vect/bb-slp-cond-1.c FAILs after fix for PR77848

2016-11-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78396

Richard Biener  changed:

   What|Removed |Added

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

--- Comment #8 from Richard Biener  ---
Fixed.

[Bug ipa/78494] Issues pointed out by valgrind --tool=exp-dhat

2016-11-23 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78494

--- Comment #3 from Jonathan Wakely  ---
Author: redi
Date: Wed Nov 23 14:45:29 2016
New Revision: 242760

URL: https://gcc.gnu.org/viewcvs?rev=242760=gcc=rev
Log:
PR78494 add missing returns to propagate_const

2016-11-23  Felix Morgner  
Jonathan Wakely  

PR libstdc++/78494
* include/experimental/propagate_const (propagate_const::operator=):
Add missing return statements.
* testsuite/experimental/propagate_const/assignment/move_neg.cc:
Adjust dg-error line numbers.
* testsuite/experimental/propagate_const/requirements2.cc: Likewise.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/experimental/propagate_const
   
trunk/libstdc++-v3/testsuite/experimental/propagate_const/assignment/move_neg.cc
trunk/libstdc++-v3/testsuite/experimental/propagate_const/requirements2.cc

[Bug tree-optimization/78396] [7 regression] gcc.dg/vect/bb-slp-cond-1.c FAILs after fix for PR77848

2016-11-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78396

--- Comment #7 from Richard Biener  ---
Author: rguenth
Date: Wed Nov 23 14:40:05 2016
New Revision: 242759

URL: https://gcc.gnu.org/viewcvs?rev=242759=gcc=rev
Log:
2016-11-23  Richard Biener  

PR tree-optimization/78396
* tree-vectorizer.c (vectorize_loops): If an innermost loop didn't
vectorize try vectorizing an if-converted body using BB vectorization.

* gcc.dg/vect/bb-slp-cond-1.c: Adjust.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c
trunk/gcc/tree-vectorizer.c

[Bug tree-optimization/78305] [6 Regression] Wrong constant folding

2016-11-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78305

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||6.2.1
 Resolution|--- |FIXED

--- Comment #9 from Richard Biener  ---
Fixed.

[Bug bootstrap/78477] [7 Regression] bootstrap broken on s390x-linux-gnu

2016-11-23 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78477

--- Comment #5 from Segher Boessenkool  ---
Author: segher
Date: Wed Nov 23 14:33:13 2016
New Revision: 242757

URL: https://gcc.gnu.org/viewcvs?rev=242757=gcc=rev
Log:
combine: Convert subreg-of-lshiftrt to zero_extract properly (PR78390)

r242414, for PR77881, introduces some bugs (PR78390, PR78438, PR78477).
It all has the same root cause: that patch makes combine convert every
lowpart subreg of a logical shift right to a zero_extract.  This cannot
work at all if it is not a constant shift, and it has to be a bit more
careful exactly which bits it extracts.


PR target/77881
PR bootstrap/78390
PR target/78438
PR bootstrap/78477
* combine.c (make_compound_operation_int): Do not convert a subreg of
a non-constant logical shift right to a zero_extract.  Handle the case
where some zero bits have been shifted into the range covered by that
subreg.

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

[Bug target/77881] [5/6 Regression] Non-optimal signed comparison on x86_64 since r146817

2016-11-23 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77881

--- Comment #8 from Segher Boessenkool  ---
Author: segher
Date: Wed Nov 23 14:33:13 2016
New Revision: 242757

URL: https://gcc.gnu.org/viewcvs?rev=242757=gcc=rev
Log:
combine: Convert subreg-of-lshiftrt to zero_extract properly (PR78390)

r242414, for PR77881, introduces some bugs (PR78390, PR78438, PR78477).
It all has the same root cause: that patch makes combine convert every
lowpart subreg of a logical shift right to a zero_extract.  This cannot
work at all if it is not a constant shift, and it has to be a bit more
careful exactly which bits it extracts.


PR target/77881
PR bootstrap/78390
PR target/78438
PR bootstrap/78477
* combine.c (make_compound_operation_int): Do not convert a subreg of
a non-constant logical shift right to a zero_extract.  Handle the case
where some zero bits have been shifted into the range covered by that
subreg.

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

[Bug bootstrap/78390] [7 Regression] Bootstrap failure: match.pd: cannot determine type of operand

2016-11-23 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78390

--- Comment #28 from Segher Boessenkool  ---
Author: segher
Date: Wed Nov 23 14:33:13 2016
New Revision: 242757

URL: https://gcc.gnu.org/viewcvs?rev=242757=gcc=rev
Log:
combine: Convert subreg-of-lshiftrt to zero_extract properly (PR78390)

r242414, for PR77881, introduces some bugs (PR78390, PR78438, PR78477).
It all has the same root cause: that patch makes combine convert every
lowpart subreg of a logical shift right to a zero_extract.  This cannot
work at all if it is not a constant shift, and it has to be a bit more
careful exactly which bits it extracts.


PR target/77881
PR bootstrap/78390
PR target/78438
PR bootstrap/78477
* combine.c (make_compound_operation_int): Do not convert a subreg of
a non-constant logical shift right to a zero_extract.  Handle the case
where some zero bits have been shifted into the range covered by that
subreg.

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

[Bug middle-end/78228] [6 Regression] fstrict-overflow breaks code without overflow?

2016-11-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78228

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||6.2.1
 Resolution|--- |FIXED

--- Comment #6 from Richard Biener  ---
Fixed.

[Bug target/78438] [7 Regression] incorrect comparison optimization

2016-11-23 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78438

--- Comment #7 from Segher Boessenkool  ---
Author: segher
Date: Wed Nov 23 14:33:13 2016
New Revision: 242757

URL: https://gcc.gnu.org/viewcvs?rev=242757=gcc=rev
Log:
combine: Convert subreg-of-lshiftrt to zero_extract properly (PR78390)

r242414, for PR77881, introduces some bugs (PR78390, PR78438, PR78477).
It all has the same root cause: that patch makes combine convert every
lowpart subreg of a logical shift right to a zero_extract.  This cannot
work at all if it is not a constant shift, and it has to be a bit more
careful exactly which bits it extracts.


PR target/77881
PR bootstrap/78390
PR target/78438
PR bootstrap/78477
* combine.c (make_compound_operation_int): Do not convert a subreg of
a non-constant logical shift right to a zero_extract.  Handle the case
where some zero bits have been shifted into the range covered by that
subreg.

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

[Bug tree-optimization/77855] [5/6 Regression] wrong code at -O3 on x86_64-linux-gnu (in both 32-bit and 64-bit modes)

2016-11-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77855

--- Comment #6 from Richard Biener  ---
Author: rguenth
Date: Wed Nov 23 14:31:16 2016
New Revision: 242756

URL: https://gcc.gnu.org/viewcvs?rev=242756=gcc=rev
Log:
2016-11-23  Richard Biener  

Backport from mainline
2016-11-23  Richard Biener  

PR lto/78472
* tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized
fields.

lto/
* lto.c (hash_canonical_type): Ignore zero-sized fields.

* g++.dg/lto/pr78472_0.c: New testcase.
* g++.dg/lto/pr78472_1.C: Likewise.

2016-11-17  Richard Biener  

PR middle-end/78305
* fold-const.c (negate_expr_p): Fix multiplication case.

* gcc.dg/torture/pr78305.c: New testcase.

2016-11-16  Richard Biener  

PR middle-end/78333
* gimplify.c (gimplify_function_tree): Do not instrument
GNU extern inline functions.

* gcc.dg/pr78333.c: New testcase.

2016-11-07  Richard Biener  

PR tree-optimization/78228
* tree-ssa-phiopt.c (abs_replacement): Avoid introducing
undefined behavior.

* gcc.dg/tree-ssa/phi-opt-15.c: New testcase.

2016-11-04  Richard Biener  

PR middle-end/78185
* loop-invariant.c (find_exits): Record entering inner
loops as possibly exiting to handle infinite sub-loops.
* tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h.
(fill_always_executed_in_1): Honor infinite child loops.

* gcc.dg/pr78185.c: New testcase.

2016-10-06  Richard Biener  

PR tree-optimization/77855
* tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
instead of removing the current item while iterating over the set
which is not safe.

* gcc.dg/torture/pr77855.c: New testcase.

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_0.c
branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_1.C
branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78185.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78333.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr77855.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr78305.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-15.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/fold-const.c
branches/gcc-6-branch/gcc/gimplify.c
branches/gcc-6-branch/gcc/loop-invariant.c
branches/gcc-6-branch/gcc/lto/ChangeLog
branches/gcc-6-branch/gcc/lto/lto.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog
branches/gcc-6-branch/gcc/tree-ssa-loop-im.c
branches/gcc-6-branch/gcc/tree-ssa-phiopt.c
branches/gcc-6-branch/gcc/tree-ssa-pre.c
branches/gcc-6-branch/gcc/tree.c

[Bug tree-optimization/78482] [5/6/7 Regression] wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu

2016-11-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78482

Richard Biener  changed:

   What|Removed |Added

   Priority|P1  |P2
  Known to work||7.0
   Target Milestone|7.0 |5.5
Summary|[7 Regression] wrong code   |[5/6/7 Regression] wrong
   |at -O3 in both 32-bit and   |code at -O3 in both 32-bit
   |64-bit modes on |and 64-bit modes on
   |x86_64-linux-gnu|x86_64-linux-gnu

--- Comment #5 from Richard Biener  ---
Fixed on trunk, queued for backporting.

[Bug lto/78472] warning: type of 's' does not match original declaration from zero length bitfield in C vs C++

2016-11-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78472

Richard Biener  changed:

   What|Removed |Added

  Known to work||6.2.1
  Known to fail||5.4.0, 6.2.0

--- Comment #5 from Richard Biener  ---
Author: rguenth
Date: Wed Nov 23 14:31:16 2016
New Revision: 242756

URL: https://gcc.gnu.org/viewcvs?rev=242756=gcc=rev
Log:
2016-11-23  Richard Biener  

Backport from mainline
2016-11-23  Richard Biener  

PR lto/78472
* tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized
fields.

lto/
* lto.c (hash_canonical_type): Ignore zero-sized fields.

* g++.dg/lto/pr78472_0.c: New testcase.
* g++.dg/lto/pr78472_1.C: Likewise.

2016-11-17  Richard Biener  

PR middle-end/78305
* fold-const.c (negate_expr_p): Fix multiplication case.

* gcc.dg/torture/pr78305.c: New testcase.

2016-11-16  Richard Biener  

PR middle-end/78333
* gimplify.c (gimplify_function_tree): Do not instrument
GNU extern inline functions.

* gcc.dg/pr78333.c: New testcase.

2016-11-07  Richard Biener  

PR tree-optimization/78228
* tree-ssa-phiopt.c (abs_replacement): Avoid introducing
undefined behavior.

* gcc.dg/tree-ssa/phi-opt-15.c: New testcase.

2016-11-04  Richard Biener  

PR middle-end/78185
* loop-invariant.c (find_exits): Record entering inner
loops as possibly exiting to handle infinite sub-loops.
* tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h.
(fill_always_executed_in_1): Honor infinite child loops.

* gcc.dg/pr78185.c: New testcase.

2016-10-06  Richard Biener  

PR tree-optimization/77855
* tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
instead of removing the current item while iterating over the set
which is not safe.

* gcc.dg/torture/pr77855.c: New testcase.

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_0.c
branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_1.C
branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78185.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78333.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr77855.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr78305.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-15.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/fold-const.c
branches/gcc-6-branch/gcc/gimplify.c
branches/gcc-6-branch/gcc/loop-invariant.c
branches/gcc-6-branch/gcc/lto/ChangeLog
branches/gcc-6-branch/gcc/lto/lto.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog
branches/gcc-6-branch/gcc/tree-ssa-loop-im.c
branches/gcc-6-branch/gcc/tree-ssa-phiopt.c
branches/gcc-6-branch/gcc/tree-ssa-pre.c
branches/gcc-6-branch/gcc/tree.c

[Bug middle-end/78228] [6 Regression] fstrict-overflow breaks code without overflow?

2016-11-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78228

--- Comment #5 from Richard Biener  ---
Author: rguenth
Date: Wed Nov 23 14:31:16 2016
New Revision: 242756

URL: https://gcc.gnu.org/viewcvs?rev=242756=gcc=rev
Log:
2016-11-23  Richard Biener  

Backport from mainline
2016-11-23  Richard Biener  

PR lto/78472
* tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized
fields.

lto/
* lto.c (hash_canonical_type): Ignore zero-sized fields.

* g++.dg/lto/pr78472_0.c: New testcase.
* g++.dg/lto/pr78472_1.C: Likewise.

2016-11-17  Richard Biener  

PR middle-end/78305
* fold-const.c (negate_expr_p): Fix multiplication case.

* gcc.dg/torture/pr78305.c: New testcase.

2016-11-16  Richard Biener  

PR middle-end/78333
* gimplify.c (gimplify_function_tree): Do not instrument
GNU extern inline functions.

* gcc.dg/pr78333.c: New testcase.

2016-11-07  Richard Biener  

PR tree-optimization/78228
* tree-ssa-phiopt.c (abs_replacement): Avoid introducing
undefined behavior.

* gcc.dg/tree-ssa/phi-opt-15.c: New testcase.

2016-11-04  Richard Biener  

PR middle-end/78185
* loop-invariant.c (find_exits): Record entering inner
loops as possibly exiting to handle infinite sub-loops.
* tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h.
(fill_always_executed_in_1): Honor infinite child loops.

* gcc.dg/pr78185.c: New testcase.

2016-10-06  Richard Biener  

PR tree-optimization/77855
* tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
instead of removing the current item while iterating over the set
which is not safe.

* gcc.dg/torture/pr77855.c: New testcase.

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_0.c
branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_1.C
branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78185.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78333.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr77855.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr78305.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-15.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/fold-const.c
branches/gcc-6-branch/gcc/gimplify.c
branches/gcc-6-branch/gcc/loop-invariant.c
branches/gcc-6-branch/gcc/lto/ChangeLog
branches/gcc-6-branch/gcc/lto/lto.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog
branches/gcc-6-branch/gcc/tree-ssa-loop-im.c
branches/gcc-6-branch/gcc/tree-ssa-phiopt.c
branches/gcc-6-branch/gcc/tree-ssa-pre.c
branches/gcc-6-branch/gcc/tree.c

[Bug tree-optimization/78305] [6 Regression] Wrong constant folding

2016-11-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78305

--- Comment #8 from Richard Biener  ---
Author: rguenth
Date: Wed Nov 23 14:31:16 2016
New Revision: 242756

URL: https://gcc.gnu.org/viewcvs?rev=242756=gcc=rev
Log:
2016-11-23  Richard Biener  

Backport from mainline
2016-11-23  Richard Biener  

PR lto/78472
* tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized
fields.

lto/
* lto.c (hash_canonical_type): Ignore zero-sized fields.

* g++.dg/lto/pr78472_0.c: New testcase.
* g++.dg/lto/pr78472_1.C: Likewise.

2016-11-17  Richard Biener  

PR middle-end/78305
* fold-const.c (negate_expr_p): Fix multiplication case.

* gcc.dg/torture/pr78305.c: New testcase.

2016-11-16  Richard Biener  

PR middle-end/78333
* gimplify.c (gimplify_function_tree): Do not instrument
GNU extern inline functions.

* gcc.dg/pr78333.c: New testcase.

2016-11-07  Richard Biener  

PR tree-optimization/78228
* tree-ssa-phiopt.c (abs_replacement): Avoid introducing
undefined behavior.

* gcc.dg/tree-ssa/phi-opt-15.c: New testcase.

2016-11-04  Richard Biener  

PR middle-end/78185
* loop-invariant.c (find_exits): Record entering inner
loops as possibly exiting to handle infinite sub-loops.
* tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h.
(fill_always_executed_in_1): Honor infinite child loops.

* gcc.dg/pr78185.c: New testcase.

2016-10-06  Richard Biener  

PR tree-optimization/77855
* tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
instead of removing the current item while iterating over the set
which is not safe.

* gcc.dg/torture/pr77855.c: New testcase.

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_0.c
branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_1.C
branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78185.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78333.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr77855.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr78305.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-15.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/fold-const.c
branches/gcc-6-branch/gcc/gimplify.c
branches/gcc-6-branch/gcc/loop-invariant.c
branches/gcc-6-branch/gcc/lto/ChangeLog
branches/gcc-6-branch/gcc/lto/lto.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog
branches/gcc-6-branch/gcc/tree-ssa-loop-im.c
branches/gcc-6-branch/gcc/tree-ssa-phiopt.c
branches/gcc-6-branch/gcc/tree-ssa-pre.c
branches/gcc-6-branch/gcc/tree.c

[Bug middle-end/78333] [5/6 Regression] always-inline gnu-inline functions break -finstrument-functions

2016-11-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78333

--- Comment #6 from Richard Biener  ---
Author: rguenth
Date: Wed Nov 23 14:31:16 2016
New Revision: 242756

URL: https://gcc.gnu.org/viewcvs?rev=242756=gcc=rev
Log:
2016-11-23  Richard Biener  

Backport from mainline
2016-11-23  Richard Biener  

PR lto/78472
* tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized
fields.

lto/
* lto.c (hash_canonical_type): Ignore zero-sized fields.

* g++.dg/lto/pr78472_0.c: New testcase.
* g++.dg/lto/pr78472_1.C: Likewise.

2016-11-17  Richard Biener  

PR middle-end/78305
* fold-const.c (negate_expr_p): Fix multiplication case.

* gcc.dg/torture/pr78305.c: New testcase.

2016-11-16  Richard Biener  

PR middle-end/78333
* gimplify.c (gimplify_function_tree): Do not instrument
GNU extern inline functions.

* gcc.dg/pr78333.c: New testcase.

2016-11-07  Richard Biener  

PR tree-optimization/78228
* tree-ssa-phiopt.c (abs_replacement): Avoid introducing
undefined behavior.

* gcc.dg/tree-ssa/phi-opt-15.c: New testcase.

2016-11-04  Richard Biener  

PR middle-end/78185
* loop-invariant.c (find_exits): Record entering inner
loops as possibly exiting to handle infinite sub-loops.
* tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h.
(fill_always_executed_in_1): Honor infinite child loops.

* gcc.dg/pr78185.c: New testcase.

2016-10-06  Richard Biener  

PR tree-optimization/77855
* tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
instead of removing the current item while iterating over the set
which is not safe.

* gcc.dg/torture/pr77855.c: New testcase.

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_0.c
branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_1.C
branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78185.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78333.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr77855.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr78305.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-15.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/fold-const.c
branches/gcc-6-branch/gcc/gimplify.c
branches/gcc-6-branch/gcc/loop-invariant.c
branches/gcc-6-branch/gcc/lto/ChangeLog
branches/gcc-6-branch/gcc/lto/lto.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog
branches/gcc-6-branch/gcc/tree-ssa-loop-im.c
branches/gcc-6-branch/gcc/tree-ssa-phiopt.c
branches/gcc-6-branch/gcc/tree-ssa-pre.c
branches/gcc-6-branch/gcc/tree.c

  1   2   >