platform/upstream/linaro-gcc.git
10 years ago2013-12-01 Paul Thomas <pault@gcc.gnu.org>
pault [Sun, 1 Dec 2013 11:50:20 +0000 (11:50 +0000)]
2013-12-01  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/57354
* trans-array.c (gfc_conv_resolve_dependencies): For other than
SS_SECTION, do a dependency check if the lhs is liable to be
reallocated.

2013-12-01  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/57354
* gfortran.dg/realloc_on_assign_23.f90 : New test

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205567 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-12-01 Paul Thomas <pault@gcc.gnu.org>
pault [Sun, 1 Dec 2013 11:42:25 +0000 (11:42 +0000)]
2013-12-01  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/58410
* trans-array.c (gfc_alloc_allocatable_for_assignment): Do not
use the array bounds of an unallocated array but set its size
to zero instead.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205566 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoIndex: gcc/fortran/resolve.c
pault [Sun, 1 Dec 2013 11:37:09 +0000 (11:37 +0000)]
Index: gcc/fortran/resolve.c
===================================================================
*** gcc/fortran/resolve.c (revision 205031)
--- gcc/fortran/resolve.c (working copy)
*************** resolve_transfer (gfc_code *code)
*** 8247,8256 ****
    && exp->value.op.op == INTRINSIC_PARENTHESES)
      exp = exp->value.op.op1;

!   if (exp && exp->expr_type == EXPR_NULL && exp->ts.type == BT_UNKNOWN)
      {
!       gfc_error ("NULL intrinsic at %L in data transfer statement requires "
!   "MOLD=", &exp->where);
        return;
      }

--- 8247,8257 ----
    && exp->value.op.op == INTRINSIC_PARENTHESES)
      exp = exp->value.op.op1;

!   if (exp && exp->expr_type == EXPR_NULL
!       && code->ext.dt)
      {
!       gfc_error ("Invalid context for NULL () intrinsic at %L",
!   &exp->where);
        return;
      }

Index: gcc/testsuite/gfortran.dg/null_5.f90
===================================================================
*** gcc/testsuite/gfortran.dg/null_5.f90 (revision 205031)
--- gcc/testsuite/gfortran.dg/null_5.f90 (working copy)
*************** subroutine test_PR34547_1 ()
*** 34,40 ****
  end subroutine test_PR34547_1

  subroutine test_PR34547_2 ()
!   print *, null () ! { dg-error "in data transfer statement requires MOLD" }
  end subroutine test_PR34547_2

  subroutine test_PR34547_3 ()
--- 34,40 ----
  end subroutine test_PR34547_1

  subroutine test_PR34547_2 ()
!   print *, null () ! { dg-error "Invalid context" }
  end subroutine test_PR34547_2

  subroutine test_PR34547_3 ()
Index: gcc/testsuite/gfortran.dg/null_6.f90
===================================================================
*** gcc/testsuite/gfortran.dg/null_6.f90 (revision 205031)
--- gcc/testsuite/gfortran.dg/null_6.f90 (working copy)
*************** end subroutine test_PR50375_2
*** 30,34 ****

  subroutine test_PR34547_3 ()
    integer, allocatable :: i(:)
!   print *, NULL(i)
  end subroutine test_PR34547_3
--- 30,34 ----

  subroutine test_PR34547_3 ()
    integer, allocatable :: i(:)
!   print *, NULL(i)    ! { dg-error "Invalid context for NULL" }
  end subroutine test_PR34547_3

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205565 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-12-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Sun, 1 Dec 2013 09:08:04 +0000 (09:08 +0000)]
2013-12-01  Bernd Edlinger <bernd.edlinger@hotmail.de>

        * expr.c (emit_group_store): Corrected BITFIELD_END parameter.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205563 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agolibgo: Avoid some cases of getting callers recursively.
ian [Sun, 1 Dec 2013 01:40:16 +0000 (01:40 +0000)]
libgo: Avoid some cases of getting callers recursively.

