platform/upstream/linaro-gcc.git
8 years ago[AArch64] PR rtl-optimization/68796 Add compare-of-zero_extract pattern
ktkachov [Fri, 18 Dec 2015 09:58:07 +0000 (09:58 +0000)]
[AArch64] PR rtl-optimization/68796 Add compare-of-zero_extract pattern

PR rtl-optimization/68796
* config/aarch64/aarch64.md (*and<mode>3nr_compare0_zextract):
New pattern.
* config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle
ZERO_EXTRACT comparison with zero.
(aarch64_mask_from_zextract_ops): New function.
* config/aarch64/aarch64-protos.h (aarch64_mask_from_zextract_ops):
New prototype.

* gcc.target/aarch64/tst_3.c: New test.
* gcc.target/aarch64/tst_4.c: Likewise.

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

8 years agoS/390: Turn constm1_operand into all_ones_operand
krebbel [Fri, 18 Dec 2015 09:53:23 +0000 (09:53 +0000)]
S/390: Turn constm1_operand into all_ones_operand

gcc/ChangeLog:

2015-12-18 Robin Dapp <rdapp@linux.vnet.ibm.com>

* config/s390/predicates.md: Change and rename
constm1_operand to all_ones_operand
* config/s390/s390.c (s390_expand_vcond): Use all_ones_operand
* config/s390/vector.md: Likewise

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

8 years agoS/390: Simplify vector conditionals
krebbel [Fri, 18 Dec 2015 09:50:02 +0000 (09:50 +0000)]
S/390: Simplify vector conditionals

gcc/ChangeLog:

2015-12-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>

* config/s390/s390.c (s390_expand_vcond): Convert vector
conditional into shift.
* config/s390/vector.md: Change operand predicate.

gcc/testsuite/ChangeLog:

2015-12-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>

* gcc.target/s390/vcond-shift.c: New test to check vcond
simplification.

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

8 years ago2015-12-18 Paul Thomas <pault@gcc.gnu.org>
pault [Fri, 18 Dec 2015 09:34:13 +0000 (09:34 +0000)]
2015-12-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/68196
*expr.c (gfc_has_default_initializer): Prevent infinite recursion
through this function for procedure pointer components.
* trans-array.c (structure_alloc_comps): Ditto twice.

2015-12-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/68196
* gfortran.dg/proc_ptr_48.f90: New test.

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

8 years agoS/390: Deprecate g5 and g6 CPU levels
krebbel [Fri, 18 Dec 2015 09:20:53 +0000 (09:20 +0000)]
S/390: Deprecate g5 and g6 CPU levels

gcc/ChangeLog:

2015-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
z900 -march -mtune even on g5 and g6 machines.
* config/s390/s390.c (s390_option_override_internal): New argument
to distingiush between options and target attributes.  Emit
deprecation warning for g5 and g6 arch/tune options.
(s390_option_override): Set new s390_option_override_internal
argument to true.
(s390_valid_target_attribute_tree): Set new
s390_option_override_internal argument to false.
* config/s390/s390.h: Default to z900 in the driver.
* doc/invoke.texi: Document the deprecation of g5 and g6.

gcc/testsuite/ChangeLog:

2015-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/hotpatch-8.c: Add -Wno-deprecated to options.
* gcc.target/s390/hotpatch-9.c: Likewise.

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

8 years agoAdd myself to MAINTAINERS (Write After Approval)
ssaraswati [Fri, 18 Dec 2015 05:14:15 +0000 (05:14 +0000)]
Add myself to MAINTAINERS (Write After Approval)

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

8 years agoUpdate typedefs for integer types in config/i386/djgpp-stdint.h
andris [Fri, 18 Dec 2015 04:54:40 +0000 (04:54 +0000)]
Update typedefs for integer types in config/i386/djgpp-stdint.h

* config/i386/djgpp-stdint.h: update typedefs for integer types

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

8 years agoAdd *-*-msdosdjgpp to lists of i[34567]86-*-* soft-fp targets
andris [Fri, 18 Dec 2015 04:46:11 +0000 (04:46 +0000)]
Add *-*-msdosdjgpp to lists of i[34567]86-*-* soft-fp targets

* config.host: Add *-*-msdosdjgpp to lists of i[34567]86-*-*
soft-fp targets

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

8 years agoSpecify that DJGPP do not have mmap even when sys/mman.h exists
andris [Fri, 18 Dec 2015 04:36:11 +0000 (04:36 +0000)]
Specify that DJGPP do not have mmap even when sys/mman.h exists

* configure.ac: Specify that DJGPP do not have mmap even when sys/mman.h exists
* configure: Regenerate

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

8 years ago[DJGPP] Update config/os/djgpp/error_constants.h
andris [Fri, 18 Dec 2015 04:28:01 +0000 (04:28 +0000)]
[DJGPP] Update config/os/djgpp/error_constants.h

       * config/os/djgpp/error_constants.h: update according to DJGPP errno
       macros.

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

8 years ago[PATCH] Move split-path pass next to the tracer pass
law [Fri, 18 Dec 2015 04:04:20 +0000 (04:04 +0000)]
[PATCH] Move split-path pass next to the tracer pass

* passes.def: Put the split-paths pass immediately before the
tracer pass.

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

8 years agoFix PR c++/68831 (superfluous -Waddress warning for C++ delete)
ppalka [Fri, 18 Dec 2015 02:25:39 +0000 (02:25 +0000)]
Fix PR c++/68831 (superfluous -Waddress warning for C++ delete)

gcc/cp/ChangeLog:

PR c++/68831
* init.c (build_delete): Use a warning sentinel to disable
-Waddress warnings when building the conditional that tests
if the operand is NULL.

gcc/testsuite/ChangeLog:

PR c++/68831
* g++.dg/pr68831.C: New test.

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

8 years ago syscall: Add definition for NLA_HDRLEN
ian [Fri, 18 Dec 2015 01:15:37 +0000 (01:15 +0000)]
syscall: Add definition for NLA_HDRLEN

    This change updates mksysinfo.sh so it correctly
    includes the define NLA_HDRLEN in the syscall package.

    Fixes golang/go/#13629

    Reviewed-on: https://go-review.googlesource.com/17893

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

8 years agoMark recently obsoleted targets (openbsd3 and knetbsd)
jbglaw [Fri, 18 Dec 2015 00:17:52 +0000 (00:17 +0000)]
Mark recently obsoleted targets (openbsd3 and knetbsd)

2015-12-17  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

* config-list.mk (LIST): Add --enable-obsolete to recently obsoleted
targets x86_64-knetbsd-gnu, i686-knetbsd-gnu and i686-openbsd3.0 .

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