Avoids hanging inside older versions of glibc that do not
support recurive calls to dl_iterate_phdr.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205561 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoDaily bump.
gccadmin [Sun, 1 Dec 2013 00:17:11 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205560 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoreflect: Rename struct field to be consistent in assembler and Go.
ian [Sat, 30 Nov 2013 18:08:42 +0000 (18:08 +0000)]
reflect: Rename struct field to be consistent in assembler and Go.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205555 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoreflect: Fix MakeFunc for 386 when returning a struct.
ian [Sat, 30 Nov 2013 17:14:50 +0000 (17:14 +0000)]
reflect: Fix MakeFunc for 386 when returning a struct.

When a 386 function returns a struct, it needs to return using
an rtd instruction that pops the hidden struct parameter off
the stack.  That wasn't happening.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205551 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * combine.c (reg_nonzero_bits_for_combine): Apply mask transformation
ebotcazou [Sat, 30 Nov 2013 11:13:07 +0000 (11:13 +0000)]
* combine.c (reg_nonzero_bits_for_combine): Apply mask transformation
as applied to nonzero_sign_valid when last_set_mode has less precision
than mode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205550 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-30 Tobias Burnus <burnus@net-b.de>
burnus [Sat, 30 Nov 2013 09:11:13 +0000 (09:11 +0000)]
2013-11-30  Tobias Burnus  <burnus@net-b.de>

        PR sanitizer/59275
        * doc/invoke.texi (-fsanitize=address,leak): Mention the
        * associated
        environment variable and link to a list with flags.
        (-fsanitize=thread): Ditto and update link.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205548 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoDaily bump.
gccadmin [Sat, 30 Nov 2013 00:16:57 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205547 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR sanitizer/59331
mpolacek [Fri, 29 Nov 2013 21:29:48 +0000 (21:29 +0000)]
PR sanitizer/59331
cp/
* decl.c (compute_array_index_type): Don't build COMPOUND_EXPR for
instrumentation.
testsuite/
* g++.dg/ubsan/pr59331.C: New test.
* g++.dg/ubsan/cxx1y-vla.C: Enable -Wall -Wno-unused-variable.
Disable the -w option.
* c-c++-common/ubsan/vla-1.c: Likewise.
* c-c++-common/ubsan/vla-2.c: Likewise.
* c-c++-common/ubsan/vla-3.c: Don't use the -w option.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205544 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR c/42262
jsm28 [Fri, 29 Nov 2013 21:24:14 +0000 (21:24 +0000)]
PR c/42262
c:
* c-typeck.c (process_init_element): Do not treat a string as
initializing a whole array when used with a designator for an
individual element.

testsuite:
* gcc.dg/c99-init-5.c, gcc.dg/c99-init-6.c: New tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205543 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * bootstrap-ubsan.mk (POSTSTAGE1_LDFLAGS): Remove -lpthread -ldl.
mpolacek [Fri, 29 Nov 2013 20:13:45 +0000 (20:13 +0000)]
* bootstrap-ubsan.mk (POSTSTAGE1_LDFLAGS): Remove -lpthread -ldl.
Add -B$$r/prev-$(TARGET_SUBDIR)/libsanitizer/.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205542 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-29 Vladimir Makarov <vmakarov@redhat.com>
vmakarov [Fri, 29 Nov 2013 20:08:38 +0000 (20:08 +0000)]
2013-11-29  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/59340
* lra.c (check_rtl): Use recog_memoized instead of insn_invalid_p.

Revert
2013-11-20  Robert Suchanek  <Robert.Suchanek@imgtec.com>

* lra.c (lra): Set lra_in_progress before check_rtl call.
* recog.c (insn_invalid_p): Add !lra_in_progress to prevent
adding clobber regs when LRA is running.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205541 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoRemove empty directory.
ian [Fri, 29 Nov 2013 19:34:45 +0000 (19:34 +0000)]
Remove empty directory.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205540 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoAdd -B$$r/prev-$(TARGET_SUBDIR)/libsanitizer/
hjl [Fri, 29 Nov 2013 18:10:21 +0000 (18:10 +0000)]
Add -B$$r/prev-$(TARGET_SUBDIR)/libsanitizer/

* bootstrap-asan.mk (POSTSTAGE1_LDFLAGS): Add
-B$$r/prev-$(TARGET_SUBDIR)/libsanitizer/.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205539 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoMove config ChangeLog entries to config/ChangeLog
hjl [Fri, 29 Nov 2013 17:53:36 +0000 (17:53 +0000)]
Move config ChangeLog entries to config/ChangeLog

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205538 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoProperly add path to libsanitizer.spec to cflags
hjl [Fri, 29 Nov 2013 17:08:14 +0000 (17:08 +0000)]
Properly add path to libsanitizer.spec to cflags

* lib/asan-dg.exp (asan_link_flags): Properly add path to
libsanitizer.spec to cflags.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205537 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-29 Matthias Klose <doko@ubuntu.com>
doko [Fri, 29 Nov 2013 17:04:30 +0000 (17:04 +0000)]
2013-11-29  Matthias Klose  <doko@ubuntu.com>

        * testsuite/experimental/string_view/requirements/exception,
        testsuite/experimental/string_view/capacity/wchar_t,
        testsuite/experimental/string_view/capacity/char: Remove empty dirs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205536 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-29 Matthias Klose <doko@ubuntu.com>
doko [Fri, 29 Nov 2013 16:53:39 +0000 (16:53 +0000)]
2013-11-29  Matthias Klose  <doko@ubuntu.com>

        * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c,
        native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c:
        Fix freetype includes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205533 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR ada/54040
ebotcazou [Fri, 29 Nov 2013 16:19:36 +0000 (16:19 +0000)]
PR ada/54040
PR ada/59346
* s-osinte-hpux.ads (timespec): Change type of tv_nsec field to time_t.
* s-osinte-kfreebsd-gnu.ads (timespec): Likewise.
* s-osinte-solaris-posix.ads (timespec): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205532 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * MAINTAINERS: Update my email address.
hubicka [Fri, 29 Nov 2013 15:34:32 +0000 (15:34 +0000)]
* MAINTAINERS: Update my email address.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205531 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoAdd missing testcase.
hubicka [Fri, 29 Nov 2013 15:25:31 +0000 (15:25 +0000)]
Add missing testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205530 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
ktkachov [Fri, 29 Nov 2013 15:19:34 +0000 (15:19 +0000)]
2013-11-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

PR target/59289
* config/arm/arm.c (cortexa15_extra_costs): Adjust costs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205529 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-29 Richard Biener <rguenther@suse.de>
rguenth [Fri, 29 Nov 2013 14:37:07 +0000 (14:37 +0000)]
2013-11-29  Richard Biener  <rguenther@suse.de>

PR middle-end/59208
* tree-ssa-operands.h (fini_ssa_operands, verify_ssa_operands,
free_stmt_operands, update_stmt_operands): Add struct function
argument.
* tree-ssa-operands.c: Remove uses of cfun, propagate struct
function argument from fini_ssa_operands, verify_ssa_operands,
free_stmt_operands and update_stmt_operands everywhere.
* tree-ssanames.h (release_ssa_name_fn): New.
(release_ssa_name): Inline wrapper around release_ssa_name_fn.
* tree-ssanames.c (release_ssa_name): Rename to ...
(release_ssa_name_fn): ... this and add struct function argument.
* gimple-ssa.h (update_stmt, update_stmt_if_modified): Adjust.
(update_stmt_fn): New function.
* tree-cfg.c (move_block_to_fn): Adjust.
* tree-if-conv.c (free_bb_predicate): Likewise.
* tree-ssa.c (verify_ssa): Likewise.
(delete_tree_ssa): Likewise.
* gimple-pretty-print.c (dump_gimple_mem_ops): Remove guard.
* cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Call
update_stmt_fn instead of update_stmt.

* g++.dg/torture/pr59208.C: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205528 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-29 Yvan Roux <yvan.roux@linaro.org>
yroux [Fri, 29 Nov 2013 13:17:04 +0000 (13:17 +0000)]
2013-11-29  Yvan Roux  <yvan.roux@linaro.org>

        * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS
        for LRA.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205527 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-29 Yvan Roux <yvan.roux@linaro.org>
yroux [Fri, 29 Nov 2013 13:10:52 +0000 (13:10 +0000)]
2013-11-29  Yvan Roux  <yvan.roux@linaro.org>

         * config/arm/arm.md (store_minmaxsi): Use only when
        optimize_function_for_size_p.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205526 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoProperly handle function without arguments
hjl [Fri, 29 Nov 2013 13:00:35 +0000 (13:00 +0000)]
Properly handle function without arguments

PR c/59309
* cilk.c (gimplify_cilk_spawn): Properly handle function without
arguments.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205525 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agogcc/
ygribov [Fri, 29 Nov 2013 12:30:36 +0000 (12:30 +0000)]
gcc/
2013-11-29  Jakub Jelinek  <jakub@redhat.com>
            Yury Gribov  <y.gribov@samsung.com>

        PR sanitizer/59063
        * config/gnu-user.h: Removed old code for setting up sanitizer
        libs.
        * gcc.c: Using libsanitizer spec instead of explicit libs.

gcc/testsuite/
2013-11-29  Jakub Jelinek  <jakub@redhat.com>
            Yury Gribov  <y.gribov@samsung.com>

        PR sanitizer/59063
        * c-c++-common/asan/pr59063-1.c: New test.
        * c-c++-common/asan/pr59063-2.c: Likewise.
        * lib/asan-dg.exp: Add path to libsanitizer.spec to cflags.
        * lib/ubsan-dg.exp: Likewise.

libsanitizer/
2013-11-29  Jakub Jelinek  <jakub@redhat.com>
            Yury Gribov  <y.gribov@samsung.com>

        PR sanitizer/59063
        * libsanitizer.spec.in: Add spec file to hold link flags for
        various sanitizer libs.
        * configure.ac: Check whether clock_* routines come from librt.
        * asan/Makefile.am (libasan_la_LDFLAGS): Libs now come from
        configure.ac.
        * tsan/Makefile.am (libtsan_la_LDFLAGS): Likewise.
        * ubsan/Makefile.am (libubsan_la_LDFLAGS): Likewise.
        * lsan/Makefile.am (liblsan_la_LDFLAGS): Likewise.
        * asan/Makefile.in: Regenerate.
        * interception/Makefile.in: Regenerate.
        * lsan/Makefile.in: Regenerate.
        * sanitizer_common/Makefile.in: Regenerate.
        * tsan/Makefile.in: Regenerate.
        * ubsan/Makefile.in: Regenerate.
        * Makefile.in: Regenerate.
        * configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205524 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * gnat.dg/opt29.ad[sb]: New test.
ebotcazou [Fri, 29 Nov 2013 12:16:07 +0000 (12:16 +0000)]
* gnat.dg/opt29.ad[sb]: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205523 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago Reverted:
kyukhin [Fri, 29 Nov 2013 12:12:39 +0000 (12:12 +0000)]
Reverted:
2013-11-20  Ilya Enkovich  <ilya.enkovich@intel.com>
* cgraph.h (varpool_node): Add need_bounds_init field.
* lto-cgraph.c (lto_output_varpool_node): Output
need_bounds_init value.
(input_varpool_node): Read need_bounds_init value.
* varpool.c (dump_varpool_node): Dump need_bounds_init field.

Reverted:
2013-11-20  Ilya Enkovich  <ilya.enkovich@intel.com>
* dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
* dwarf2out.c (gen_subprogram_die): Ignore bound args.
(gen_type_die_with_usage): Skip pointer bounds.
(dwarf2out_global_decl): Likewise.

Reverted:
2013-11-18  Ilya Enkovich  <ilya.enkovich@intel.com>
* builtin-types.def (BT_FN_PTR_CONST_PTR_VAR): New.
* chkp-builtins.def (BUILT_IN_CHKP_BIND_BOUNDS): New.
* cfgexpand.c (expand_call_stmt): Expand BUILT_IN_CHKP_BIND_BOUNDS.
* gimple.c (gimple_call_get_nobnd_arg_index): Remove.
* gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
(gimple_call_with_bounds_p): New.
(gimple_call_set_with_bounds): New.
(gimple_call_num_nobnd_args): Remove.
(gimple_call_nobnd_arg): Remove.
* tree.h (CALL_WITH_BOUNDS_P): New.
* rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.

Reverted:
2013-11-08  Ilya Enkovich  <ilya.enkovich@intel.com>
* common.opt (fcheck-pointer-bounds): Move to ...
* c-family/c.opt: ... here.
* langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): Remove.
(LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CHKP_SUPPORTED.
* langhooks.h (lang_hooks): Remove chkp_supported field.
* toplev.c (process_options): Remove chkp_supported check.

Reverted:
2013-10-30  Ilya Enkovich  <ilya.enkovich@intel.com>
* tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
* tree.h (POINTER_BOUNDS_P): New.
(BOUNDED_TYPE_P): New.
(BOUNDED_P): New.
(pointer_bounds_type_node): New.
* tree.c (build_common_tree_nodes): Initialize
pointer_bounds_type_node.
* gimple.h (gimple_call_get_nobnd_arg_index): New.
(gimple_call_num_nobnd_args): New.
(gimple_call_nobnd_arg): New.
(gimple_return_retbnd): New.
(gimple_return_set_retbnd): New
* gimple.c (gimple_build_return): Increase number of ops
for return statement.
(gimple_call_get_nobnd_arg_index): New.
* gimple-pretty-print.c (dump_gimple_return): Print second op.

Reverted:
2013-10-30  Ilya Enkovich  <ilya.enkovich@intel.com>
* ipa.c (cgraph_build_static_cdtor_1): Support contructors
with "chkp ctor" and "bnd_legacy" attributes.
* gimplify.c (gimplify_init_constructor): Avoid infinite
loop during gimplification of bounds initializer.

Reverted:
2013-10-30  Ilya Enkovich  <ilya.enkovich@intel.com>
* c-family/c-common.c (handle_bnd_variable_size_attribute): New.
(handle_bnd_legacy): New.
(c_common_attribute_table): Add bnd_variable_size and bnd_legacy.
* doc/extend.texi: Document bnd_variable_size and bnd_legacy
attributes.

Reverted:
2013-10-29  Ilya Enkovich  <ilya.enkovich@intel.com>
* builtin-types.def (BT_FN_VOID_CONST_PTR): New.
(BT_FN_PTR_CONST_PTR): New.
(BT_FN_CONST_PTR_CONST_PTR): New.
(BT_FN_PTR_CONST_PTR_SIZE): New.
(BT_FN_PTR_CONST_PTR_CONST_PTR): New.
(BT_FN_VOID_PTRPTR_CONST_PTR): New.
(BT_FN_VOID_CONST_PTR_SIZE): New.
(BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
* chkp-builtins.def: New.
* builtins.def: include chkp-builtins.def.
(DEF_CHKP_BUILTIN): New.
* builtins.c (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_ARG_BND, BUILT_IN_CHKP_NARROW,
BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
* common.opt (fcheck-pointer-bounds): New.
* toplev.c (process_options): Check Pointer Bounds Checker is
supported.
* doc/extend.texi: Document Pointer Bounds Checker built-in functions.

Reverted:
2013-10-30  Ilya Enkovich  <ilya.enkovich@intel.com>
* target.def (builtin_chkp_function): New.
(chkp_bound_type): New.
(chkp_bound_mode): New.
(fn_abi_va_list_bounds_size): New.
(load_bounds_for_arg): New.
(store_bounds_for_arg): New.
* targhooks.h (default_load_bounds_for_arg): New.
(default_store_bounds_for_arg): New.
(default_fn_abi_va_list_bounds_size): New.
(default_chkp_bound_type): New.
(default_chkp_bound_mode): New.
(default_builtin_chkp_function): New.
* targhooks.c (default_load_bounds_for_arg): New.
(default_store_bounds_for_arg): New.
(default_fn_abi_va_list_bounds_size): New.
(default_chkp_bound_type): New.
(default_chkp_bound_mode); New.
(default_builtin_chkp_function): New.
* doc/tm.texi.in (TARGET_FN_ABI_VA_LIST_BOUNDS_SIZE): New.
(TARGET_LOAD_BOUNDS_FOR_ARG): New.
(TARGET_STORE_BOUNDS_FOR_ARG): New.
(TARGET_BUILTIN_CHKP_FUNCTION): New.
(TARGET_CHKP_BOUND_TYPE): New.
(TARGET_CHKP_BOUND_MODE): New.
* doc/tm.texi: Regenerated.
* langhooks.h (lang_hooks): Add chkp_supported field.
* langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): New.
(LANG_HOOKS_INITIALIZER); Add LANG_HOOKS_CHKP_SUPPORTED.

Reverted:
2013-10-24  Ilya Enkovich  <ilya.enkovich@intel.com>
* config/i386/constraints.md (B): New.
(Ti): New.
(Tb): New.
* config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
* config/i386/i386-modes.def (BND32): New.
(BND64): New.
* config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
* config/i386/i386.c (isa_opts): Add mmpx.
(regclass_map): Add bound registers.
(dbx_register_map): Likewise.
(dbx64_register_map): Likewise.
(svr4_dbx_register_map): Likewise.
(PTA_MPX): New.
(ix86_option_override_internal): Support MPX ISA.
(ix86_conditional_register_usage): Support bound registers.
(print_reg): Likewise.
(ix86_code_end): Add MPX bnd prefix.
(output_set_got): Likewise.
(ix86_output_call_insn): Likewise.
(ix86_print_operand): Add '!' (MPX bnd) print prefix support.
(ix86_print_operand_punct_valid_p): Likewise.
(ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
UNSPEC_BNDMK_ADDR.
(ix86_class_likely_spilled_p): Add bound regs support.
(ix86_hard_regno_mode_ok): Likewise.
(x86_order_regs_for_local_alloc): Likewise.
(ix86_bnd_prefixed_insn_p): New.
* config/i386/i386.h (FIRST_PSEUDO_REGISTER): Fix to new value.
(FIXED_REGISTERS): Add bound registers.
(CALL_USED_REGISTERS): Likewise.
(REG_ALLOC_ORDER): Likewise.
(HARD_REGNO_NREGS): Likewise.
(TARGET_MPX): New.
(VALID_BND_REG_MODE): New.
(FIRST_BND_REG): New.
(LAST_BND_REG): New.
(reg_class): Add BND_REGS.
(REG_CLASS_NAMES): Likewise.
(REG_CLASS_CONTENTS): Likewise.
(BND_REGNO_P): New.
(ANY_BND_REG_P): New.
(BNDmode): New.
(HI_REGISTER_NAMES): Add bound registers.
* config/i386/i386.md (UNSPEC_BNDMK): New.
(UNSPEC_BNDMK_ADDR): New.
(UNSPEC_BNDSTX): New.
(UNSPEC_BNDLDX): New.
(UNSPEC_BNDLDX_ADDR): New.
(UNSPEC_BNDCL): New.
(UNSPEC_BNDCU): New.
(UNSPEC_BNDCN): New.
(UNSPEC_MPX_FENCE): New.
(BND0_REG): New.
(BND1_REG): New.
(type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
(length_immediate): Likewise.
(prefix_0f): Likewise.
(memory): Likewise.
(prefix_rep): Check for bnd prefix.
(length_nobnd): New.
(length): Use length_nobnd if specified.
(BND): New.
(bnd_ptr): New.
(BNDCHECK): New.
(bndcheck): New.
(*jcc_1): Add bnd prefix and rename length attr to length_nobnd.
(*jcc_2): Likewise.
(jump): Likewise.
(simple_return_internal): Likewise.
(simple_return_pop_internal): Likewise.
(*indirect_jump): Add MPX bnd prefix.
(*tablejump_1): Likewise.
(simple_return_internal_long): Likewise.
(simple_return_indirect_internal): Likewise.
(<mode>_mk): New.
(*<mode>_mk): New.
(mov<mode>): New.
(*mov<mode>_internal_mpx): New.
(<mode>_<bndcheck>): New.
(*<mode>_<bndcheck>): New.
(<mode>_ldx): New.
(*<mode>_ldx): New.
(<mode>_stx): New.
(*<mode>_stx): New.
* config/i386/predicates.md (lea_address_operand): Rename to...
(address_no_seg_operand): ... this.
(address_mpx_no_base_operand): New.
(address_mpx_no_index_operand): New.
(bnd_mem_operator): New.
* config/i386/i386.opt (mmpx): New.
* doc/invoke.texi: Add documentation for the flags -mmpx, -mno-mpx.
* doc/rtl.texi Add documentation for BND32mode and BND64mode.

Reverted:
2013-10-24  Ilya Enkovich  <ilya.enkovich@intel.com>
* mode-classes.def (MODE_POINTER_BOUNDS): New.
* tree.def (POINTER_BOUNDS_TYPE): New.
* genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
(POINTER_BOUNDS_MODE): New.
(make_pointer_bounds_mode): New.
* machmode.h (POINTER_BOUNDS_MODE_P): New.
* stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
(layout_type): Support POINTER_BOUNDS_TYPE.
* tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
* tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
(type_contains_placeholder_1): Likewise.
* tree.h (POINTER_BOUNDS_TYPE_P): New.
* varasm.c (output_constant): Support POINTER_BOUNDS_TYPE.
* doc/rtl.texi (MODE_POINTER_BOUNDS): New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205522 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-29 Richard Biener <rguenther@suse.de>
rguenth [Fri, 29 Nov 2013 12:09:12 +0000 (12:09 +0000)]
2013-11-29  Richard Biener  <rguenther@suse.de>

PR middle-end/59338
* tree-cfg.c (verify_expr): Restrict bounds verification of
BIT_FIELD_REF arguments to non-aggregate typed base objects.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205521 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-29 Richard Biener <rguenther@suse.de>
rguenth [Fri, 29 Nov 2013 10:47:52 +0000 (10:47 +0000)]
2013-11-29  Richard Biener  <rguenther@suse.de>

PR tree-optimization/59334
* tree-ssa-dce.c (eliminate_unnecessary_stmts): Fix bug
in previous commit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205515 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR lto/59326
jakub [Fri, 29 Nov 2013 10:41:12 +0000 (10:41 +0000)]
PR lto/59326
* omp-low.c (simd_clone_create): Return NULL if for definition
!cgraph_function_with_gimple_body_p (old_node).  Call cgraph_get_body
before calling cgraph_function_versioning.
(expand_simd_clones): Look for "omp declare simd" attribute first.
Don't check targetm.simd_clone.compute_vecsize_and_simdlen here.
Punt if node->global.inlined_to.
(pass_omp_simd_clone::gate): Also enable if in_lto_p && !flag_wpa.
Disable pass if targetm.simd_clone.compute_vecsize_and_simdlen is NULL.
* lto-streamer-out.c (hash_tree): Handle OMP_CLAUSE.
lto/
* lto.c (compare_tree_sccs_1): Handle OMP_CLAUSE.
testsuite/
* gcc.dg/vect/vect-simd-clone-12.c: New test.
* gcc.dg/vect/vect-simd-clone-12a.c: New test.
* gcc.dg/vect/vect-simd-clone-10a.c: Remove extern keywords.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205514 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR lto/59326
jakub [Fri, 29 Nov 2013 10:36:10 +0000 (10:36 +0000)]
PR lto/59326
* tree-core.h (enum omp_clause_schedule_kind): Add
OMP_CLAUSE_SCHEDULE_LAST.
(enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_LAST.
(enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_LAST.
(enum omp_clause_map_kind): Add OMP_CLAUSE_MAP_LAST.
(enum omp_clause_proc_bind_kind): Add OMP_CLAUSE_PROC_BIND_LAST.
* lto-streamer-out.c (lto_is_streamable): Allow streaming
OMP_CLAUSE.
(DFS_write_tree_body): Handle OMP_CLAUSE.
* tree-streamer-out.c (pack_ts_omp_clause_value_fields): New
function.
(streamer_pack_tree_bitfields): Call it for OMP_CLAUSE.
(write_ts_omp_clause_tree_pointers): New function.
(streamer_write_tree_body): Call it for OMP_CLAUSE.
(streamer_write_tree_header): For OMP_CLAUSE stream OMP_CLAUSE_CODE.
* tree-streamer-in.c (unpack_ts_omp_clause_value_fields): New
function.
(unpack_value_fields): Call it for OMP_CLAUSE.
(streamer_alloc_tree): Handle OMP_CLAUSE.
(lto_input_ts_omp_clause_tree_pointers): New function.
(streamer_read_tree_body): Call it for OMP_CLAUSE.
lto/
* lto.c (mentions_vars_p_omp_clause): New function.
(mentions_vars_p): Call it for OMP_CLAUSE.  Remove break;
after return stmts.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205512 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR c/59280
jakub [Fri, 29 Nov 2013 07:42:23 +0000 (07:42 +0000)]
PR c/59280
* c-common.c (get_priority): If TREE_VALUE (args) is IDENTIFIER_NODE,
goto invalid.  If it is error_mark_node, don't issue further
diagnostics.
testsuite/
* c-c++-common/pr59280.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205510 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agotestsuite/ChangeLog:
zqchen [Fri, 29 Nov 2013 05:39:08 +0000 (05:39 +0000)]
testsuite/ChangeLog:

2013-11-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

* gcc.target/arm/lp1243022.c: Skip target arm-neon.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205509 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR c/57574
jsm28 [Fri, 29 Nov 2013 01:30:42 +0000 (01:30 +0000)]
PR c/57574
c:
* c-decl.c (merge_decls): Clear DECL_EXTERNAL for a definition of
an inline function following a static declaration.

testsuite:
* gcc.dg/inline-35.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205506 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * doc/implement-c.texi: Document C11 implementation-defined
jsm28 [Fri, 29 Nov 2013 00:39:50 +0000 (00:39 +0000)]
* doc/implement-c.texi: Document C11 implementation-defined
behavior.  Refer to -ffp-contract=fast for contraction behavior.
* doc/invoke.texi (-std=c99, std=c11): Update description of
completeness.
(-std=gnu99): Don't mention as future default.
(-std=gnu11): Mention as intended future default.
* doc/standards.texi: Update descriptions of C99 and C11 support.
Limit statement about C99 facilities for freestanding
implementations to some platforms only.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205505 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoDaily bump.
gccadmin [Fri, 29 Nov 2013 00:17:27 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205504 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR c++/59297
jakub [Thu, 28 Nov 2013 22:53:50 +0000 (22:53 +0000)]
PR c++/59297
* semantics.c (finish_omp_atomic): Call finish_expr_stmt
rather than add_stmt.

* g++.dg/gomp/pr59297.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205500 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR middle-end/59327
jakub [Thu, 28 Nov 2013 22:52:40 +0000 (22:52 +0000)]
PR middle-end/59327
* cfgexpand.c (expand_used_vars): Avoid warning on 32-bit
HWI hosts.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205499 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-28 Vladimir Makarov <vmakarov@redhat.com>
vmakarov [Thu, 28 Nov 2013 21:45:21 +0000 (21:45 +0000)]
2013-11-28  Vladimir Makarov  <vmakarov@redhat.com>

PR target/57293
* ira.h (ira_setup_eliminable_regset): Remove parameter.
* ira.c (ira_setup_eliminable_regset): Ditto.  Add
SUPPORTS_STACK_ALIGNMENT for crtl->stack_realign_needed.
Don't call lra_init_elimination.
(ira): Call ira_setup_eliminable_regset without arguments.
* loop-invariant.c (calculate_loop_reg_pressure): Remove argument
from ira_setup_eliminable_regset call.
* gcse.c (calculate_bb_reg_pressure): Ditto.
* haifa-sched.c (sched_init): Ditto.
* lra.h (lra_init_elimination): Remove the prototype.
* lra-int.h (lra_insn_recog_data): New member sp_offset.  Move
used_insn_alternative upper.
(lra_eliminate_regs_1): Add one more parameter.
(lra-eliminate): Ditto.
* lra.c (lra_invalidate_insn_data): Set sp_offset.
(setup_sp_offset): New.
(lra_process_new_insns): Call setup_sp_offset.
(lra): Add argument to lra_eliminate calls.
* lra-constraints.c (get_equiv_substitution): Rename to get_equiv.
(get_equiv_with_elimination): New.
(process_addr_reg): Call get_equiv_with_elimination instead of
get_equiv_substitution.
(equiv_address_substitution): Ditto.
(loc_equivalence_change_p): Ditto.
(loc_equivalence_callback, lra_constraints): Ditto.
(curr_insn_transform): Ditto.  Print the sp offset
(process_alt_operands): Prevent stack pointer reloads.
(lra_constraints): Remove one argument from lra_eliminate call.
Move it up.  Mark used hard regs bfore it.  Use
get_equiv_with_elimination instead of get_equiv_substitution.
* lra-eliminations.c (lra_eliminate_regs_1): Add parameter and
assert for param values combination.  Use sp offset.  Add argument
to lra_eliminate_regs_1 calls.
(lra_eliminate_regs): Add argument to lra_eliminate_regs_1 call.
(curr_sp_change): New static var.
(mark_not_eliminable): Add parameter.  Update curr_sp_change.
Don't prevent elimination to sp if we can calculate its change.
Pass the argument to mark_not_eliminable calls.
(eliminate_regs_in_insn): Add a parameter.  Use sp offset.  Add
argument to lra_eliminate_regs_1 call.
(update_reg_eliminate): Move calculation of hard regs for spill
lower.  Switch off lra_in_progress temporarily to generate regs
involved into elimination.
(lra_init_elimination): Rename to init_elimination.  Make it
static.  Set up insn sp offset, check the offsets at the end of
BBs.
(process_insn_for_elimination): Add parameter.  Pass its value to
eliminate_regs_in_insn.
(lra_eliminate): : Add parameter.  Pass its value to
process_insn_for_elimination.  Add assert for param values
combination.  Call init_elimination.  Don't update offsets in
equivalence substitutions.
* lra-spills.c (assign_mem_slot): Don't call lra_eliminate_regs_1
for created stack slot.
(remove_pseudos): Call lra_eliminate_regs_1 before changing memory
onto stack slot.

2013-11-28  Vladimir Makarov  <vmakarov@redhat.com>

PR target/57293
* gcc.target/i386/pr57293.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205498 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago[gcc/]
ktkachov [Thu, 28 Nov 2013 16:36:07 +0000 (16:36 +0000)]
[gcc/]
2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

* config/arm/iterators.md (vrint_conds): New int attribute.
* config/arm/vfp.md (<vrint_pattern><SDF:mode>2): Set conds attribute.
(smax<mode>3): Likewise.
(smin<mode>3): Likewise.

[gcc/testsuite/]
2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

* gcc.target/arm/vrinta-ce.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205492 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * dwarf.c (find_address_ranges): New static function, broken out
ian [Thu, 28 Nov 2013 16:19:57 +0000 (16:19 +0000)]
* dwarf.c (find_address_ranges): New static function, broken out
of build_address_map.
(build_address_map): Call it.
* btest.c (check): Check for missing filename or function, rather
than crashing.
(f3): Check that enough frames were returned.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205490 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agogcc/
rsandifo [Thu, 28 Nov 2013 16:15:52 +0000 (16:15 +0000)]
gcc/
* tree-core.h (tree_base): Document use of static_flag for SSA_NAME.
* tree.h (SSA_NAME_ANTI_RANGE_P, SSA_NAME_RANGE_TYPE): New macros.
* tree-ssanames.h (set_range_info): Add range_type argument.
(duplicate_ssa_name_range_info): Likewise.
* tree-ssanames.c (set_range_info): Take the range type as argument
and store it in SSA_NAME_ANTI_RANGE_P.
(duplicate_ssa_name_range_info): Likewise.
(get_range_info): Use SSA_NAME_ANTI_RANGE_P.
(set_nonzero_bits): Update call to set_range_info.
(duplicate_ssa_name_fn): Update call to duplicate_ssa_name_range_info.
* tree-ssa-copy.c (fini_copy_prop): Likewise.
* tree-vrp.c (remove_range_assertions): Update call to set_range_info.
(vrp_finalize): Likewise, passing anti-ranges directly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205489 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * config/i386/32/sfp-machine.h (__FP_FRAC_ADDI_4): New macro.
uros [Thu, 28 Nov 2013 15:31:23 +0000 (15:31 +0000)]
* config/i386/32/sfp-machine.h (__FP_FRAC_ADDI_4): New macro.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205488 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-28 Richard Biener <rguenther@suse.de>
rguenth [Thu, 28 Nov 2013 15:22:55 +0000 (15:22 +0000)]
2013-11-28  Richard Biener  <rguenther@suse.de>

PR lto/59323
* gcc.dg/lto/pr59323-2_0.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205487 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-28 Richard Biener <rguenther@suse.de>
rguenth [Thu, 28 Nov 2013 14:52:44 +0000 (14:52 +0000)]
2013-11-28  Richard Biener  <rguenther@suse.de>

PR tree-optimization/59330
* tree-ssa-dce.c (eliminate_unnecessary_stmts): Simplify
and fix delayed marking of free calls not necessary.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205486 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-28 Andrew MacLeod <amacleod@redhat.com>
amacleod [Thu, 28 Nov 2013 14:11:12 +0000 (14:11 +0000)]
2013-11-28  Andrew MacLeod  <amacleod@redhat.com>

* tree-ssa-propagate.c (valid_gimple_call_p): Pass TREE_TYPE to
is_gimple_reg_type.
* ipa-prop.c (determine_known_aggregate_parts): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205485 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-28 Terry Guo <terry.guo@arm.com>
xguo [Thu, 28 Nov 2013 12:31:51 +0000 (12:31 +0000)]
2013-11-28  Terry Guo  <terry.guo@arm.com>

* config/arm/arm.c (v7m_extra_costs): New table.
(arm_v7m_tune): Use it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205484 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoAdd -lrt on Solaris
ro [Thu, 28 Nov 2013 12:27:58 +0000 (12:27 +0000)]
Add -lrt on Solaris

gcc/cp:
* g++spec.c (TIMELIB): Define.
(WITHLIBC, SKIPOPT): Adjust values.
(lang_specific_driver): Add TIME_LIBRARY if not passed explicitly.

gcc:
* config/sol2.h (TIME_LIBRARY): Define.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205483 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-28 Jakub Jelinek <jakub@redhat.com>
ygribov [Thu, 28 Nov 2013 12:20:23 +0000 (12:20 +0000)]
2013-11-28  Jakub Jelinek  <jakub@redhat.com>
    Yury Gribov  <y.gribov@samsung.com>

PR sanitizer/59106
* ubsan/Makefile.am (AM_CXXFLAGS): Disable -frtti for files that
don't need it.
* ubsan/Makefile.in: Regenerated.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205482 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-28 Richard Biener <rguenther@suse.de>
rguenth [Thu, 28 Nov 2013 12:09:10 +0000 (12:09 +0000)]
2013-11-28  Richard Biener  <rguenther@suse.de>

PR lto/59323
* lto-streamer-out.c (tree_is_indexable): TYPE_DECLs and
CONST_DECLs in function context are not indexable.

* gcc.dg/lto/pr59323_0.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205481 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-26 Matthew Leach <matthew.leach@arm.com>
rearnsha [Thu, 28 Nov 2013 10:59:38 +0000 (10:59 +0000)]
2013-11-26  Matthew Leach  <matthew.leach@arm.com>

* config/aarch64/linux-unwind.h (aarch64_fallback_frame_state): Check
for correct opcodes on BE.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205479 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * config/nds32/nds32.c (nds32_rtx_costs): Adjust MULT cost if it is
jasonwucj [Thu, 28 Nov 2013 09:03:25 +0000 (09:03 +0000)]
* config/nds32/nds32.c (nds32_rtx_costs): Adjust MULT cost if it is
not optimized for size.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205478 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * cfgexpand.c (struct stack_vars_data): Add asan_base and asan_alignb
jakub [Thu, 28 Nov 2013 08:18:59 +0000 (08:18 +0000)]
* cfgexpand.c (struct stack_vars_data): Add asan_base and asan_alignb
fields.
(expand_stack_vars): For -fsanitize=address, use (and set initially)
data->asan_base as base for vars and update asan_alignb.
(expand_used_vars): Initialize data.asan_base and data.asan_alignb.
Pass them to asan_emit_stack_protection.
* asan.c (asan_detect_stack_use_after_return): New variable.
(asan_emit_stack_protection): Add pbase and alignb arguments.
Implement use after return sanitization.
* asan.h (asan_emit_stack_protection): Adjust prototype.
(ASAN_STACK_MAGIC_USE_AFTER_RET, ASAN_STACK_RETIRED_MAGIC): Define.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205476 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agogcc/
kyukhin [Thu, 28 Nov 2013 07:54:58 +0000 (07:54 +0000)]
gcc/
* common.opt: Introduced a new option -fsimd-cost-model.
* doc/invoke.texi: Introduced a new openmp-simd warning and
a new -fsimd-cost-model option.
* tree-vectorizer.h (unlimited_cost_model): Interface updated
to rely on the particular loop info.
* tree-vect-data-refs.c (vect_peeling_hash_insert): Ditto.
(vect_peeling_hash_choose_best_peeling): Ditto.
(vect_enhance_data_refs_alignment): Ditto.
* tree-vect-slp.c (vect_slp_analyze_bb_1): Ditto.
* tree-vect-loop.c (vect_estimate_min_profitable_iters): Ditto
plus added openmp-simd warining.

gcc/c-family/
* c.opt (Wopenmp-simd): New.

gcc/fortran/
* lang.opt (Wopenmp-simd): New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205475 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoDaily bump.
gccadmin [Thu, 28 Nov 2013 00:16:30 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205471 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoAlso handle REG_XXX notes in spill_pseudos
hjl [Wed, 27 Nov 2013 23:54:26 +0000 (23:54 +0000)]
Also handle REG_XXX notes in spill_pseudos

PR rtl-optimization/59311
* dwarf2cfi.c (dwf_regno): Assert reg isn't pseudo register.
* lra-spills.c (spill_pseudos): Handle REG_XXX notes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205468 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR c/59310
jakub [Wed, 27 Nov 2013 23:42:48 +0000 (23:42 +0000)]
PR c/59310
* c-parser.c (c_parser_omp_target): Copy "#pragma omp target"
to p_name before calling c_parser_omp_teams instead of after.
(c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser
argument.  Remove unused p_name variable.

* parser.c (cp_parser_omp_target): Call keep_next_level only
if flag_openmp.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205467 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR middle-end/57393
jakub [Wed, 27 Nov 2013 23:41:56 +0000 (23:41 +0000)]
PR middle-end/57393
PR tree-optimization/58018
PR tree-optimization/58131
* gcc.dg/torture/pr57393-1.c: New test.
* gcc.dg/torture/pr57393-2.c: New test.
* gcc.dg/torture/pr57393-3.c: New test.
* gcc.dg/torture/pr58018.c: New test.
* gcc.dg/torture/pr58131.c: New test.
* gfortran.dg/pr57393-1.f90: New test.
* gfortran.dg/pr57393-2.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205466 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
wschmidt [Wed, 27 Nov 2013 23:36:22 +0000 (23:36 +0000)]
2013-11-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gfortran.dg/nan_7.f90: Disable for little endian PowerPC.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205464 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * soft-fp/op-4.h: Update from glibc.
uros [Wed, 27 Nov 2013 21:57:52 +0000 (21:57 +0000)]
* soft-fp/op-4.h: Update from glibc.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205462 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * var-tracking.c (track_expr_p): Do not track declarations for parts
ebotcazou [Wed, 27 Nov 2013 21:16:21 +0000 (21:16 +0000)]
* var-tracking.c (track_expr_p): Do not track declarations for parts
of tracked parameters.
(add_stores): Do not track values for tracked parameters passed in
multiple locations.
(vt_get_decl_and_offset): Handle PARALLEL.
(vt_add_function_parameter): Handle parameters with incoming PARALLEL.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205461 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
law [Wed, 27 Nov 2013 18:47:43 +0000 (18:47 +0000)]
* tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
clobber the loop structure thread_block was unsuccessful.  If
thread_block was unsuccessful, cleanup appropriately.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205459 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR target/56788
uros [Wed, 27 Nov 2013 18:07:22 +0000 (18:07 +0000)]
PR target/56788
* gcc.target/i386/xop-frczX.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205458 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR tree-optimization/59014
jakub [Wed, 27 Nov 2013 17:03:27 +0000 (17:03 +0000)]
PR tree-optimization/59014
* gcc.c-torture/execute/pr59014-2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205454 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * config/score/score.h (REG_CLASS_FROM_LETTER): Delete.
law [Wed, 27 Nov 2013 16:49:21 +0000 (16:49 +0000)]
    * config/score/score.h (REG_CLASS_FROM_LETTER): Delete.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205453 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Wed, 27 Nov 2013 16:33:01 +0000 (16:33 +0000)]
2013-11-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>

reverted r205398 on request: Remove parameter keep_aligning from
get_inner_reference.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205452 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-27 Vladimir Makarov <vmakarov@redhat.com>
vmakarov [Wed, 27 Nov 2013 16:30:48 +0000 (16:30 +0000)]
2013-11-27  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/57410
* gcc.target/i386/pr57410.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205451 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoFix ext/random/hypergeometric_distribution/operators/values.cc on Solaris 9
ro [Wed, 27 Nov 2013 16:15:35 +0000 (16:15 +0000)]
Fix ext/random/hypergeometric_distribution/operators/values.cc on Solaris 9

* testsuite/ext/random/hypergeometric_distribution/operators/values.cc:
Use dg-require-cmath instead.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205450 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago/cp
paolo [Wed, 27 Nov 2013 15:55:18 +0000 (15:55 +0000)]
/cp
2013-11-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58647
* semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
Handle function COMPONENT_REFs.

/testsuite
2013-11-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/58647
* g++.dg/parse/crash66.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205449 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-27 Kenneth Zadeck <zadeck@naturalbridge.com>
zadeck [Wed, 27 Nov 2013 15:42:02 +0000 (15:42 +0000)]
2013-11-27  Kenneth Zadeck  <zadeck@naturalbridge.com>

* gcc.dg/c90-const-expr-8.c: Look for overflow on INT_MIN % -1.
* gcc.dg/c99-const-expr-8.c: Look for overflow on INT_MIN % -1.

2013-11-27  Kenneth Zadeck  <zadeck@naturalbridge.com>

* fold-const.c
(int_const_binop_1): Make INT_MIN % -1 return 0 with the overflow
bit set.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205448 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-27 Richard Biener <rguenther@suse.de>
rguenth [Wed, 27 Nov 2013 15:18:23 +0000 (15:18 +0000)]
2013-11-27  Richard Biener  <rguenther@suse.de>

PR middle-end/58723
* cgraphbuild.c (build_cgraph_edges): Do not build edges
for internal calls.
(rebuild_cgraph_edges): Likewise.
* ipa-inline-analysis.c (estimate_function_body_sizes):
Skip internal calls.
* tree-inline.c (estimate_num_insns): Estimate size of internal
calls as 0.
(gimple_expand_calls_inline): Do not try inline-expanding
internal calls.
* lto-streamer-in.c (input_cfg): Stream loop safelen,
force_vect and simduid.
(input_struct_function_base): Stream has_force_vect_loops
and has_simduid_loops.
(input_function): Adjust.
* lto-streamer-out.c (output_cfg): Stream loop safelen,
force_vect and simduid.
(output_struct_function_base): Stream has_force_vect_loops
and has_simduid_loops.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205447 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoFix ext/random/hypergeometric_distribution/operators/values.cc on Solaris 9
ro [Wed, 27 Nov 2013 15:15:23 +0000 (15:15 +0000)]
Fix ext/random/hypergeometric_distribution/operators/values.cc on Solaris 9

* testsuite/ext/random/hypergeometric_distribution/operators/values.cc
(test01): Wrap in _GLIBCXX_USE_C99_MATH_TR1.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205446 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * config/i386/winnt.c (i386_pe_section_type_flags): Use const
ktietz [Wed, 27 Nov 2013 13:25:51 +0000 (13:25 +0000)]
* config/i386/winnt.c (i386_pe_section_type_flags): Use const
pointer cast.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205445 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-27 Kugan Vivekanandarajah <kuganv@linaro.org>
clyon [Wed, 27 Nov 2013 12:17:05 +0000 (12:17 +0000)]
2013-11-27  Kugan Vivekanandarajah  <kuganv@linaro.org>

gcc/
* doc/tm.texi.in (TARGET_HAS_NO_HW_DIVIDE): Define.
* doc/tm.texi (TARGET_HAS_NO_HW_DIVIDE): Regenerate.

libgcc/
* libgcc2.c (__udivmoddi4): Define new implementation when
TARGET_HAS_NO_HW_DIVIDE is defined, for processors without any
divide instructions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205444 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR sanitizer/59306
mpolacek [Wed, 27 Nov 2013 11:40:22 +0000 (11:40 +0000)]
PR sanitizer/59306
* ubsan.c (instrument_null): Use gimple_store_p/gimple_assign_load_p
instead of walk_gimple_op.
(ubsan_pass): Adjust.  Call instrument_null only if SANITIZE_NULL.
testsuite/
* g++.dg/ubsan/pr59306.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205443 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * cgraph.h (enum cgraph_simd_clone_arg_type): New.
jakub [Wed, 27 Nov 2013 11:20:06 +0000 (11:20 +0000)]
* cgraph.h (enum cgraph_simd_clone_arg_type): New.
(struct cgraph_simd_clone_arg, struct cgraph_simd_clone): New.
(struct cgraph_node): Add simdclone and simd_clones fields.
* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen,
ix86_simd_clone_adjust, ix86_simd_clone_usable): New functions.
(TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): Define.
* doc/tm.texi.in (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): Add.
* doc/tm.texi: Regenerated.
* ggc.h (ggc_alloc_cleared_simd_clone_stat): New function.
* ipa-cp.c (determine_versionability): Fail if "omp declare simd"
attribute is present.
* omp-low.c: Include pretty-print.h, ipa-prop.h and tree-eh.h.
(simd_clone_vector_of_formal_parm_types): New function.
(simd_clone_struct_alloc, simd_clone_struct_copy,
simd_clone_vector_of_formal_parm_types, simd_clone_clauses_extract,
simd_clone_compute_base_data_type, simd_clone_mangle,
simd_clone_create, simd_clone_adjust_return_type,
create_tmp_simd_array, simd_clone_adjust_argument_types,
simd_clone_init_simd_arrays): New functions.
(struct modify_stmt_info): New type.
(ipa_simd_modify_stmt_ops, ipa_simd_modify_function_body,
simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone): New
functions.
(pass_data_omp_simd_clone): New variable.
(pass_omp_simd_clone): New class.
(make_pass_omp_simd_clone): New function.
* passes.def (pass_omp_simd_clone): New.
* target.def (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): New target
hooks.
* target.h (struct cgraph_node, struct cgraph_simd_node): Declare.
* tree-core.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Document.
* tree.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Define.
* tree-pass.h (make_pass_omp_simd_clone): New prototype.
* tree-vect-data-refs.c: Include cgraph.h.
(vect_analyze_data_refs): Inline by hand find_data_references_in_loop
and find_data_references_in_bb, if find_data_references_in_stmt
fails, still allow calls to #pragma omp declare simd functions
in #pragma omp simd loops unless they contain data references among
the call arguments or in lhs.
* tree-vect-loop.c (vect_determine_vectorization_factor): Handle
calls with no lhs.
(vect_transform_loop): Allow NULL STMT_VINFO_VECTYPE for calls without
lhs.
* tree-vectorizer.h (enum stmt_vec_info_type): Add
call_simd_clone_vec_info_type.
(struct _stmt_vec_info): Add simd_clone_fndecl field.
(STMT_VINFO_SIMD_CLONE_FNDECL): Define.
* tree-vect-stmts.c: Include tree-ssa-loop.h,
tree-scalar-evolution.h and cgraph.h.
(vectorizable_call): Handle calls without lhs.  Assert
!stmt_can_throw_internal instead of failing for it.  Don't update
EH stuff.
(struct simd_call_arg_info): New.
(vectorizable_simd_clone_call): New function.
(vect_transform_stmt): Call it.
(vect_analyze_stmt): Likewise.  Allow NULL STMT_VINFO_VECTYPE for
calls without lhs.
* ipa-prop.c (ipa_add_new_function): Only call ipa_analyze_node
if cgraph_function_with_gimple_body_p is true.
c/
* c-decl.c (c_builtin_function_ext_scope): Avoid binding if
external_scope is NULL.
cp/
* semantics.c (finish_omp_clauses): For #pragma omp declare simd
linear clause step call maybe_constant_value.
testsuite/
* g++.dg/gomp/declare-simd-1.C (f38): Make sure
simdlen is a power of two.
* gcc.dg/gomp/simd-clones-2.c: Compile on all targets.
Remove -msse2.  Adjust regexps for name mangling changes.
* gcc.dg/gomp/simd-clones-3.c: Likewise.
* gcc.dg/vect/vect-simd-clone-1.c: New test.
* gcc.dg/vect/vect-simd-clone-2.c: New test.
* gcc.dg/vect/vect-simd-clone-3.c: New test.
* gcc.dg/vect/vect-simd-clone-4.c: New test.
* gcc.dg/vect/vect-simd-clone-5.c: New test.
* gcc.dg/vect/vect-simd-clone-6.c: New test.
* gcc.dg/vect/vect-simd-clone-7.c: New test.
* gcc.dg/vect/vect-simd-clone-8.c: New test.
* gcc.dg/vect/vect-simd-clone-9.c: New test.
* gcc.dg/vect/vect-simd-clone-10.c: New test.
* gcc.dg/vect/vect-simd-clone-10.h: New file.
* gcc.dg/vect/vect-simd-clone-10a.c: New file.
* gcc.dg/vect/vect-simd-clone-11.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205442 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoProperly set ld_library_path in cilk-plus tests
ro [Wed, 27 Nov 2013 10:16:43 +0000 (10:16 +0000)]
Properly set ld_library_path in cilk-plus tests

* gcc.dg/cilk-plus/cilk-plus.exp: Append to ld_library_path.
Call set_ld_library_path_env_vars.
* g++.dg/cilk-plus/cilk-plus.exp: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205441 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoHandle vector increment/decrement in build_unary_op
vries [Wed, 27 Nov 2013 10:00:48 +0000 (10:00 +0000)]
Handle vector increment/decrement in build_unary_op

2013-11-27  Tom de Vries  <tom@codesourcery.com>
    Marc Glisse  <marc.glisse@inria.fr>

PR c++/59032
* c-typeck.c (build_unary_op): Allow vector increment and decrement.

* typeck.c (cp_build_unary_op): Allow vector increment and decrement.

* c-c++-common/pr59032.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205439 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoDon't create out-of-bounds BIT_FIELD_REF.
vries [Wed, 27 Nov 2013 10:00:30 +0000 (10:00 +0000)]
Don't create out-of-bounds BIT_FIELD_REF.

2013-11-27  Tom de Vries  <tom@codesourcery.com>
    Marc Glisse  <marc.glisse@inria.fr>

PR middle-end/59037
* semantics.c (cxx_fold_indirect_ref): Don't create out-of-bounds
BIT_FIELD_REF.

* fold-const.c (fold_indirect_ref_1): Don't create out-of-bounds
BIT_FIELD_REF.
* gimple-fold.c (gimple_fold_indirect_ref): Same.
* tree-cfg.c (verify_expr): Give error if BIT_FIELD_REF is
out-of-bounds.

* c-c++-common/pr59037.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205438 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR middle-end/59138
ebotcazou [Wed, 27 Nov 2013 09:17:23 +0000 (09:17 +0000)]
PR middle-end/59138
* expr.c (emit_group_store): Don't write past the end of the structure.
(store_bit_field): Fix formatting.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205436 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-27 Richard Biener <rguenther@suse.de>
rguenth [Wed, 27 Nov 2013 08:50:15 +0000 (08:50 +0000)]
2013-11-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/59288
* tree-vect-loop.c (get_initial_def_for_induction): Do not
re-analyze the PHI but use STMT_VINFO_LOOP_PHI_EVOLUTION_PART.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205434 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago2013-11-27 Marek Polacek <polacek@redhat.com>
mpolacek [Wed, 27 Nov 2013 08:02:48 +0000 (08:02 +0000)]
2013-11-27  Marek Polacek  <polacek@redhat.com>

* ubsan.c (ubsan_type_descriptor): If varpool_get_node returns NULL
for a decl, recreate that decl.  Save into the hash table VAR_DECLs
rather than ADDR_EXPRs.
testsuite/
* c-c++-common/ubsan/undefined-1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205433 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago * config/ia64/hpux.h (TARGET_LIBC_HAS_FUNCTION): Fix typo.
kyukhin [Wed, 27 Nov 2013 07:57:04 +0000 (07:57 +0000)]
    * config/ia64/hpux.h (TARGET_LIBC_HAS_FUNCTION): Fix typo.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205432 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoFix checking of gimple types
dmalcolm [Wed, 27 Nov 2013 02:26:25 +0000 (02:26 +0000)]
Fix checking of gimple types

* gengtype.c (struct seen_tag): New.
(already_seen_tag): New.
(mark_tag_as_seen): New.
(walk_subclasses): Support having multiple subclasses using the
same tag by tracking which tags have already been seen, and using
this to avoid adding duplicate cases to the "switch" statement.
The call to already_seen_tag introduces an O(N^2) when running
gengtype on N, the number of tags, due to the repeated linear
search, but currently max(N) is relatively small (the number of
GSS codes, which is 26).
(walk_type): Pass in a seen_tag for use by the walk_subclasses
recursion.

* gimple.def (GIMPLE_OMP_ATOMIC_STORE, GIMPLE_OMP_RETURN): Rename
underlying GSS values for these codes (from GSS_OMP_ATOMIC_STORE to
GSS_OMP_ATOMIC_STORE_LAYOUT) to make clear that although
GIMPLE_OMP_RETURN happens to share the data layout of
GIMPLE_OMP_ATOMIC_STORE, they are not otherwise related.
(GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TARGET): Likewise, rename
underlying GSS value from GSS_OMP_PARALLEL to
GSS_OMP_PARALLEL_LAYOUT to make clear that these gimple codes are
not directly related; they merely share in-memory layout.
(GIMPLE_OMP_SINGLE, GIMPLE_OMP_TEAMS): Likewise, rename GSS values
for these two codes from GSS_OMP_SINGLE to GSS_OMP_SINGLE_LAYOUT.

* gsstruct.def (GSS_OMP_PARALLEL, gimple_statement_omp_parallel):
Rename to...
(GSS_OMP_PARALLEL_LAYOUT, gimple_statement_omp_parallel_layout):
...these.
(GSS_OMP_SINGLE, gimple_statement_omp_single): Rename to...
(GSS_OMP_SINGLE_LAYOUT, gimple_statement_omp_single_layout):
...these.
(GSS_OMP_ATOMIC_STORE, gimple_statement_omp_atomic_store): Rename
to...
(GSS_OMP_ATOMIC_STORE_LAYOUT, gimple_statement_omp_atomic_store):
...these.

* gimple.h (gimple_statement_resx): New subclass of
gimple_statement_eh_ctrl, with the invariant that
stmt->code == GIMPLE_RESX.
(gimple_statement_eh_dispatch): New subclass of
gimple_statement_eh_ctrl, with the invariant that
stmt->code == GIMPLE_EH_DISPATH.

(gimple_statement_omp_parallel): The existing class expressed
a layout (GSS_OMP_PARALLEL), but the codes with that layout
are not all related, so it makes more sense for this class to
express a *code* (GIMPLE_OMP_PARALLEL).  GSS_OMP_PARALLEL has
been renamed to GSS_OMP_PARALLEL_LAYOUT to express this, so
rename the existing gimple_statement_omp_parallel class to...
(gimple_statement_omp_parallel_layout): ...this, expressing
a statement of structure layout GSS_OMP_PARALLEL_LAYOUT.
(gimple_statement_omp_taskreg): New subclass of
gimple_statement_omp_parallel_layout, expressing the invariant
that the code is one of GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK,
as used by the various gimple_omp_taskreg_ accessors.
(gimple_statement_omp_parallel): Reintroduce this class, this time
as a subclass of gimple_statement_omp_taskreg to express the
invariant stmt->code == GIMPLE_OMP_PARALLEL.
(gimple_statement_omp_target) New class, subclassing
gimple_statement_omp_parallel_layout, to express the invariant
stmt->code == GIMPLE_OMP_TARGET.
(gimple_statement_omp_task): Update to inherit from
gimple_statement_omp_taskreg rather than
gimple_statement_omp_parallel.

(gimple_statement_omp_single): Rename to...
(gimple_statement_omp_single_layout): ...this, expressing the
invariant that the layout is GSS_OMP_SINGLE_LAYOUT.
(gimple_statement_omp_single): ...and reintroduce this name as
a subclass of gimple_statement_omp_single_layout, expressing
the invariant that code == GIMPLE_OMP_SINGLE.
(gimple_statement_omp_teams): New class, subclassing
gimple_statement_omp_single_layout, for the code GIMPLE_OMP_TEAMS.

(gimple_statement_omp_atomic_store): Rename to...
(gimple_statement_omp_atomic_store_layout): ...this, expressing
the invariant that the layout is GSS_OMP_ATOMIC_STORE_LAYOUT.
(gimple_statement_omp_atomic_store): ...and reintroduce this
name as a subclass of gimple_statement_omp_atomic_store_layout
with code == GIMPLE_OMP_ATOMIC_STORE.
(gimple_statement_omp_return): New class, subclassing
gimple_statement_omp_atomic_store_layout for the code
GIMPLE_OMP_RETURN.

(is_a_helper <gimple_statement_eh_ctrl>::test): Delete.
(is_a_helper <gimple_statement_resx>::test): New.
(is_a_helper <gimple_statement_eh_dispatch>::test): New.
(is_a_helper <gimple_statement_omp_atomic_store>::test): Only
check for GIMPLE_OMP_ATOMIC_STORE, not for GIMPLE_OMP_RETURN.
(is_a_helper <gimple_statement_omp_return>::test): New.
(is_a_helper <gimple_statement_omp_taskreg>::test): New.
(is_a_helper <gimple_statement_omp_parallel>::test): Only check
for GIMPLE_OMP_PARALLEL, not for GIMPLE_OMP_TASK or
GIMPLE_OMP_TARGET.
(is_a_helper <gimple_statement_omp_target>::test): New.
(is_a_helper <gimple_statement_omp_single>::test): Only check
for GIMPLE_OMP_SINGLE, not for GIMPLE_OMP_TEAMS.
(is_a_helper <gimple_statement_omp_teams>::test): New.

(is_a_helper <const gimple_statement_eh_ctrl>::test): Delete.
(is_a_helper <const gimple_statement_resx>::test): New.
(is_a_helper <const gimple_statement_eh_dispatch>::test): New.
(is_a_helper <const gimple_statement_omp_atomic_store>::test): Only
check for GIMPLE_OMP_ATOMIC_STORE, not for GIMPLE_OMP_RETURN.
(is_a_helper <const gimple_statement_omp_return>::test): New.
(is_a_helper <const gimple_statement_omp_taskreg>::test): New.
(is_a_helper <const gimple_statement_omp_parallel>::test): Only
check for GIMPLE_OMP_PARALLEL, not for GIMPLE_OMP_TASK or
GIMPLE_OMP_TARGET.
(is_a_helper <const gimple_statement_omp_target>::test): New.
(is_a_helper <const gimple_statement_omp_single>::test): Only
check for GIMPLE_OMP_SINGLE, not for GIMPLE_OMP_TEAMS.
(is_a_helper <const gimple_statement_omp_teams>::test): New.

(gimple_omp_return_set_lhs, gimple_omp_return_lhs,
gimple_omp_return_lhs_ptr): Replace bogus downcasts to
gimple_statement_omp_atomic_store with downcasts to
gimple_statement_omp_return, thus requiring that the code be
GIMPLE_OMP_RETURN.
(gimple_resx_region, gimple_resx_set_region): Replace bogus
downcasts to gimple_statement_eh_ctrl with downcasts to
gimple_statement_resx, thus requiring that the code be
GIMPLE_RESX.
(gimple_eh_dispatch_region, gimple_eh_dispatch_set_region):
Replace bogus downcasts to const gimple_statement_eh_ctrl with
downcasts to gimple_statement_eh_dispatch, thus requiring that
the code be GIMPLE_EH_DISPATCH.
(gimple_omp_taskreg_clauses, gimple_omp_taskreg_clauses_ptr)
gimple_omp_taskreg_set_clauses, gimple_omp_taskreg_child_fn,
gimple_omp_taskreg_child_fn_ptr, gimple_omp_taskreg_set_child_fn,
gimple_omp_taskreg_data_arg, gimple_omp_taskreg_data_arg_ptr,
gimple_omp_taskreg_set_data_arg): Replace bogus downcasts to
gimple_statement_omp_parallel with downcasts to
gimple_statement_omp_taskreg, thus requiring that the code be
either GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK.
(gimple_omp_target_clauses, gimple_omp_target_clauses_ptr
gimple_omp_target_set_clauses, gimple_omp_target_child_fn
gimple_omp_target_child_fn_ptr, gimple_omp_target_set_child_fn
gimple_omp_target_data_arg, gimple_omp_target_data_arg_ptr
gimple_omp_target_set_data_arg): Replace bogus downcasts to
gimple_statement_omp_parallel with downcasts to
gimple_statement_omp_target, thus requiring that the code be
GIMPLE_OMP_TARGET.
(gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr
gimple_omp_teams_set_clauses): Replace bogus downcasts to
gimple_statement_omp_single with downcasts to
gimple_statement_omp_teams, thus requiring that the code be
GIMPLE_OMP_TEAMS.

* gimple.c (gimple_build_resx): Fix bogus as_a<> to use
gimple_statement_resx.
(gimple_build_eh_dispatch): Fix bogus as_a<> to use
gimple_statement_eh_dispatch.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205428 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agolibgo: Update to current Go library.
ian [Wed, 27 Nov 2013 01:05:38 +0000 (01:05 +0000)]
libgo: Update to current Go library.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205426 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoDaily bump.
gccadmin [Wed, 27 Nov 2013 00:17:09 +0000 (00:17 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205425 138bc75d-0d04-0410-961f-82ee72b054a4

10 years agoruntime: Fix handling of surrogate pairs in string([]rune).
ian [Tue, 26 Nov 2013 23:27:29 +0000 (23:27 +0000)]
runtime: Fix handling of surrogate pairs in string([]rune).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205422 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR tree-optimization/59014
jakub [Tue, 26 Nov 2013 21:29:30 +0000 (21:29 +0000)]
PR tree-optimization/59014
* tree-vrp.c (register_edge_assert_for_1): Don't look
through conversions from non-integral types or through
narrowing conversions.

* gcc.c-torture/execute/pr59014.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205417 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR target/59229
jakub [Tue, 26 Nov 2013 21:28:26 +0000 (21:28 +0000)]
PR target/59229
* config/i386/i386.c (device_alg): Fix up formatting.
(ix86_expand_set_or_movmem): Handle max_size < epilogue_size_needed
similarly to count && count < epilogue_size_needed.  Fix up
comment typo.
* builtins.c (determine_block_size): Fix comment typo.

* gcc.c-torture/execute/pr59229.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205416 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR sanitizer/59258
jakub [Tue, 26 Nov 2013 21:27:19 +0000 (21:27 +0000)]
PR sanitizer/59258
* ubsan.c (ubsan_source_location): Don't add any location
to ADDR_EXPR in the ctor.  Revert 2013-11-22 change.
(ubsan_create_data): Strip block info from LOC.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205415 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR middle-end/59273
jakub [Tue, 26 Nov 2013 20:55:39 +0000 (20:55 +0000)]
PR middle-end/59273
* tree-vect-generic.c (optimize_vector_constructor): Don't optimize
if there isn't optab handler for the corresponding vector PLUS_EXPR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205414 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR rtl-optimization/59166
jakub [Tue, 26 Nov 2013 20:54:37 +0000 (20:54 +0000)]
PR rtl-optimization/59166
* ira.c (find_moveable_pseudos): Use DF_REF_REAL_LOC instead of
DF_REF_LOC in validate_change call.
(split_live_ranges_for_shrink_wrap): Likewise.

* gcc.dg/torture/pr59166.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205413 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR c++/58874
jakub [Tue, 26 Nov 2013 20:39:56 +0000 (20:39 +0000)]
PR c++/58874
* parser.c (cp_parser_late_parsing_for_member): For OpenMP UDRs
pass 2 instead of 0 to finish_function.

* g++.dg/gomp/pr58874.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205412 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR middle-end/59150
jakub [Tue, 26 Nov 2013 20:38:59 +0000 (20:38 +0000)]
PR middle-end/59150
* omp-low.c (lower_rec_input_clause): For reduction with placeholder
of references to constant size types in simd loops, defer emitting
initializer for the new_var, emit it later on only if not using
SIMD arrays for it.

* g++.dg/gomp/pr59150.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205411 138bc75d-0d04-0410-961f-82ee72b054a4

10 years ago PR middle-end/59152
jakub [Tue, 26 Nov 2013 20:38:10 +0000 (20:38 +0000)]
PR middle-end/59152
* omp-low.c (expand_omp_for_static_chunk): Don't set loop->latch
for the inner loop if collapse_bb is non-NULL.
(expand_omp_simd): Use cont_bb rather than e->dest as latch.

* c-c++-common/gomp/pr59152.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205410 138bc75d-0d04-0410-961f-82ee72b054a4