8 years agoDaily bump.
gccadmin [Fri, 18 Dec 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.

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

8 years ago[PATCH] Limit path splitting to loops we optimize for speed
law [Thu, 17 Dec 2015 23:33:44 +0000 (23:33 +0000)]
[PATCH] Limit path splitting to loops we optimize for speed

* doc/invoke.texi (-O2 options): Remove -fsplit-paths.
(-O3 options): Add -fsplit-paths.
* gimple-ssa-split-paths.c: Include predict.h
(split_paths): Only split paths in a loop that should be
optimized for speed.
* opts.c (default_options_table): Move -fsplit-paths from -O2 to
-O3.

* gcc.dg/tree-ssa/split-path-1.c: Explicitly ask for path
splitting optimizations.

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

8 years ago gcc/
nathan [Thu, 17 Dec 2015 21:29:30 +0000 (21:29 +0000)]
gcc/
* ipa-icf.c (sem_item_optimizer::merge): Don't pick 'main' as the
source function.

gcc/testsuite/
* gcc.dg/ipa/ipa-icf-merge-1.c: New.

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

8 years agoC FE: improvements to ranges of bad return values
dmalcolm [Thu, 17 Dec 2015 21:25:36 +0000 (21:25 +0000)]
C FE: improvements to ranges of bad return values

gcc/c/ChangeLog:
* c-parser.c (c_parser_statement_after_labels): When calling
c_finish_return, Use the return expression's location if it has
one, falling back to the location of the first token within it.
* c-typeck.c (c_finish_return): When issuing warnings about
the incorrect presence/absence of a return value, issue a note
showing the declaration of the function.

gcc/testsuite/ChangeLog:
* gcc.dg/diagnostic-range-bad-return.c: New test case.

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

8 years agoreplace ISL with isl
spop [Thu, 17 Dec 2015 18:50:05 +0000 (18:50 +0000)]
replace ISL with isl

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

8 years agomove all isl include files to graphite.h
spop [Thu, 17 Dec 2015 17:52:17 +0000 (17:52 +0000)]
move all isl include files to graphite.h

* graphite-dependences.c: Move all isl include files to...
* graphite-isl-ast-to-gimple.c: Same.
* graphite-optimize-isl.c: Same.
* graphite-poly.c: Same.
* graphite-scop-detection.c: Same.
* graphite.c: Same.
* graphite.h: ... here.

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

8 years ago * config/avr/avr.h (MOVE_MAX): Set value to 1.
denisc [Thu, 17 Dec 2015 16:55:39 +0000 (16:55 +0000)]
    * config/avr/avr.h (MOVE_MAX): Set value to 1.
        (MOVE_MAX_PIECES): Define.
        (MOVE_RATIO): Define.
        * config/avr/avr.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P):
        Provide target hook.
        (avr_use_by_pieces_infrastructure_p): New function.

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

8 years ago PR c++/67550
jason [Thu, 17 Dec 2015 16:51:58 +0000 (16:51 +0000)]
PR c++/67550

* init.c (constant_value_1): Don't return a CONSTRUCTOR missing
non-constant elements.

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

8 years ago PR c++/67576
jason [Thu, 17 Dec 2015 16:51:52 +0000 (16:51 +0000)]
PR c++/67576

PR c++/25466
* rtti.c (build_typeid): Use save_expr, not stabilize_reference.

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

8 years ago2015-12-17 Andris Pavenis <andris.pavenis@iki.fi>
andris [Thu, 17 Dec 2015 16:42:21 +0000 (16:42 +0000)]
2015-12-17  Andris Pavenis  <andris.pavenis@iki.fi>

        * MAINTAINERS (Write After Approval): Add Myself.

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

8 years agoobsolete the interix target
tbsaunde [Thu, 17 Dec 2015 15:21:29 +0000 (15:21 +0000)]
obsolete the interix target

gcc/ChangeLog:

2015-12-17  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* config.gcc: mark *-interix* as obsolete.

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

8 years agoobsolete openbsd 2.0 and 3.X
tbsaunde [Thu, 17 Dec 2015 15:21:24 +0000 (15:21 +0000)]
obsolete openbsd 2.0 and 3.X

gcc/ChangeLog:

2015-12-17  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* config.gcc: Mark openbsd 2.0 and 3.X as obsolete.

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

8 years agomark *-knetbsd-* as obsolete
tbsaunde [Thu, 17 Dec 2015 15:21:18 +0000 (15:21 +0000)]
mark *-knetbsd-* as obsolete

gcc/ChangeLog:

2015-12-17  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* config.gcc: Mark knetbsd targets as obsolete.

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

8 years ago * config/nvptx/nvptx.h (NVPTX_RETURN_REGNUM, FRAME_POINTER_REGNUM,
nathan [Thu, 17 Dec 2015 15:06:03 +0000 (15:06 +0000)]
* config/nvptx/nvptx.h (NVPTX_RETURN_REGNUM, FRAME_POINTER_REGNUM,
ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Renumber.
(REGISTER_NAMES): Update and rename.
(FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
(enum_reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Reformat.

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

8 years ago2015-12-17 Richard Biener <rguenther@suse.de>
rguenth [Thu, 17 Dec 2015 14:30:53 +0000 (14:30 +0000)]
2015-12-17  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68946
* tree-vect-slp.c (vect_slp_analyze_node_operations): Push
SLP def type to stmt operands one stmt at a time.

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

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

8 years ago * c-c++-common/Wunused-var-13.c: Requires label values.
nathan [Thu, 17 Dec 2015 14:21:57 +0000 (14:21 +0000)]
* c-c++-common/Wunused-var-13.c: Requires label values.
* gcc.dg/torture/pr46216.c: Likewise.

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

8 years agoDWARF: describe properly Ada packed arrays
pmderodat [Thu, 17 Dec 2015 14:10:32 +0000 (14:10 +0000)]
DWARF: describe properly Ada packed arrays

gcc/ada/ChangeLog:

* gcc-interface/ada-tree.h
(TYPE_IMPLEMENTS_PACKED_ARRAY_P, TYPE_CAN_HAVE_DEBUG_TYPE_P,
TYPE_ORIGINAL_PACKED_ARRAY, SET_TYPE_ORIGINAL_PACKED_ARRAY): New
macros.
* gcc-interface/decl.c (add_parallel_type_for_packed_array):
Rename to associate_original_type_to_packed_array.  When
-fgnat-encodings=minimal, set original packed array type as so
instead of as a parallel type to the implementation type.  In
this case, also rename the implementation type to the name of
the original array type.
(gnat_to_gnu_entity): Update invocations to
add_parallel_type_for_packed_array.  Tag ARRAY_TYPE nodes for
packed arrays with the TYPE_PACKED flag.
When -fgnat-encodings=minimal:
  - strip ___XP suffixes in packed arrays' names;
  - set the debug type for padding records around packed arrays
    to the packed array;
  - do not attach ___XUP types as parallel types of constrained
    array types.
* gcc-interface/misc.c (gnat_print_type): Update to handle
orignal packed arrays.
(gnat_get_debug_type): Update to reject packed arrays
implementation types.
(get_array_bit_stride): New.
(gnat_get_array_descr_info): Add packed arrays handling.
* gcc-interface/utils.c (maybe_pad_type): When
-fgnat-encodings=minimal, set the name of the padding type to
the one of the original packed type, if any.  Fix TYPE_DECL
peeling around the name of the input type.

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

8 years agoDWARF: add a language hook for scalar biased types
pmderodat [Thu, 17 Dec 2015 14:10:24 +0000 (14:10 +0000)]
DWARF: add a language hook for scalar biased types

Front-ends like GNAT for Ada sometimes use biased encodings for integral
types.  This change creates a new language hook so that the bias
information can make it into the debugging information back-end and
introduces an experimental DWARF attribute to hold it.

gcc/ada/ChangeLog:

* gcc-interface/misc.c (gnat_get_type_bias): New.
(LANG_HOOKS_GET_TYPE_BIAS): Redefine macro to implement the
get_type_bias language hook.

gcc/ChangeLog:

* langhooks.h (struct lang_hooks_for_types): New get_bias_field.
* langhooks-def.h (LANG_HOOKS_GET_TYPE_BIAS): New.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the
get_bias_field.
* dwarf2out.c
(base_type_die): In non-strict DWARF mode, invoke the
get_type_bias language hook for INTEGER_TYPE nodes.  If it
returns a bias, emit an attribute for it.
(subrange_type_die): Change signature to handle bias.  If
non-strict DWARF mode, emit an attribute for it, if one passed.
(modified_type_die): For subrange types, invoke the
get_type_bias langage hook and pass the bias to
subrange_type_die.

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

8 years agoDWARF: create a macro for max dimensions for array descr. lang. hook
pmderodat [Thu, 17 Dec 2015 14:10:12 +0000 (14:10 +0000)]
DWARF: create a macro for max dimensions for array descr. lang. hook

The array descriptor language hook can hold the description of a limited
number of array dimensions.  This macro will ease preventing overflow in
front-ends.

gcc/ada/ChangeLog:

* gcc-interface/misc.c (gnat_get_array_descr_info): When the
array has more dimensions than the language hook can handle,
fall back to a nested arrays description.  Handle context-less
array types.

gcc/ChangeLog:

* dwarf2out.h (DWARF2OUT_ARRAY_DESCR_INFO_MAX_DIMEN): New macro.
(struct array_descr_info): Use it for the dimensions array's
size.
* dwarf2out.c (gen_type_die_with_usage): Check that the array
descr. language hook does not return an array with more
dimensions that it should.

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

8 years agoDWARF: describe Ada dynamic arrays as proper arrays
pmderodat [Thu, 17 Dec 2015 14:10:03 +0000 (14:10 +0000)]
DWARF: describe Ada dynamic arrays as proper arrays

gcc/ada/ChangeLog:

* gcc-interface/decl.c (gnat_to_gnu_entity): When
-fgnat-encodings-minimal, do not add ___XUP/XUT suffixes to type
names and do not generate ___XA parallel types.
* gcc-interface/misc.c (gnat_get_array_descr_info): Match fat
and thin pointers and generate the corresponding array type
descriptions.

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

8 years agoDWARF: add a language hook for fixed-point types
pmderodat [Thu, 17 Dec 2015 14:09:55 +0000 (14:09 +0000)]
DWARF: add a language hook for fixed-point types

Support for fixed-point types in GCC is not powerful enough for Ada
fixed-point types: GNAT uses regular scalar types to implement them.
This new language hook makes it possible to output the desired debugging
information anyway.

gcc/ada/ChangeLog:

* gcc-interface/ada-tree.def (POWER_EXPR): New binary operation.
* gcc-interface/ada-tree.h (TYPE_FIXED_POINT_P): New macro.
(TYPE_IS_FIXED_POINT_P): New macro.
(TYPE_SCALE_FACTOR): New macro.
(SET_TYPE_SCALE_FACTOR): New macro.
* gcc-interface/decl.c: Include urealp.h
(gnat_to_gnu_entity): Attach trees to encode scale factors to
fixed-point types.
* gcc-interface/misc.c (gnat_print_type): Print scale factors
for fixed-point types.
(gnat_get_fixed_point_type_info): New.
(gnat_init_ts): Initialize data for the POWER_EXPR binary
operation.
(LANG_HOOKS_GET_FIXED_POINT_INFO): Redefine macro to implement
the get_fixed_point_type_info language hook.

gcc/ChangeLog:

* langhooks.h (struct lang_hooks_for_types): Add a
get_fixed_point_type_info field.
* langhooks-def.h (LANG_HOOKS_GET_FIXED_POINT_TYPE_INFO): New
macro.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the
get_fixed_point_type_info field.
* dwarf2out.h (enum fixed_point_scale_factor): New.
(struct fixed_point_type_info): New.
* dwarf2out.c (base_type_die): In DWARFv3 or non-strict DWARF
mode, get fixed-point type information using the debugging hook
and describe it in DWARF, if any.

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

8 years agoDWARF: add a language hook to override types in debugging information
pmderodat [Thu, 17 Dec 2015 14:09:45 +0000 (14:09 +0000)]
DWARF: add a language hook to override types in debugging information

Many artificial types are introduced by GNAT in order to satisfy
constraints in GCC's internal trees or to generate optimal code.  These
hide original types from sources and miss useful information in the
debugging information or add noise to it and make debugging confusing.
This change introduces a new language hook to give a chance to
front-ends to restore the source types in the debugging information.

This change also enhance the array descriptor language hook to handle
array-wide bit/byte stride.  Some arrays may contain dynamically-sized
objects.  Debuggers need for these a hint to know the size allocated for
each element, hence the need for the array-wide bit/byte stride.

The Ada front-end is enhanced to take advantage of both hooks when
-fgnat-encodings=minimal, in order to keep compatibility with GDB.

gcc/ada/ChangeLog:

* gcc-interface/ada-tree.h (struct lang_type): Rename the t
field as t1 and add a t2 one.
(get_lang_specific): New.
(GET_TYPE_LANG_SPECIFIC): Refactor to use get_lang_specific.
(SET_TYPE_LANG_SPECIFIC): Likewise.
(GET_TYPE_LANG_SPECIFIC2): New macro.
(SET_TYPE_LANG_SPECIFIC2): New macro.
(TYPE_DEBUG_TYPE): New macro.
(SET_TYPE_DEBUG_TYPE): New macro.
* gcc-interface/decl.c (gnat_to_gnu_entity): When
-fgnat-encodings=minimal, set padding types' debug type to the
padded one (i.e. strip ___PAD GNAT encodings) and set
constrained record subtypes's debug type to the base type.
* gcc-interface/misc.c (gnat_print_type): Print debug types.
(gnat_get_debug_type): New.
(gnat_get_array_descr_info): When -fgnat-encodings=minimal, set
a byte stride for arrays that contain a type whose debug type
has variable length.
(LANG_HOOKS_GET_DEBUG_TYPE): Redefine macro to implement the
debug type language hook.
* gcc-interface/utils.c (maybe_pad_type): When
-fgnat-encodings=minimal, set padding types' debug type to the
padded one.  Restore XVZ variables creation when
-fgnat-encodings-minimal and use them to hold padding types'
byte size.  For library-level padding types, share this variable
across translation units.  Tag XVZ variables as artificial.

gcc/ChangeLog:

* langhooks.h (struct lang_hooks_for_types): Add a
get_debug_type field.
* langhooks-def.h (LANG_HOOKS_GET_DEBUG_TYPE): New macro.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the
get_debug_type field.
* dwarf2out.h (struct array_descr_info): Add an array-wide
stride field.
* dwarf2out.c (modified_type_die): Invoke the get_debug_type
language hook, process its result instead, if any.
(gen_descr_array_type_die): Add array-wide stride processing.

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

8 years agoDWARF: handle variable-length records and variant parts
pmderodat [Thu, 17 Dec 2015 14:09:36 +0000 (14:09 +0000)]
DWARF: handle variable-length records and variant parts

Enhance the DWARF back-end to emit proper descriptions for
variable-length records as well as variant parts in records.

In order to achieve this, generate DWARF expressions ("location
descriptions" in dwarf2out's parlance) for size and data member location
attributes.  Also match QUAL_UNION_TYPE data types as variant parts,
assuming the formers appear only to implement the latters (which is the
case at the moment: only the Ada front-end emits them).

Note that very few debuggers can handle these descriptions (GDB does not
yet), so in order to ease the the transition enable these only when
-fgnat-encodings=minimal.

gcc/ada/ChangeLog:

* gcc-interface/decl.c (gnat_to_gnu_entity): Disable ___XVS GNAT
encodings when -fgnat-encodings=minimal.
(components_to_record): Disable ___XVE, ___XVN, ___XVU and
___XVZ GNAT encodings when -fgnat-encodings=minimal.
* gcc-interface/utils.c (maybe_pad_type): Disable __XVS GNAT
encodings when -fgnat-encodings=minimal.

gcc/ChangeLog:

* debug.h (struct gcc_debug_hooks): Add a new size_function
hook.
* debug.c (do_nothing_debug_hooks): Set the size_function field
to no-op.
* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
* sdbout.c (sdb_debug_hooks): Likewise.
* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
* stor-layout.c (finalize_size_functions): Let the debug info
back-end know about the implementation of size functions.
* dwarf2out.h (dw_discr_list_ref): New typedef.
(enum dw_val_class): Add value classes for discriminant values
and discriminant lists.
(struct dw_discr_value): New structure.
(struct dw_val_node): Add discriminant values and discriminant
lists to the union.
(struct dw_loc_descr_node): Add frame_offset_rel and
dw_loc_frame_offset (only for checking) fields to handle DWARF
procedures generation.
(struct dw_discr_list_node): New structure.
* dwarf2out.c (dwarf2out_size_function): New.
(dwarf2_debug_hooks): Set the size_function field to
dwarf2out_size_function.
(dwarf2_lineno_debug_hooks): Set the size_function field to
no-op.
(new_loc_descr): Initialize the
dw_loc_frame_offset field.
(dwarf_proc_stack_usage_map): New.
(dw_val_equal_p): Handle discriminants.
(size_of_discr_value): New.
(size_of_discr_list): New.
(size_of_die): Handle discriminants.
(add_loc_descr_to_each): New.
(add_loc_list): New.
(print_discr_value): New.
(print_dw_val): Handle discriminants.
(value_format): Handle discriminants.
(output_discr_value): New.
(output_die): Handle discriminants.
(output_loc_operands): Handle DW_OP_call2 and DW_OP_call4.
(uint_loc_descriptor): New.
(uint_comparison_loc_list): New.
(loc_list_from_uint_comparison): New.
(add_discr_value): New.
(add_discr_list): New.
(AT_discr_list): New.
(loc_descr_to_next_no_op): New.
(free_loc_descr): New.
(loc_descr_without_nops): New.
(struct loc_descr_context): Add a dpi field.
(struct dwarf_procedure_info): New helper structure.
(new_dwarf_proc_die): New.
(is_handled_procedure_type): New.
(resolve_args_picking_1): New.
(resolve_args_picking): New.
(function_to_dwarf_procedure): New.
(copy_dwarf_procedure): New.
(copy_dwarf_procs_ref_in_attrs): New.
(copy_dwarf_procs_ref_in_dies): New.
(break_out_comdat_types): Copy DWARF procedures along with the
types that reference them.
(loc_list_from_tree): Rename into loc_list_from_tree_1.  Handle
CALL_EXPR in the cases suitable for DWARF procedures.  Handle
for PARM_DECL when generating a location description for a DWARF
procedure.  Handle big unsigned INTEGER_CST nodes.  Handle
NON_LVALUE_EXPR, EXACT_DIV_EXPR and all unsigned comparison
operators.  Add a wrapper for loc_list_from_tree that strips
DW_OP_nop operations from the result.
(type_byte_size): New.
(struct vlr_context): New helper structure.
(field_byte_offset): Change signature to return either a
constant offset or a location description for dynamic ones.
Handle dynamic byte offsets with constant bit offsets and handle
fields in variant parts.
(add_data_member_location): Change signature to handle dynamic
member offsets and fields in variant parts.  Update call to
field_byte_offset.  Handle location lists.  Emit a variable data
member location only when -fgnat-encodings=minimal.
(add_bound_info): Emit self-referential bounds only when
-fgnat-encodings=minimal.
(add_byte_size_attribute): Use type_byte_size in order to handle
dynamic type sizes.  Emit variable byte size only when
-fgnat-encodings=minimal and when the target DWARF version
allows them.
(add_bit_offset_attribute): Change signature to handle
variable-length records.  Update call to field_byte_offset.
(gen_descr_array_type_die): Update call to gen_field_die.
Update loc_descr_context literal.
(gen_type_die_for_member): Likewise.
(gen_subprogram_die): Update calls to get_decl_die.
(gen_field_die): Change signature to handle variable-length
records.  Update calls to add_bit_offset_attribute and
add_data_member_location_attribute.
(gen_inheritance_die): Update call to
add_data_member_location_attribute.
(gen_decl_die): Change signature to handle variable-length
records.  Update call to gen_field_die.
(gen_inheritance_die): Change signature to handle
variable-length records.  Update call to
add_data_member_location_attribute.
(is_variant_part): New.
(analyze_discr_in_predicate): New.
(get_discr_value): New.
(analyze_variants_discr): New.
(gen_variant_part): New.
(gen_member_die): Update calls to gen_decl_die.  Call instead
gen_variant_part for variant parts.
(gen_type_die_with_usage): Update calls to gen_decl_die.
(process_scope_var): Likewise.
(force_decl_die): Likewise.
(declare_in_namespace): Likewise.
(dwarf2out_decl): Likewise.
(prune_unused_types_walk_loc_descr): New.
(prune_unused_types_walk_attribs): Mark DIEs referenced by
location descriptions and loc. descr. lists.
(prune_unused_types_walk): Don't mark DWARF procedures by
default.  Mark variant parts since nothing is supposed to
reference them.
(dwarf2out_init): Allocate dwarf_proc_stack_usage_map.
(dwarf2out_c_finalize): Deallocate and reset
dwarf_proc_stack_usage_map.

gcc/testsuite/ChangeLog:

* gnat.dg/specs/debug1.ads: Update the expected number of
DW_AT_artificial attribute in compiler output.

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

8 years agoAdd a flag to control the balance between GNAT encodings and std. DWARF
pmderodat [Thu, 17 Dec 2015 14:09:26 +0000 (14:09 +0000)]
Add a flag to control the balance between GNAT encodings and std. DWARF

In order to accomodate the debugger's support evolution for "new" DWARF
constructs, we need to have an flag that controls the amount of GNAT
encodings/standard DWARF information that is emitted in the debug info.
Propagate this new parameter into the Ada front-end.

gcc/ChangeLog:

* common.opt (gnat_encodings): New variable
(dwarf_gnat_encodings): New enum type.
(fgnat_encodings): New option.
* flag-types.h (enum dwarf_gnat_encodings): New.

gcc/ada/ChangeLog:

* gcc-interface/misc.c (gnat_encodings): Undefine macro and
declare a global variable.
(gnat_post_options): Initialize this global from options.

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

8 years ago * config/isl.m4 (ISL_CHECK_VERSION): Add gmp libs.
nathan [Thu, 17 Dec 2015 13:56:45 +0000 (13:56 +0000)]
* config/isl.m4 (ISL_CHECK_VERSION): Add gmp libs.
* configure: Regenerate.

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

8 years ago2015-12-17 Christian Bruel <christian.bruel@st.com>
chrbr [Thu, 17 Dec 2015 13:56:05 +0000 (13:56 +0000)]
2015-12-17  Christian Bruel  <christian.bruel@st.com>

* tree.h (TYPE_MODE_RAW): New macro.
* tree-streamer-out.c (pack_ts_type_common_value_fields):
Replace TYPE_MODE by TYPE_MODE_RAW.

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

8 years ago PR tree-optimization/68835
jakub [Thu, 17 Dec 2015 13:52:25 +0000 (13:52 +0000)]
PR tree-optimization/68835
* tree.c (get_int_cst_ext_nunits): Return
cst.get_precision () / HOST_BITS_PER_WIDE_INT + 1
for all unsigned wi::neg_p (cst) constants.
(build_new_int_cst): If cst.get_precision is not a multiple
of HOST_BITS_PER_WIDE_INT, zero extend -1 to the precision
% HOST_BITS_PER_WIDE_INT.

* gcc.dg/pr68835-1.c: New test.
* gcc.dg/pr68835-2.c: New test.

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

8 years agoFix wrong PR references
ppalka [Thu, 17 Dec 2015 13:30:04 +0000 (13:30 +0000)]
Fix wrong PR references

PR c++/59878 -> PR c++/59879

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

8 years ago2015-12-17 Richard Biener <rguenther@suse.de>
rguenth [Thu, 17 Dec 2015 12:34:27 +0000 (12:34 +0000)]
2015-12-17  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68951
* tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
Ignore strided non-group accesses.

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

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

8 years ago2015-12-17 Andrew Burgess <andrew.burgess@embecosm.com>
amylaar [Thu, 17 Dec 2015 10:53:43 +0000 (10:53 +0000)]
2015-12-17  Andrew Burgess  <andrew.burgess@embecosm.com>
gcc:
        * config/arc/arc.c (arc_loop_hazard): Don't convert the jump label
        rtx to an rtx_insn until we confirm it's not a return rtx.
gcc/testsuite:
        * gcc.target/arc/loop-hazard-1.c: New file

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

8 years ago2015-12-17 Richard Biener <rguenther@suse.de>
rguenth [Thu, 17 Dec 2015 10:15:03 +0000 (10:15 +0000)]
2015-12-17  Richard Biener  <rguenther@suse.de>

* gimple-ssa.h (struct gimple_df): Remove modified_noreturn_calls
field.
* tree-ssa.c (delete_tree_ssa): Do not zero it.

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

8 years agoOnly support -gstabs on Mac OS X if assember supports it (PR target/67973)
ro [Thu, 17 Dec 2015 09:23:08 +0000 (09:23 +0000)]
Only support -gstabs on Mac OS X if assember supports it (PR target/67973)

gcc:
PR target/67973
* configure.ac (gcc_cv_as_stabs_directive): New test.
* configure: Regenerate.
* config.in: Regenerate.
* config/darwin.h (DBX_DEBUGGING_INFO): Wrap in
HAVE_AS_STABS_DIRECTIVE.
(PREFERRED_DEBUGGING_TYPE): Likewise.
* config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Only include
DBX_DEBUG if HAVE_AS_STABS_DIRECTIVE.

* doc/sourcebuild.texi (Effective-Target Keywords, Environment
attributes): Document stabs.

gcc/testsuite:
PR target/67973
* lib/target-supports.exp (check_effective_target_stabs): New
proc.
* g++.dg/cpp0x/alias-decl-debug-0.C: Restrict to stabs targets.
* g++.dg/other/PR23205.C: Likewise.
* g++.dg/other/pr23205-2.C: Likewise.
* gcc.dg/20040813-1.c: Likewise.
* gcc.dg/darwin-20040809-2.c: Likewise.
* objc.dg/stabs-1.m: Likewise.

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

8 years ago2015-12-17 Andrew Burgess <andrew.burgess@embecosm.com>
amylaar [Thu, 17 Dec 2015 09:04:35 +0000 (09:04 +0000)]
2015-12-17  Andrew Burgess  <andrew.burgess@embecosm.com>

        * gcc.target/arc/jump-around-jump.c (rtc_set_time): Declare.

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

8 years ago2015-12-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
thopre01 [Thu, 17 Dec 2015 08:43:48 +0000 (08:43 +0000)]
2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    Revert:
    2015-12-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    PR testsuite/68629
    * lib/target-supports.exp (check_effective_target_cilkplus): Also
    check that compiling with -fcilkplus does not give an error.
    * c-c++-common/attr-simd-3.c: Require cilkplus effective target.

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

8 years agoFix some blockers of PR c++/24666 (arrays decay to pointers too early)
ppalka [Thu, 17 Dec 2015 04:01:47 +0000 (04:01 +0000)]
Fix some blockers of PR c++/24666 (arrays decay to pointers too early)

gcc/cp/ChangeLog:

PR c++/16333
PR c++/41426
PR c++/59878
PR c++/66895
* typeck.c (convert_for_initialization): Don't perform an early
decaying conversion if converting to a class type.

gcc/testsuite/ChangeLog:

PR c++/16333
PR c++/41426
PR c++/59878
PR c++/66895
* g++.dg/conversion/pr16333.C: New test.
* g++.dg/conversion/pr41426.C: New test.
* g++.dg/conversion/pr59878.C: New test.
* g++.dg/conversion/pr66895.C: New test.

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

8 years agoAvoid code duplication in cp_tree_[operand|code]_length
ppalka [Thu, 17 Dec 2015 03:46:27 +0000 (03:46 +0000)]
Avoid code duplication in cp_tree_[operand|code]_length

gcc/cp/ChangeLog:

* tree.c (cp_tree_operand_length): Define in terms of
cp_tree_code_length.

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

8 years agoCorrect ChangeLogs for PR c++/42121 and related.
msebor [Thu, 17 Dec 2015 01:38:35 +0000 (01:38 +0000)]
Correct ChangeLogs for PR c++/42121 and related.

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

8 years agoPR c/68868 - atomic_init emits an unnecessary fence
msebor [Thu, 17 Dec 2015 01:33:41 +0000 (01:33 +0000)]
PR c/68868 - atomic_init emits an unnecessary fence

gcc/ChangeLog
* ginclude/stdatomic.h (atomic_init): Use atomic_store instead
of plain assignment.
gcc/testsuite/ChangeLog
* testsuite/gcc.dg/atomic/stdatomic-init.c: New test.

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

8 years ago[gcc]
meissner [Thu, 17 Dec 2015 01:01:24 +0000 (01:01 +0000)]
[gcc]
2015-12-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/68805
* config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use ROTATE
instead of VEC_SELECT for TImode.

* config/rs6000/vsx.md (VSX_LE): Move TImode from VSX_LE to
VSX_LE_128, so that we use ROTATE to swap the 64-bit words instead
of using VEC_SELECT.
(VSX_LE_128): Likewise.
(define_peephole2): Add peephole to eliminate double xxpermdi when
copying TImode.

[gcc/testsuite]
2015-12-15  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/68805
* gcc.target/powerpc/pr68805.c: New test.

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

8 years agoDaily bump.
gccadmin [Thu, 17 Dec 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.

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

8 years ago PR target/68779
danglin [Thu, 17 Dec 2015 00:11:55 +0000 (00:11 +0000)]
PR target/68779
* config/pa/pa.md (atomic_loaddi): Honor -mdisable-fpregs.
(atomic_loaddi_1): Likewise.
(atomic_storedi): Likewise.
(atomic_storedi_1): Likewise.
(atomic_loaddf): Likewise.
(atomic_loaddf_1): Likewise.
(atomic_storedf): Likewise.
(atomic_storedf_1): Likewise.
Move all atomic patterns to end of file.

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

8 years agoPR objc++/68932 - FAIL: obj-c++.dg/property/at-property-23.mm -fgnu-runtime
msebor [Wed, 16 Dec 2015 23:56:27 +0000 (23:56 +0000)]
PR objc++/68932  - FAIL: obj-c++.dg/property/at-property-23.mm -fgnu-runtime
                   (internal compiler error)

cp/
* decl.c (grokdeclarator): Avoid assuming ctype is non-null when
checking the validity of a flexible array member.

testsuite/
* obj-c++.dg/property/at-property-23.mm: Remove check for
an error message.

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

8 years agoattach schedule tree to the scop
spop [Wed, 16 Dec 2015 23:40:06 +0000 (23:40 +0000)]
attach schedule tree to the scop

we used to translate the just computed schedule tree into a union_map,
and then in the code generation it would be translated back to a schedule tree
just before generating AST code.

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

8 years ago2015-12-16 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Wed, 16 Dec 2015 21:45:14 +0000 (21:45 +0000)]
2015-12-16  Paolo Carlini  <paolo.carlini@oracle.com>

* pt.c (comp_template_args): Remove.
(comp_template_args_with_info): Rename to comp_template_args;
not static.
(add_pending_template): Adjust call.
* cp-tree.h (comp_template_args): Add default arguments.

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

8 years ago * ipa-visibility.c (can_replace_by_local_alias): Make static,
nathan [Wed, 16 Dec 2015 21:05:39 +0000 (21:05 +0000)]
* ipa-visibility.c (can_replace_by_local_alias): Make static,
check ASM_OUTPUT_DEF.
(can_replace_by_local_alias_in_vtable): Make static.
(function_and_variable_visibility): Reformat overlong comment.

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

8 years ago * ree.c (add_removable_extension): Use reg_overlap_mentioned_p
law [Wed, 16 Dec 2015 20:34:31 +0000 (20:34 +0000)]
* ree.c (add_removable_extension): Use reg_overlap_mentioned_p
rather than testing hard register #s.

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

8 years ago * config/nvptx/nvptx.h (OUTGOING_STATIC_CHAIN_REGNUM): Remove.
nathan [Wed, 16 Dec 2015 20:02:02 +0000 (20:02 +0000)]
* config/nvptx/nvptx.h (OUTGOING_STATIC_CHAIN_REGNUM): Remove.
(REGISTER_NAMES): Adjust.
* config/nvptx/nvptx.c (nvptx_pass_by_reference): Avoid long line.
(nvptx_static_hain): Delete.
(write_arg_mode): Don't emit initializer if argno < 0.
(write_arg_type): Fix whitespace.
(init_frame): Initialize reg to zero if frame is zero-sized.
(nvptx_declare_function_name):  Use write_arg_type to emit chain
decl.
(nvptx_output_call_insn): Adjust static chain emission.
(nvptx_goacc_reduction): Make static.
(TARGET_STATIC_CHAIN): Don't override.

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

8 years ago * gcc.dg/tree-ssa/pr68619-4.c: Change size of code bitfield.
law [Wed, 16 Dec 2015 18:53:25 +0000 (18:53 +0000)]
* gcc.dg/tree-ssa/pr68619-4.c: Change size of code bitfield.

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

8 years ago PR c++/68309
jason [Wed, 16 Dec 2015 18:22:23 +0000 (18:22 +0000)]
PR c++/68309
* pt.c (instantiate_decl): Revert earlier change.

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

8 years ago PR c++/63628
jason [Wed, 16 Dec 2015 18:22:17 +0000 (18:22 +0000)]
PR c++/63628
* pt.c (tsubst_pack_expansion): Also make dummy decls if
retrieve_local_specialization fails.

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

8 years agoBetter error recovery for merge-conflict markers
dmalcolm [Wed, 16 Dec 2015 18:15:01 +0000 (18:15 +0000)]
Better error recovery for merge-conflict markers

gcc/c-family/ChangeLog:
* c-common.h (conflict_marker_get_final_tok_kind): New prototype.
* c-lex.c (conflict_marker_get_final_tok_kind): New function.

gcc/c/ChangeLog:
* c-parser.c (struct c_parser): Expand array "tokens_buf" from 2
to 4.
(c_parser_peek_nth_token): New function.
(c_parser_peek_conflict_marker): New function.
(c_parser_error): Detect conflict markers and report them as such.

gcc/cp/ChangeLog:
* parser.c (cp_lexer_peek_conflict_marker): New function.
(cp_parser_error): Detect conflict markers and report them as
such.

gcc/testsuite/ChangeLog:
* c-c++-common/conflict-markers-1.c: New testcase.
* c-c++-common/conflict-markers-2.c: Likewise.
* c-c++-common/conflict-markers-3.c: Likewise.
* c-c++-common/conflict-markers-4.c: Likewise.
* c-c++-common/conflict-markers-5.c: Likewise.
* c-c++-common/conflict-markers-6.c: Likewise.
* c-c++-common/conflict-markers-7.c: Likewise.
* c-c++-common/conflict-markers-8.c: Likewise.
* c-c++-common/conflict-markers-9.c: Likewise.
* c-c++-common/conflict-markers-10.c: Likewise.
* c-c++-common/conflict-markers-11.c: Likewise.
* g++.dg/conflict-markers-1.C: Likewise.

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

8 years agoAdd missing changelog entry
spop [Wed, 16 Dec 2015 17:35:48 +0000 (17:35 +0000)]
Add missing changelog entry

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

8 years agoC FE: fix range of primary-expression in c_parser_postfix_expression
dmalcolm [Wed, 16 Dec 2015 17:34:27 +0000 (17:34 +0000)]
C FE: fix range of primary-expression in c_parser_postfix_expression

gcc/c/ChangeLog:
* c-parser.c (c_parser_postfix_expression): Use EXPR_LOC_OR_LOC
to preserve range information for the primary expression
in the call to c_parser_postfix_expression_after_primary.

gcc/testsuite/ChangeLog:
* gcc.dg/cast-function-1.c (bar): Update column numbers.
* gcc.dg/diagnostic-range-bad-called-object.c: New test case.

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

8 years agoRemove individial dependence pointers and add a scop::dependence to contain all the...
spop [Wed, 16 Dec 2015 17:33:07 +0000 (17:33 +0000)]
Remove individial dependence pointers and add a scop::dependence to contain all the dependence.

Removed the member variables which are only used in scop_get_dependence. Instead
only maintaining the overall dependence. Passes regtest and bootstrap.

gcc/ChangeLog:

2015-12-15  hiraditya  <hiraditya@msn.com>

        * graphite-dependences.c (scop_get_dependences): Use local pointers.
        * graphite-isl-ast-to-gimple.c(translate_isl_ast_to_gimple::scop_to_isl_ast):
          Use scop->dependence.
        * graphite-optimize-isl.c (optimize_isl): Same.
        * graphite-poly.c (new_scop): Remove initialization of removed members.
        (free_scop): Same.
        * graphite.h (struct scop): Remove individial dependence pointers and
        add a scop::dependence to contain all the dependence.

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

8 years agoUse refs instead of values.
spop [Wed, 16 Dec 2015 17:33:00 +0000 (17:33 +0000)]
Use refs instead of values.

Passes bootstrap and regtest.

gcc/ChangeLog:

2015-12-15  hiraditya  <hiraditya@msn.com>

        * graphite-sese-to-poly.c (build_poly_sr): Use refs.

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

8 years agoupdate required isl version
spop [Wed, 16 Dec 2015 17:27:57 +0000 (17:27 +0000)]
update required isl version

we check for a the isl compute timeout function added in isl 0.13.
That means GCC could still be configured with isl 0.13, 0.14, and 0.15.

* config/isl.m4 (ISL_CHECK_VERSION): Check for
isl_ctx_get_max_operations.
* configure: Regenerate.

gcc/
* config.in: Regenerate.
* configure: Regenerate.
* configure.ac: Remove checks for functions that exist in isl 0.13 or
later.
* graphite-isl-ast-to-gimple.c: Remove #ifdefs and code for isl 0.12.
        * graphite-optimize-isl.c: Same.
* graphite-poly.c: Same.
* graphite-sese-to-poly.c: Same.
* graphite.h: Add comment for isl 0.14.
* toplev.c (print_version): Print isl version.

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

8 years ago * ipa-cp.c (ipa_get_indirect_edge_target_1): Use can_refer; do not
hubicka [Wed, 16 Dec 2015 17:26:20 +0000 (17:26 +0000)]
* ipa-cp.c (ipa_get_indirect_edge_target_1): Use can_refer; do not
speculate to impossible targets.
* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.

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

8 years agoC FE: use correct location range for static assertions
dmalcolm [Wed, 16 Dec 2015 17:25:45 +0000 (17:25 +0000)]
C FE: use correct location range for static assertions

gcc/c/ChangeLog:
* c-parser.c (c_parser_static_assert_declaration_no_semi): Use the
expression location, falling back on the first token location,
rather than always using the latter.

gcc/testsuite/ChangeLog:
* gcc.dg/diagnostic-range-static-assert.c: New test case.

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

8 years agoadd more dumps on data dependence graph
spop [Wed, 16 Dec 2015 17:24:25 +0000 (17:24 +0000)]
add more dumps on data dependence graph

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

8 years ago PR c/64637
mpolacek [Wed, 16 Dec 2015 16:50:07 +0000 (16:50 +0000)]
PR c/64637
* c-typeck.c (c_process_expr_stmt): Use location of the expression if
available.

* gcc.dg/pr64637.c: New test.

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

8 years ago * gcc.dg/sibcall-9.c: Xfail for nvptx.
nathan [Wed, 16 Dec 2015 16:47:05 +0000 (16:47 +0000)]
* gcc.dg/sibcall-9.c: Xfail for nvptx.

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

8 years ago[AArch64] Properly cost zero_extend+ashift forms of ubfi[xz]
ktkachov [Wed, 16 Dec 2015 15:49:42 +0000 (15:49 +0000)]
[AArch64] Properly cost zero_extend+ashift forms of ubfi[xz]

* config/aarch64/aarch64.c (aarch64_extend_bitfield_pattern_p):
New function.
(aarch64_rtx_costs, ZERO_EXTEND, SIGN_EXTEND cases): Use the above
to handle extend+shift rtxes.

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

8 years ago2015-12-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Wed, 16 Dec 2015 15:24:52 +0000 (15:24 +0000)]
2015-12-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * unwind-generic.h (_Unwind_GetTextRelBase): Call __builtin_abort
        instead of abort to avoid dependency on stdlib.h.

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

8 years ago[AArch64] PR target/68696 FAIL: gcc.target/aarch64/vbslq_u64_1.c scan-assembler-times...
ktkachov [Wed, 16 Dec 2015 15:03:44 +0000 (15:03 +0000)]
[AArch64] PR target/68696 FAIL: gcc.target/aarch64/vbslq_u64_1.c scan-assembler-times bif\tv 1

        PR target/68696
        * config/aarch64/aarch64-simd.md (*aarch64_simd_bsl<mode>_alt):
        New pattern.
        (aarch64_simd_bsl<mode>_internal): Update comment to reflect
        the above.

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

8 years ago2015-12-16 Richard Biener <rguenther@suse.de>
rguenth [Wed, 16 Dec 2015 14:56:10 +0000 (14:56 +0000)]
2015-12-16  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68870
* tree-cfgcleanup.c (cleanup_control_expr_graph): Add first_p
parameter, if set only perform trivial constant folding.
Queue other blocks with conditions for later processing.
(cleanup_control_flow_bb): Add first_p parameter and pass it through.
(cleanup_tree_cfg_1): Pass true for the first iteration
cleanup_control_expr_graph.

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

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

8 years ago * config/nvptx/nvptx-protos.h (nvptx_hard_regno_mode_ok): Delete.
nathan [Wed, 16 Dec 2015 13:51:36 +0000 (13:51 +0000)]
* config/nvptx/nvptx-protos.h (nvptx_hard_regno_mode_ok): Delete.
* config/nvptx/nvptx.h (struct machine_function):
Reimplement. Adjust all users.
* config/nvptx/nvptx.c (nvptx_declare_function_name): Move stack
and frame array generation earlier.
(nvptx_call_args): Reimplement.
(nvptx_expand_call): Adjust.
(nvptx_hard_reno_mode_ok): Delete.
(nvptx_reorg): Revert scan of hard regs.

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

8 years agoAdd pass_oacc_ipa
vries [Wed, 16 Dec 2015 13:49:07 +0000 (13:49 +0000)]
Add pass_oacc_ipa

2015-12-16  Tom de Vries  <tom@codesourcery.com>

* opts.c (default_options_optimization): Set fipa-pta on by default for
fopenacc.
* passes.def: Move kernels pass group to pass_ipa_oacc.
* tree-pass.h (make_pass_oacc_kernels2): Remove.
(make_pass_ipa_oacc, make_pass_ipa_oacc_kernels): Declare.
* tree-ssa-loop.c (pass_oacc_kernels2, make_pass_oacc_kernels2): Remove.
(pass_ipa_oacc, pass_ipa_oacc_kernels): New pass.
(make_pass_ipa_oacc, make_pass_ipa_oacc_kernels): New function.
* tree-ssa-structalias.c (pass_ipa_pta::clone): New function.

* g++.dg/ipa/devirt-37.C: Update for new fre2 pass.
* g++.dg/ipa/devirt-40.C: Same.
* g++.dg/tree-ssa/pr61034.C: Same.
* gcc.dg/ipa/ipa-pta-1.c: Update for new pta1 pass.
* gcc.dg/ipa/ipa-pta-10.c: Same.
* gcc.dg/ipa/ipa-pta-11.c: Same.
* gcc.dg/ipa/ipa-pta-14.c: Same.
* gcc.dg/ipa/ipa-pta-16.c: Same.
* gcc.dg/ipa/ipa-pta-2.c: Same.
* gcc.dg/ipa/ipa-pta-5.c: Same.
* gcc.dg/ipa/ipa-pta-6.c: Same.
* gcc.dg/torture/ipa-pta-1.c: Same.
* gcc.dg/ipa/ipa-pta-13.c: Update for new fre2 and pta1 pass.
* gcc.dg/ipa/ipa-pta-3.c: Same.
* gcc.dg/ipa/ipa-pta-4.c: Same.

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

8 years ago2015-12-16 Richard Biener <rguenther@suse.de>
rguenth [Wed, 16 Dec 2015 13:45:40 +0000 (13:45 +0000)]
2015-12-16  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68861
* tree-vect-slp.c (vect_build_slp_tree): Properly handle
duplicate stmts when applying swapping to stmts.

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

8 years agogcc/
kyukhin [Wed, 16 Dec 2015 13:43:56 +0000 (13:43 +0000)]
gcc/
* config/i386/i386-c.c (ix86_target_macros_internal): Remove
duplicate check (__CLZERO__).

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

8 years ago2015-12-16 Richard Biener <rguenther@suse.de>
rguenth [Wed, 16 Dec 2015 12:37:02 +0000 (12:37 +0000)]
2015-12-16  Richard Biener  <rguenther@suse.de>

PR testsuite/68915
* gcc.dg/vect/pr46032.c: Use dg-additional-options.

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

8 years ago[ARM] Add ACLE intrinsics vqrdmlah_lane and vqrdmlsh_lane
mwahab [Wed, 16 Dec 2015 12:21:47 +0000 (12:21 +0000)]
[ARM] Add ACLE intrinsics vqrdmlah_lane and vqrdmlsh_lane

* config/arm/arm_neon.h (vqrdmlahq_lane_s16): New.
(vqrdmlahq_lane_s32): New.
(vqrdmlah_lane_s16): New.
(vqrdmlah_lane_s32): New.
(vqrdmlshq_lane_s16): New.
(vqrdmlshq_lane_s32): New.
(vqrdmlsh_lane_s16): New.
(vqrdmlsh_lane_s32): New.
* config/arm/arm_neon_builtins.def: Add "vqrdmlah_lane" and
"vqrdmlsh_lane".

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

8 years ago[ARM] Add ACLE intrinsics vqrdmlah and vqrdmlsh
mwahab [Wed, 16 Dec 2015 12:16:13 +0000 (12:16 +0000)]
[ARM] Add ACLE intrinsics vqrdmlah and vqrdmlsh

* config/arm/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New.
(vqrdmlahq_s16, vqrdmlahq_s32): New.
(vqrdmlsh_s16, vqrdmlsh_s32): New.
(vqrdmlahq_s16, vqrdmlshq_s32): New.
* config/arm/arm_neon_builtins.def: Add "vqrdmlah" and "vqrdmlsh".

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

8 years ago2015-12-16 Richard Biener <rguenther@suse.de>
rguenth [Wed, 16 Dec 2015 12:13:05 +0000 (12:13 +0000)]
2015-12-16  Richard Biener  <rguenther@suse.de>

PR testsuite/68916
PR testsuite/68914
* gcc.dg/vect/pr45752.c: Require vect_perm and adjust expected
dump.
* gcc.dg/vect/slp-perm-4.c: Likewise.

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

8 years ago[Testsuite] Support ARMv8.1 ARM tests.
mwahab [Wed, 16 Dec 2015 12:10:59 +0000 (12:10 +0000)]
[Testsuite] Support ARMv8.1 ARM tests.

testsuite/
* lib/target-supports.exp (add_options_for_arm_v8_1a_neon): Update
comment.  Use check_effective_target_arm_v8_1a_neon_ok to select
the command line options.
(check_effective_target_arm_v8_1a_neon_ok_nocache): Update initial
test to allow ARM targets.  Select and record a working set of
command line options.
(check_effective_target_arm_v8_1a_neon_hw): Add tests for ARM
targets.

gcc/
* doc/sourcebuild.texi (ARM-specific attributes): Add
"arm_v8_1a_neon_ok" and "arm_v8_1a_neon_hw".

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

8 years ago[ARM] Add ACLE feature macro for ARMv8.1 instructions.
mwahab [Wed, 16 Dec 2015 12:02:15 +0000 (12:02 +0000)]
[ARM] Add ACLE feature macro for ARMv8.1 instructions.

* config/arm/arm-c.c (arm_cpu_builtins): Define
__ARM_FEATURE_QRDMX.  Clean up some trailing whitespace.

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

8 years ago[ARM] Add patterns for new instructions
mwahab [Wed, 16 Dec 2015 11:56:21 +0000 (11:56 +0000)]
[ARM] Add patterns for new instructions

* config/arm/iterators.md (VQRDMLH_AS): New.
(neon_rdma_as): New.
* config/arm/neon.md
(neon_vqrdml<VQRDMLH_AS:neon_rdma_as>h<mode>): New.
(neon_vqrdml<VQRDMLH_AS:neon_rdma_as>h_lane<mode>): New.
* config/arm/unspecs.md (UNSPEC_VQRDMLAH): New.
(UNSPEC_VQRDMLSH): New.

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

8 years ago[ARM] Multilib support for ARMv8.1.
mwahab [Wed, 16 Dec 2015 11:50:43 +0000 (11:50 +0000)]
[ARM] Multilib support for ARMv8.1.

* config/arm/t-aprofile: Make "armv8.1-a" and "armv8.1-a+crc"
matches for "armv8-a".

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

8 years ago[ARM] Add support for ARMv8.1.
mwahab [Wed, 16 Dec 2015 11:45:25 +0000 (11:45 +0000)]
[ARM] Add support for ARMv8.1.

* config/arm/arm-arches.def: Add "armv8.1-a" and "armv8.1-a+crc".
* config/arm/arm-protos.h (FL2_ARCH8_1): New.
(FL2_FOR_ARCH8_1A): New.
* config/arm/arm-tables.opt: Regenerate.
* config/arm/arm.c (arm_arch8_1): New.
(arm_option_override): Set arm_arch8_1.
* config/arm/arm.h (TARGET_NEON_RDMA): New.
(arm_arch8_1): Declare.
* doc/invoke.texi (ARM Options, -march): Add "armv8.1-a" and
"armv8.1-a+crc".
(ARM Options, -mfpu): Fix a typo.

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

8 years agolibstdc++/68921 add timeout argument to futex(2)
redi [Wed, 16 Dec 2015 10:40:04 +0000 (10:40 +0000)]
libstdc++/68921 add timeout argument to futex(2)

PR libstdc++/68921
* src/c++11/futex.cc
(__atomic_futex_unsigned_base::_M_futex_wait_until): Use null pointer
as timeout argument.

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

8 years ago[ARM] PR target/68648: Fold NOT of CONST_INT in andsi_iorsi3_notsi splitter
ktkachov [Wed, 16 Dec 2015 10:01:48 +0000 (10:01 +0000)]
[ARM] PR target/68648: Fold NOT of CONST_INT in andsi_iorsi3_notsi splitter

PR target/68648
* config/arm/arm.md (*andsi_iorsi3_notsi): Try to simplify
the complement of operands[3] during splitting.

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

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

8 years ago2015-12-16 Richard Biener <rguenther@suse.de>
rguenth [Wed, 16 Dec 2015 09:21:04 +0000 (09:21 +0000)]
2015-12-16  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68892
* tree-vect-slp.c (vect_analyze_slp_cost_1): Properly compute
cost for permuted loads.

* gcc.dg/vect/bb-slp-pr68892.c: New testcase.

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

8 years ago PR rtl-optimization/65980
jakub [Wed, 16 Dec 2015 08:04:31 +0000 (08:04 +0000)]
PR rtl-optimization/65980
* jump.c (rtx_renumbered_equal_p) <case LABEL_REF>: Use
next_nonnote_nondebug_insn instead of next_real_insn and
skip over CODE_LABELs too.

* gcc.dg/pr65980.c: New test.

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

8 years ago PR lto/68878
hubicka [Wed, 16 Dec 2015 04:58:13 +0000 (04:58 +0000)]
PR lto/68878
* lto-symtab.c (lto_symtab_prevailing_virtual_decl): New function.
* lto-symtab.h (lto_symtab_prevailing_virtual_decl): Declare.
(lto_symtab_prevailing_decl): Use it.

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

8 years ago * symtab.c (symtab_node::fixup_same_cpp_alias_visibility):
hubicka [Wed, 16 Dec 2015 04:56:34 +0000 (04:56 +0000)]
* symtab.c (symtab_node::fixup_same_cpp_alias_visibility):
Do not copy DECL_VIRTUAL_P.

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

8 years agoDaily bump.
gccadmin [Wed, 16 Dec 2015 00:16:13 +0000 (00:16 +0000)]
Daily bump.

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

8 years agogcc/testsuite/ChangeLog:
msebor [Tue, 15 Dec 2015 21:04:08 +0000 (21:04 +0000)]
gcc/testsuite/ChangeLog:
2015-12-15  Martin Sebor  <msebor@redhat.com>

c++/42121
c++/68478
c++/68613
c++/68689
c++/68710
* g++.dg/compat/struct-layout-1_generate.c: Avoid generating
further fields after the first flexible array member.
* g++.dg/ext/flexary2.C: Expect a sole flexible array member
to be rejected.  Add a test case exercising zero-length array.
* g++.dg/ext/flexary3.C: Expect a sole flexible array member
to be rejected.
* g++.dg/ext/flexary.h: New file.
* g++.dg/ext/flexary4.C: New file.
* g++.dg/ext/flexary5.C: New file.
* g++.dg/ext/flexary6.C: New file.
* g++.dg/ext/flexary7.C: New file.
* g++.dg/ext/flexary8.C: New file.
* g++.dg/other/dump-ada-spec-2.C: Adjust to reflect flexible
array members.
* g++.dg/parse/pr43765.C: Add a member to make a struct with
a flexible array member valid.  Adjust expected error message.
* g++.dg/torture/pr64280.C: Expect a sole flexible array member
to be rejected.
* g++.dg/torture/pr64312.C: Add a member to make a struct with
a flexible array member valid.
* g++.dg/ubsan/object-size-1.C: Adjust expected diagnostic.

gcc/cp/ChangeLog:
2015-12-15  Martin Sebor  <msebor@redhat.com>

c++/42121
c++/68478
c++/68613
c++/68689
c++/68710
* class.c (walk_subobject_offsets): Avoid assuming type domain
is non-null or has an upper bound.
(layout_class_type): Include type size in error message.
(flexmems_t): New type.
(field_nonempty_p, find_flexarrays, diagnose_flexarrays)
(check_flexarrays): New functions.
(finish_struct_1): Call check_flexarrays.
* decl.c (compute_array_index_type): Distinguish flexible array
members from zero-length arrays.
(grokdeclarator): Reject flexible array members in unions.  Avoid
rejecting members of incomplete types that are flexible array members.
* error.c (dump_type_suffix): Handle flexible array members with null
upper bound.
* init.c (perform_member_init): Same.
* pt.c (instantiate_class_template_1): Allow flexible array members.
(tsubst): Handle flexible array members with null upper bound.
* typeck2.c (digest_init_r): Warn for initialization of flexible
array members.
(process_init_constructor_record): Handle flexible array members.

gcc/ChangeLog:
2015-12-15  Martin Sebor  <msebor@redhat.com>

c++/42121
* tree-chkp.c (chkp_find_bound_slots_1): Handle flexible array
members.
* tree.c (type_contains_placeholder_1): Avoid assuming type has
a non-null domain or an upper bound to handle flexible array
members.
* varasm.c (output_constructor_regular_field):  Same.
(output_constructor): Set min_index to integer_zero_node rather
than null when a type has no domain to avoid crashing later.

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