gcc.git
9 years agoAdd --enable-default-pie option to GCC configure
H.J. Lu [Thu, 28 May 2015 02:36:55 +0000 (19:36 -0700)]
Add --enable-default-pie option to GCC configure

Add --enable-default-pie option to configure GCC to generate PIE by
default.

gcc/

* Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
(BUILD_CFLAGS): Likewise.
(BUILD_CXXFLAGS): Likewise.
(LINKER): Add @NO_PIE_FLAG@.
(BUILD_LDFLAGS): Likewise.
(libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
--enable-default-pie.
* common.opt (fPIE): Initialize to -1.
(fpie): Likewise.
(no-pie): New option.
(pie): Replace "Negative(shared)" with "Negative(no-pie)".
* configure.ac: Add --enable-default-pie.
(NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
(NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
* defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
* gcc.c (NO_PIE_SPEC): New.
(PIE_SPEC): Likewise.
(NO_FPIE1_SPEC): Likewise.
(FPIE1_SPEC): Likewise.
(NO_FPIE2_SPEC): Likewise.
(FPIE2_SPEC): Likewise.
(NO_FPIE2_SPEC): Likewise.
(FPIE_SPEC): Likewise.
(NO_FPIE_SPEC): Likewise.
(NO_FPIC1_SPEC): Likewise.
(FPIC1_SPEC): Likewise.
(NO_FPIC2_SPEC): Likewise.
(FPIC2_SPEC): Likewise.
(NO_FPIC2_SPEC): Likewise.
(FPIC_SPEC): Likewise.
(NO_FPIC_SPEC): Likewise.
(NO_FPIE1_AND_FPIC1_SPEC): Likewise.
(FPIE1_OR_FPIC1_SPEC): Likewise.
(NO_FPIE2_AND_FPIC2_SPEC): Likewise.
(FPIE2_OR_FPIC2_SPEC): Likewise.
(NO_FPIE_AND_FPIC_SPEC): Likewise.
(FPIE_OR_FPIC_SPEC): Likewise.
(LD_PIE_SPEC): Likewise.
(LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
* opts.c (finish_options): Update opts->x_flag_pie if it is -1.
* config/darwin.h (PIE_SPEC): Renamed to ...
(DARWIN_PIE_SPEC): This.
(LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
* config/darwin9.h (PIE_SPEC): Renamed to ...
(DARWIN_PIE_SPEC): This.
* config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
* config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
FPIE2_OR_FPIC2_SPEC.
* config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
* config/m68k/openbsd.h (ASM_SPEC): Likewise.
* gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
* config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
* config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
* config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
* config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
* config/m32r/m32r.h (ASM_SPEC): Likewise.
* config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
* config/rs6000/linux64.h (ASM_SPEC32): Likewise.
* config/rs6000/sysv4.h (ASM_SPEC): Likewise.
* config/sparc/freebsd.h (ASM_SPEC): Likewise.
* config/sparc/linux.h (ASM_SPEC): Likewise.
* config/sparc/linux64.h (ASM_SPEC): Likewise.
* config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
* config/sparc/openbsd64.h (ASM_SPEC): Likewise.
* config/sparc/sp-elf.h (ASM_SPEC): Likewise.
* config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
* config/sparc/sparc.h (ASM_SPEC): Likewise.
* config/sparc/sysv4.h (ASM_SPEC): Likewise.
* config/sparc/vxworks.h (ASM_SPEC): Likewise.
* config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
* config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
* config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
(ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
* config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and
NO_FPIC_SPEC.
* config/mips/gnu-user.h (NO_SHARED_SPECS): Use
NO_FPIE_AND_FPIC_SPEC.
* config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
* config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
* config/rs6000/vxworks.h (ASM_SPEC): Likewise.
* config/vax/linux.h (ASM_SPEC): Likewise.
* doc/install.texi: Document --enable-default-pie.
* doc/invoke.texi: Document -no-pie.
* config.in: Regenerated.
* configure: Likewise.

gcc/ada/

* gcc-interface/Makefile.in (TOOLS_LIBS): Add @NO_PIE_FLAG@.

libgcc/

* Makefile.in (CRTSTUFF_CFLAGS): Add $(NO_PIE_CFLAGS).

From-SVN: r223796

9 years agoFix PR66168
Thomas Preud'homme [Thu, 28 May 2015 02:15:03 +0000 (02:15 +0000)]
Fix PR66168

From-SVN: r223795

9 years agore PR target/66148 (build/genpreds: Internal error: abort in choose_enum_order, at...
John David Anglin [Thu, 28 May 2015 01:09:59 +0000 (01:09 +0000)]
re PR target/66148 (build/genpreds: Internal error: abort in choose_enum_order, at genpreds.c:1006)

PR target/66148
* config/pa/pa.c (pa_emit_move_sequence): Correct placement of
REG_EQUAL note when doing insert.

From-SVN: r223791

9 years agopa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of "%d" for 'o' operand.
John David Anglin [Thu, 28 May 2015 00:36:08 +0000 (00:36 +0000)]
pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of "%d" for 'o' operand.

* config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
instead of "%d" for 'o' operand.

From-SVN: r223790

9 years agoDaily bump.
GCC Administrator [Thu, 28 May 2015 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r223788

9 years agore PR target/39726 ([cond-optab] ColdFire pessimizations on QImode/HImode tests)
Jeff Law [Wed, 27 May 2015 21:13:25 +0000 (15:13 -0600)]
re PR target/39726 ([cond-optab] ColdFire pessimizations on QImode/HImode tests)

        PR target/39726
        * gcc.dg/target/m68k/pr39726-1.c: New test.

From-SVN: r223781

9 years agowait.h (gomp_futex_wait, [...]): Declare as int.
Uros Bizjak [Wed, 27 May 2015 21:07:09 +0000 (23:07 +0200)]
wait.h (gomp_futex_wait, [...]): Declare as int.

2015-05-27  Uros Bizjak  <ubizjak@gmail.com>

* config/linux/wait.h (gomp_futex_wait, gomp_futex_wake):
Declare as int.
(FUTEX_PRIVATE_FLAG): Remove L suffix.
* config/linux/mutex.c (gomp_futex_wait, gomp_futex_wake):
Declare as int.

2015-05-27  Uros Bizjak  <ubizjak@gmail.com>

* config/linux/ia64/futex.h (sys_futex0) Change operand "op" to int.

2015-05-27  Uros Bizjak  <ubizjak@gmail.com>

Revert:
* config/linux/x86/futex.h (sys_futex0) [!__x86_64__]:
Change operand "op" to long.

From-SVN: r223780

9 years agodecl.c (check_redeclaration_exception_specification): Depend on -Wsystem-headers...
Jason Merrill [Wed, 27 May 2015 20:53:06 +0000 (16:53 -0400)]
decl.c (check_redeclaration_exception_specification): Depend on -Wsystem-headers rather than -pedantic.

* decl.c (check_redeclaration_exception_specification): Depend on
-Wsystem-headers rather than -pedantic.

From-SVN: r223778

9 years agodecl.c (warn_extern_redeclared_static): Use the location of newdecl in diagnostics...
Jason Merrill [Wed, 27 May 2015 20:52:55 +0000 (16:52 -0400)]
decl.c (warn_extern_redeclared_static): Use the location of newdecl in diagnostics, not input_location.

* decl.c (warn_extern_redeclared_static): Use the location of
newdecl in diagnostics, not input_location.
(validate_constexpr_redeclaration): Likewise.
(check_redeclaration_no_default_args): Likewise.
(duplicate_decls): Likewise.
(check_redeclaration_exception_specification): Likewise.
Change second diagnostic to inform.

From-SVN: r223777

9 years agoapply to correct changelog
Nathan Sidwell [Wed, 27 May 2015 20:42:29 +0000 (20:42 +0000)]
apply to correct changelog

From-SVN: r223775

9 years ago* warnings.m4: Fix comment.
Jason Merrill [Wed, 27 May 2015 20:40:38 +0000 (16:40 -0400)]
* warnings.m4: Fix comment.

From-SVN: r223774

9 years agore PR c++/66270 (ICE: canonical types differ for identical types)
Nathan Sidwell [Wed, 27 May 2015 20:36:14 +0000 (20:36 +0000)]
re PR c++/66270 (ICE: canonical types differ for identical types)

PR c++/66270
* tree.c (build_pointer_type_for_mode): Canonical type does not
inherit can_alias_all.
(build_reference_type_for_mode): Likewise.

PR c++/66270
* g++.dg/ext/alias-canon3.C: New.

From-SVN: r223773

9 years agotrans.c (elaborate_all_entities): Do not elaborate an incomplete type coming from...
Eric Botcazou [Wed, 27 May 2015 19:57:43 +0000 (19:57 +0000)]
trans.c (elaborate_all_entities): Do not elaborate an incomplete type coming from a limited_with and whose...

* gcc-interface/trans.c (elaborate_all_entities): Do not elaborate an
incomplete type coming from a limited_with and whose non-limited view
comes from the main unit.

From-SVN: r223772

9 years agofutex.h (sys_futex0): Change operand "op" to long.
Uros Bizjak [Wed, 27 May 2015 19:35:58 +0000 (21:35 +0200)]
futex.h (sys_futex0): Change operand "op" to long.

libgomp/ChangeLog:

* config/linux/x86/futex.h (sys_futex0) [!__x86_64__]:
Change operand "op" to long.
[__PIC__]: Remove sys_futex0 function.

libitm/ChangeLog:

* config/linux/x86/futex_bits.h (sys_futex0) [!__x86_64__]:
Change operand "op" to long.
[__PIC__]: Remove sys_futex0 function.

From-SVN: r223771

9 years agoexpr.h (array_at_struct_end_p): Move to...
Eric Botcazou [Wed, 27 May 2015 18:00:15 +0000 (18:00 +0000)]
expr.h (array_at_struct_end_p): Move to...

* expr.h (array_at_struct_end_p): Move to...
(array_ref_element_size): Likewise.
(component_ref_field_offset): Likewise.
* tree.h (array_ref_element_size): ...here.
(array_at_struct_end_p): Likewise.
(component_ref_field_offset): Likewise.
* expr.c (array_ref_element_size): Move to...
(array_ref_low_bound): Likewise.
(array_at_struct_end_p): Likewise.
(array_ref_up_bound): Likewise.
(component_ref_field_offset): Likewise.
* tree.c (array_ref_element_size): ...here.
(array_ref_low_bound): Likewise.
(array_ref_up_bound): Likewise.
(array_at_struct_end_p): Likewise.
(component_ref_field_offset): Likewise.

From-SVN: r223768

9 years agodecl.c (gnat_to_gnu_entity): Move down code applying atomic checks to the object.
Eric Botcazou [Wed, 27 May 2015 17:57:01 +0000 (17:57 +0000)]
decl.c (gnat_to_gnu_entity): Move down code applying atomic checks to the object.

* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Move down
code applying atomic checks to the object.

From-SVN: r223767

9 years ago[PATCH 3/13] aarch64 musl support
Gregor Richards [Wed, 27 May 2015 16:46:39 +0000 (16:46 +0000)]
[PATCH 3/13] aarch64 musl support

gcc/Changelog:

2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
    Szabolcs Nagy  <szabolcs.nagy@arm.com>

* config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.

Co-Authored-By: Szabolcs Nagy <szabolcs.nagy@arm.com>
From-SVN: r223766

9 years agoconfig.host (i[34567]86-*-freebsd*, [...]): Set md_unwind_header
John Marino [Wed, 27 May 2015 16:14:10 +0000 (16:14 +0000)]
config.host (i[34567]86-*-freebsd*, [...]): Set md_unwind_header

        * config.host (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Set
        md_unwind_header
        * config/i386/freebsd-unwind.h: New.

From-SVN: r223765

9 years agore PR bootstrap/66304 (Can't bootstrap on x86_64-linux-gnu with gcc 4.3.4)
Jason Merrill [Wed, 27 May 2015 16:09:18 +0000 (12:09 -0400)]
re PR bootstrap/66304 (Can't bootstrap on x86_64-linux-gnu with gcc 4.3.4)

PR bootstrap/66304
config/
* warnings.m4 (ACX_PROG_CXX_WARNING_OPTS)
(ACX_PROG_CXX_WARNINGS_ARE_ERRORS)
(ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC): New.
(ACX_PROG_CC_WARNING_OPTS, ACX_PROG_CC_WARNING_ALMOST_PEDANTIC)
(ACX_PROG_CC_WARNINGS_ARE_ERRORS): Push into C language context.
gcc/
* configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
* configure: Regenerate.

From-SVN: r223763

9 years agoauto-profile.c (afdo_calculate_branch_prob): Break once has_sample is true.
Aditya Kumar [Wed, 27 May 2015 15:06:25 +0000 (15:06 +0000)]
auto-profile.c (afdo_calculate_branch_prob): Break once has_sample is true.

* auto-profile.c (afdo_calculate_branch_prob): Break once has_sample is
true.

From-SVN: r223762

9 years ago* statistics.c (statistics_fini_pass): Print pass name.
Aditya Kumar [Wed, 27 May 2015 15:06:10 +0000 (15:06 +0000)]
* statistics.c (statistics_fini_pass): Print pass name.

From-SVN: r223761

9 years agore PR tree-optimization/66272 (wrong code at -O3 on x86_64-linux-gnu)
Richard Biener [Wed, 27 May 2015 14:20:48 +0000 (14:20 +0000)]
re PR tree-optimization/66272 (wrong code at -O3 on x86_64-linux-gnu)

2015-05-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/66272
Revert parts of
2014-08-15  Richard Biener  <rguenther@suse.de>

PR tree-optimization/62031
* tree-data-ref.c (dr_analyze_indices): Do not set
DR_UNCONSTRAINED_BASE.
(dr_may_alias_p): All indirect accesses have to go the
formerly DR_UNCONSTRAINED_BASE path.
* tree-data-ref.h (struct indices): Remove
unconstrained_base member.
(DR_UNCONSTRAINED_BASE): Remove.

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

From-SVN: r223759

9 years agodwarf2out.c: Remove block_map.
Aldy Hernandez [Wed, 27 May 2015 14:09:58 +0000 (14:09 +0000)]
dwarf2out.c: Remove block_map.

* dwarf2out.c: Remove block_map.
(gen_call_site_die): Replace block_map use with BLOCK_DIE.
(gen_lexical_block_die): Same.
(dwarf2out_function_decl): Remove block_map use.
(dwarf2out_c_finalize): Same.
* tree-core.h (struct tree_block): Add die field.
* tree.h (BLOCK_DIE): New.

From-SVN: r223758

9 years agoslp-reduc-7.c: New testcase.
Richard Biener [Wed, 27 May 2015 13:50:50 +0000 (13:50 +0000)]
slp-reduc-7.c: New testcase.

2015-05-27  Richard Biener  <rguenther@suse.de>

* gcc.dg/vect/slp-reduc-7.c: New testcase.

From-SVN: r223756

9 years ago[multiple changes]
Arnaud Charlet [Wed, 27 May 2015 13:26:16 +0000 (15:26 +0200)]
[multiple changes]

2015-05-27  Robert Dewar  <dewar@adacore.com>

* sem_aux.adb: Minor rewording.

2015-05-27  Bob Duff  <duff@adacore.com>

* exp_prag.adb (Expand_Pragma_Abort_Defer): Make
pragma Abort_Defer do nothing if Abort_Allowed is False.

2015-05-27  Arnaud Charlet  <charlet@adacore.com>

* exp_ch9.adb, sem_util.adb, sem_util.ads, s-stposu.adb, s-spsufi.ads,
sem_elab.ads, g-comlin.ads, errout.ads, exp_ch6.adb, sem_ch4.adb,
opt.ads, s-bignum.adb, output.ads, sem_ch13.adb, erroutc.ads,
sem_disp.ads, exp_ch3.adb: Minor fixes of duplicate words in comments.

2015-05-27  Doug Rupp  <rupp@adacore.com>

* adaint.c (__gnat_tmp_name) [vxworks]: Robustify and use for rtp as
well as kernel.

2015-05-27  Pierre-Marie de Rodat  <derodat@adacore.com>

* par_sco.adb (Process_Decision): Store sloc to
condition/pragmas SCOs associations into a temporary table before
moving them to the SCO_Raw_Hash_Table so that we can back them
out just like we do for SCO entries that are simple decisions
in an expression context.

From-SVN: r223754

9 years ago[expr.c] PR target/65358 Avoid clobbering partial argument during sibcall
Kyrylo Tkachov [Wed, 27 May 2015 13:25:01 +0000 (13:25 +0000)]
[expr.c] PR target/65358 Avoid clobbering partial argument during sibcall

PR target/65358
* expr.c (memory_load_overlap): New function.
(emit_push_insn): When pushing partial args to the stack would
clobber the register part load the overlapping part into a pseudo
and put it into the hard reg after pushing.  Change return type
to bool.  Add bool argument.
* expr.h (emit_push_insn): Change return type to bool.
Add bool argument.
* calls.c (expand_call): Cancel sibcall optimization when encountering
partial argument on targets with ARGS_GROW_DOWNWARD and
!STACK_GROWS_DOWNWARD.
(emit_library_call_value_1): Update callsite of emit_push_insn.
(store_one_arg): Likewise.

PR target/65358
* gcc.dg/pr65358.c: New test.

From-SVN: r223753

9 years ago[multiple changes]
Arnaud Charlet [Wed, 27 May 2015 13:21:36 +0000 (15:21 +0200)]
[multiple changes]

2015-05-27  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Process_Formals): A non-private formal type that
is a limited view does not have a list of private dependents.

2015-05-27  Ed Schonberg  <schonberg@adacore.com>

* exp_ch5.adb (Expand_N_Case_Statement): If the expression in
the case statement is a compile-time known value, we look for a
corresponding alternative to optimize the case statement into a
single case. If the type has a static predicate and the expression
does not satisfy the predicate, there is no legal alternative and
this optimization is not applicable.  Excecution is erroneous,
or else if assertions are enabled, an exception will be raised
earlier, at the point the expression is elaborated.

2015-05-27  Robert Dewar  <dewar@adacore.com>

* sem_elab.adb (Check_Internal_Call_Continue): Suppress
warning on Finalize, Adjust, or Initialize if type involved has
Warnings_Off set.

2015-05-27  Ed Schonberg  <schonberg@adacore.com>

* sem_aux.adb, sem_aux.ads (First_Discriminant): Return empty when
applied to a type with no known discriminants.

From-SVN: r223752

9 years ago[multiple changes]
Arnaud Charlet [Wed, 27 May 2015 13:19:35 +0000 (15:19 +0200)]
[multiple changes]

2015-05-26  Robert Dewar  <dewar@adacore.com>

* errout.ads, sem_ch4.adb, sem_ch6.adb: Minor reformatting.

2015-05-26  Bob Duff  <duff@adacore.com>

* sem_elab.adb (Check_A_Call): In the case where we're
calling something in an instance of a generic package that is
within this same unit (as the call), make sure we treat it
as a call to an entity within the same unit. That is, call
Check_Internal_Call, rather than putting "Elaborate_All(X)"
on X, which would necessarily result in an elaboration cycle in
static-elaboration mode.

2015-05-26  Eric Botcazou  <ebotcazou@adacore.com>

* freeze.ads (Is_Atomic_VFA_Aggregate): Adjust profile.
* freeze.adb (Is_Atomic_VFA_Aggregate): Change Entity
parameter into Node parameter and remove Type parameter.
Look at Is_Atomic_Or_VFA both on the type and on the object.
(Freeze_Entity): Adjust call to Is_Atomic_VFA_Aggregate.
* exp_aggr.adb (Expand_Record_Aggregate): Likewise.
(Process_Atomic_Independent_Shared_Volatile): Remove code
propagating Atomic or VFA from object to locally-defined type.

2015-05-26  Bob Duff  <duff@adacore.com>

* exp_ch7.adb: Minor comment fix.

From-SVN: r223751

9 years agoLTO balanced map: add stats about insns and symbols.
Martin Liska [Wed, 27 May 2015 13:17:13 +0000 (15:17 +0200)]
LTO balanced map: add stats about insns and symbols.

* lto-partition.c (new_partition): Reset number of symbols.
(add_symbol_to_partition_1): Increment number of symbols.
(undo_partition): Decrement number of symbols.
(lto_balanced_map): Dump number of symbols and insns that
belong to a partition.
* lto-partition.h (struct ltrans_partition_def): Add symbol counter.

From-SVN: r223750

9 years ago[PATCH 4/13] arm musl support
Gregor Richards [Wed, 27 May 2015 13:17:11 +0000 (13:17 +0000)]
[PATCH 4/13] arm musl support

On behalf of szabolcs.nagy@arm.com

2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>

* config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.

From-SVN: r223749

9 years agoNew memory allocation statistics infrastructure.
Martin Liska [Wed, 27 May 2015 12:47:22 +0000 (14:47 +0200)]
New memory allocation statistics infrastructure.

* Makefile.in: Add additional dependencies related to memory report
enhancement.
* alloc-pool.c (allocate_pool_descriptor): Use new ctor.
* bitmap.c (struct bitmap_descriptor_d): Remove.
(struct loc): Likewise.
(struct bitmap_desc_hasher): Likewise.
(bitmap_desc_hasher::hash): Likewise.
(bitmap_desc_hasher::equal): Likewise.
(get_bitmap_descriptor): Likewise.
(bitmap_register): User new memory descriptor API.
(register_overhead): Likewise.
(bitmap_find_bit): Register nsearches and search_iter statistics.
(struct bitmap_output_info): Remove.
(print_statistics): Likewise.
(dump_bitmap_statistics): Use new memory descriptor.
* bitmap.h (struct bitmap_usage): New class.
* genmatch.c: Extend header file inclusion.
* genpreds.c: Likewise.
* ggc-common.c (struct ggc_usage): New class.
(struct ggc_loc_desc_hasher): Remove.
(ggc_loc_desc_hasher::hash): Likewise.
(ggc_loc_desc_hasher::equal): Likewise.
(struct ggc_ptr_hash_entry): Likewise.
(struct ptr_hash_hasher): Likewise.
(ptr_hash_hasher::hash): Likewise.
(ptr_hash_hasher::equal): Likewise.
(make_loc_descriptor): Likewise.
(ggc_prune_ptr): Likewise.
(dump_ggc_loc_statistics): Use new memory descriptor.
(ggc_record_overhead): Likewise.
(ggc_free_overhead): Likewise.
(final_cmp_statistic): Remove.
(cmp_statistic): Likewise.
(ggc_add_statistics): Liekwise.
(ggc_prune_overhead_list): Likewise.
* hash-map-traits.h: New file.
* hash-map.h (struct default_hashmap_traits): Move the traits to a
separate header file.
* hash-set.h: Pass memory statistics info to ctor.
* hash-table.c (void dump_hash_table_loc_statistics): New function.
* hash-table.h (hash_table::hash_table): Add new ctor arguments.
(hash_table::~hash_table): Register memory release operation.
(hash_table::alloc_entries): Handle memory allocation operation.
(hash_table::expand): Likewise.
* inchash.c (iterative_hash_hashval_t): Move implementation to header
file.
(iterative_hash_host_wide_int): Likewise.
* inchash.h (class hash): Likewise.
* mem-stats-traits.h: New file.
* mem-stats.h: New file.
(mem_location): Add new class.
(mem_usage): Likewise.
(mem_alloc_description): Likewise.
* sese.c: Add new header file inclusision.
* toplev.c (dump_memory_report): Add report for hash_table, hash_map
and hash_set.
* tree-sra.c: Add new header file inclusision.
* vec.c (struct vec_descriptor): Remove.
(hash_descriptor): Likewise.
(struct vec_usage): Likewise.
(struct ptr_hash_entry): Likewise.
(hash_ptr): Likewise.
(eq_ptr): Likewise.
(vec_prefix::register_overhead): Use new memory descriptor API.
(vec_prefix::release_overhead): Likewise.
(add_statistics): Remove.
(dump_vec_loc_statistics): Use new memory descriptor API.
* vec.h (struct vec_prefix): Likewise.
(va_heap::reserve): Likewise.
(va_heap::release): Likewise.
* emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.

From-SVN: r223748

9 years agostl_tree.h (_Rb_tree::_M_end()): Return _Base_ptr instead of downcasting.
Jonathan Wakely [Wed, 27 May 2015 11:18:44 +0000 (12:18 +0100)]
stl_tree.h (_Rb_tree::_M_end()): Return _Base_ptr instead of downcasting.

* include/bits/stl_tree.h (_Rb_tree::_M_end()): Return _Base_ptr
instead of downcasting.
(_Rb_tree::_M_copy): Change second parameter to _Base_ptr.
(_Rb_tree::_M_lower_bound, _Rb_tree:_M_upper_bound): Likewise.
(_Rb_tree::_S_iter): Remove.
(_Rb_tree::_S_lower_bound_tr, _Rb_tree::_S_upper_bound_tr): Remove.
(_Rb_tree::_M_find_tr(const _Kt&) const): Call _M_lower_bound_tr
instead of _S_lower_bound_tr
(_Rb_tree::_M_find_tr(const _Kt&)): Call const overload.
(_Rb_tree::_M_lower_bound_tr(const _Kt&) const): Do the search here
instead of calling _S_lower_bound_tr.
(_Rb_tree::_M_lower_bound_tr(const _Kt&)): Call const overload.
(_Rb_tree::_M_upper_bound_tr(const _Kt&) const): Do the search here
instead of calling _S_upper_bound_tr.
(_Rb_tree::_M_upper_bound_tr(const _Kt&)): Call const overload.
(_Rb_tree::_M_equal_range_tr(const _Kt&)): Likewise.
(_Rb_tree::equal_range): Use _Base_ptr for end pointer.
(_Rb_tree::_M_get_insert_unique_pos): Likewise.
(_Rb_tree::_M_get_insert_equal_pos): Likewise.
(_Rb_tree::_M_insert_equal_lower_node): Likewise.
(_Rb_tree::_M_insert_unique, _Rb_tree::_M_emplace_unique,
_Rb_tree::_M_emplace_hint_unique): Remove static_cast.

From-SVN: r223746

9 years agore PR libstdc++/66017 (Undefined behaviour in std::set<long long>)
Jonathan Wakely [Wed, 27 May 2015 11:18:37 +0000 (12:18 +0100)]
re PR libstdc++/66017 (Undefined behaviour in std::set<long long>)

PR libstdc++/66017
* include/bits/stl_tree.h (_Rb_tree_node): Use __aligned_membuf.
(_Rb_tree_iterator, _Rb_tree_const_iterator): Support construction
from _Base_ptr.
(_Rb_tree_const_iterator::_M_const_cast): Remove static_cast.
(_Rb_tree::begin, _Rb_tree::end): Remove static_cast.
* include/ext/aligned_buffer.h (__aligned_membuf): New type using
alignment of _Tp as a member subobject, not as a complete object.
* python/libstdcxx/v6/printers.py (StdRbtreeIteratorPrinter): Lookup
_Link_type manually as it might not be in the debug info.

From-SVN: r223745

9 years agotree-vect-stmts.c (vectorizable_load): Initialize slp_perm earlier and remove ??...
Richard Biener [Wed, 27 May 2015 10:31:11 +0000 (10:31 +0000)]
tree-vect-stmts.c (vectorizable_load): Initialize slp_perm earlier and remove ??? comment.

2015-05-27  Richard Biener  <rguenther@suse.de>

* tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
earlier and remove ??? comment.
(vect_analyze_stmt): If we are analyzing a pure SLP stmt
and got called from loop analysis bail out.  Always pass the SLP
node to the vectorizable_* functions.
* tree-vect-loop.c (vect_analyze_loop_operations): Remove
the premature SLP check here.
* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
detected SLP stmts.
(vect_detect_hybrid_slp_1): Likewise.

From-SVN: r223743

9 years agotrans-stmt.c (gfc_trans_allocate): Add missing location information for e3rhs.
Andre Vehreschild [Wed, 27 May 2015 08:48:51 +0000 (10:48 +0200)]
trans-stmt.c (gfc_trans_allocate): Add missing location information for e3rhs.

gcc/fortran/ChangeLog:

2015-05-27  Andre Vehreschild  <vehre@gmx.de>

* trans-stmt.c (gfc_trans_allocate): Add missing location
information for e3rhs.

gcc/testsuite/ChangeLog:

2015-05-27  Andre Vehreschild  <vehre@gmx.de>

* gfortran.dg/allocate_with_source_5.f90: Correct errorneous
semantic.
* gfortran.dg/allocate_with_source_6.f90: New test.

From-SVN: r223738

9 years agotarget.c (gomp_map_pointer): New function abstracting out GOMP_MAP_POINTER handling.
Chung-Lin Tang [Wed, 27 May 2015 06:16:37 +0000 (06:16 +0000)]
target.c (gomp_map_pointer): New function abstracting out GOMP_MAP_POINTER handling.

2015-05-27  Chung-Lin Tang  <cltang@codesourcery.com>

libgomp/
* target.c (gomp_map_pointer): New function abstracting out
GOMP_MAP_POINTER handling.
(gomp_map_vars): Remove GOMP_MAP_POINTER handling code and use
gomp_map_pointer().

From-SVN: r223737

9 years agocombine.c (find_split_point): Verify that the shift count is a constant when...
Jeff Law [Wed, 27 May 2015 04:59:42 +0000 (22:59 -0600)]
combine.c (find_split_point): Verify that the shift count is a constant when...

       * combine.c (find_split_point): Verify that the shift count is a
       constant when choosing (plus (ashift ...)) as a split point.

From-SVN: r223736

9 years agotree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
Jeff Law [Wed, 27 May 2015 04:42:23 +0000 (22:42 -0600)]
tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.

        * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
        No functional changes.

From-SVN: r223734

9 years ago* ipa-polymorphic-call.c
Jan Hubicka [Wed, 27 May 2015 04:37:48 +0000 (06:37 +0200)]
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
case when call target is already known.

From-SVN: r223733

9 years agoDaily bump.
GCC Administrator [Wed, 27 May 2015 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r223729

9 years agoxmethods.py (UniquePtrMethodsMatcher): Add operator-> support.
Doug Evans [Tue, 26 May 2015 23:06:55 +0000 (23:06 +0000)]
xmethods.py (UniquePtrMethodsMatcher): Add operator-> support.

* python/libstdcxx/v6/xmethods.py (UniquePtrMethodsMatcher): Add
operator-> support.
* testsuite/libstdc++-xmethods/unique_ptr.cc: Add tests for
operator->.

From-SVN: r223723

9 years agore PR target/65979 ([SH] Wrong code is generated with stage1 compiler)
Oleg Endo [Tue, 26 May 2015 22:32:11 +0000 (22:32 +0000)]
re PR target/65979 ([SH] Wrong code is generated with stage1 compiler)

PR target/65979
* config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and take into
  account the case that operands[1] and operands[2] are the same register.

From-SVN: r223721

9 years agotrans.c (Attribute_to_gnu): Do not bother about NaN's if Machine_Overflows is true.
Eric Botcazou [Tue, 26 May 2015 20:42:20 +0000 (20:42 +0000)]
trans.c (Attribute_to_gnu): Do not bother about NaN's if Machine_Overflows is true.

* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Min/Attr_Max>: Do not
bother about NaN's if Machine_Overflows is true.

From-SVN: r223717

9 years agotrans.c (gnat_to_gnu): Really force evaluation of the expression...
Eric Botcazou [Tue, 26 May 2015 20:37:29 +0000 (20:37 +0000)]
trans.c (gnat_to_gnu): Really force evaluation of the expression...

* gcc-interface/trans.c (gnat_to_gnu) <N_Object_Declaration>: Really
force evaluation of the expression, if any, when the object has its
elaboration delayed.  Do not create a variable at global level.

From-SVN: r223716

9 years agotrans.c (Attribute_to_gnu): Do not apply extra-precision trick to literals.
Eric Botcazou [Tue, 26 May 2015 20:19:55 +0000 (20:19 +0000)]
trans.c (Attribute_to_gnu): Do not apply extra-precision trick to literals.

* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Machine>: Do not apply
extra-precision trick to literals.  Build SAVE_EXPR manually.

* gcc-interface/misc.c (enumerate_modes): Add bypass for x86/x86-64.

From-SVN: r223715

9 years agoada-tree.h (DECL_GLOBAL_NONCONSTANT_RENAMING_P): Delete
Eric Botcazou [Tue, 26 May 2015 19:40:18 +0000 (19:40 +0000)]
ada-tree.h (DECL_GLOBAL_NONCONSTANT_RENAMING_P): Delete

* gcc-interface/ada-tree.h (DECL_GLOBAL_NONCONSTANT_RENAMING_P): Delete
(DECL_RENAMED_OBJECT): Adjust comment.
* gcc-interface/gigi.h (record_global_nonconstant_renaming): Delete.
(invalidate_global_nonconstant_renamings): Likewise.
(gnat_constant_reference_p): Likewise.
(rewrite_fn): New function type.
(gnat_rewrite_reference): Declare.
(call_is_atomic_load): New inline predicate.
* gcc-interface/decl.c (elaborate_reference_1): New function.
(elaborate_reference): Likewise.
(gnat_to_gnu_entity): Call elaborate_reference to elaborate renamings
and simplify associated code.  Set const_flag to true consistently in
  conjunction with used_by_ref.
* gcc-interface/trans.c (Identifier_to_gnu): Always replace renaming
pointers by renamed objects.
(outer_atomic_access_required_p): Deal with renamings.
(Compilation_Unit_to_gnu): Do not call
invalidate_global_nonconstant_renamings.
(gnat_to_gnu) <N_Object_Renaming_Declaration>: Adjust comment.
(gnat_gimplify_expr): Deal with atomic loads.
* gcc-interface/utils.c (global_nonconstant_renamings): Delete.
(destroy_gnat_utils): Do not call
invalidate_global_nonconstant_renamings.
(record_global_nonconstant_renaming): Delete.
(invalidate_global_nonconstant_renamings): Likewise.
* gcc-interface/utils2.c (call_is_atomic_load): Move to gigi.h.
(build_load_modify_store): Build a copy of the destination.
(gnat_stabilize_reference_1): Adjust.
(gnat_stabilize_reference): Call gnat_stabilize_reference_1 through
gnat_rewrite_reference and move bulk of code to...
(gnat_rewrite_reference): ...here.  New global function.
(gnat_constant_reference_p): Delete.

From-SVN: r223709

9 years agogigi.h (gnat_stabilize_reference): Adjust prototype.
Eric Botcazou [Tue, 26 May 2015 19:18:15 +0000 (19:18 +0000)]
gigi.h (gnat_stabilize_reference): Adjust prototype.

* gcc-interface/gigi.h (gnat_stabilize_reference): Adjust prototype.
* gcc-interface/decl.c (gnat_to_gnu_entity): Do not rely on const_flag
  to detect constant renamings.  Be prepared for specific pattern of
renamed object based on function calls.  Create a constant object
for the renaming of a NULL_EXPR or of a CONSTRUCTOR.  Adjust calls
to gnat_stabilize_reference and tidy up.  Remove redundant tests.
(elaborate_expression_1): Remove obsolete test and tidy up.
* gcc-interface/trans.c (Call_to_gnu): Do not stabilize In/Out or Out
parameters passed by reference.
(gnat_to_gnu) <N_Selected_Component>: Remove redundant protection again
side-effects.
Use gnat_protect_expr instead of gnat_stabilize_reference for general
protection against side-effects.
* gcc-interface/utils2.c (gnat_stable_expr_p): New predicate.
(gnat_save_expr): Invoke it.
(gnat_protect_expr): Likewise.
(gnat_stabilize_reference_1): Likewise.  Remove useless propagation
of TREE_THIS_NOTRAP.
(gnat_stabilize_reference): Remove parameter and adjust throughout.
Delete ADDR_EXDR, COMPOUND_EXPR and CONSTRUCTOR cases.
Restrict CALL_EXPR case to atomic loads and tweak ERROR_MARK case.

From-SVN: r223708

9 years agojni.exp (gcj_jni_get_cxxflags_invocation): Add libiconv for FreeBSD to cxxflags.
Andreas Tobler [Tue, 26 May 2015 18:31:49 +0000 (20:31 +0200)]
jni.exp (gcj_jni_get_cxxflags_invocation): Add libiconv for FreeBSD to cxxflags.

2015-05-26  Andreas Tobler  <andreast@gcc.gnu.org>

    * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): Add
    libiconv for FreeBSD to cxxflags.

From-SVN: r223706

9 years agoline-map.c (LINE_MAP_MAX_COLUMN_NUMBER LINE_MAP_MAX_LOCATION_WITH_COLS,LINE_MAP_MAX_S...
Manuel López-Ibáñez [Tue, 26 May 2015 17:12:28 +0000 (17:12 +0000)]
line-map.c (LINE_MAP_MAX_COLUMN_NUMBER LINE_MAP_MAX_LOCATION_WITH_COLS,LINE_MAP_MAX_SOURCE_LOCATION): New constants.

libcpp/ChangeLog:

2015-05-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* line-map.c (LINE_MAP_MAX_COLUMN_NUMBER
LINE_MAP_MAX_LOCATION_WITH_COLS,LINE_MAP_MAX_SOURCE_LOCATION):
New constants.
(linemap_line_start): Use them.
(linemap_position_for_column): Use them.

From-SVN: r223705

9 years agore PR middle-end/66251 (ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c...
Michael Matz [Tue, 26 May 2015 16:00:32 +0000 (16:00 +0000)]
re PR middle-end/66251 (ICE in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1484)

PR middle-end/66251

* tree-vect-stmts.c (vect_model_store_cost): Handled strided group
stores.
(vect_create_vectorized_demotion_stmts): Always set
STMT_VINFO_VEC_STMT, also with SLP.
(vectorizable_store): Handle strided group stores.

testsuite/:
PR middle-end/66251
* gcc.dg/vect/pr66251.c: New test.

From-SVN: r223704

9 years agore PR target/66049 (Few AArch64 extend and add with shift tests generates sub optimal...
Venkataramanan Kumar [Tue, 26 May 2015 15:32:02 +0000 (15:32 +0000)]
re PR target/66049 (Few AArch64 extend and add with shift tests generates sub optimal code with trunk gcc 6.0.)

2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>

        PR target/66049
        * config/aarch64/aarch64.md
        (*adds_shift_imm_<mode>):  New pattern.
        (*subs_shift_imm_<mode>):  Likewise.
        (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
        (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
        (*add_uxt<mode>_shift2): Likewise.
        (*add_uxtsi_shift2_uxtw): Likewise.
        (*sub_uxt<mode>_shift2): Likewise.
        (*sub_uxtsi_shift2_uxtw): Likewise.

From-SVN: r223703

9 years ago* config/rs6000/constraints.md (Y, U): Use match_test.
David Edelsohn [Tue, 26 May 2015 15:16:35 +0000 (15:16 +0000)]
* config/rs6000/constraints.md (Y, U): Use match_test.

From-SVN: r223702

9 years agofix entry
Christian Bruel [Tue, 26 May 2015 14:10:12 +0000 (16:10 +0200)]
fix entry

From-SVN: r223701

9 years agofix entry
Christian Bruel [Tue, 26 May 2015 14:09:45 +0000 (16:09 +0200)]
fix entry

From-SVN: r223700

9 years agore PR target/52144 (ARM should support arm/thumb function attribute to permit differe...
Christian Bruel [Tue, 26 May 2015 14:06:17 +0000 (16:06 +0200)]
re PR target/52144 (ARM should support arm/thumb function attribute to permit different instruction sets in the same source)

 2015-05-13  Christian Bruel  <christian.bruel@st.com>

PR target/52144
* config/arm/arm.c (arm_option_check_internal)
(arm_option_params_internal): Check opts->target_flags to set macros.
(TREE_TARGET_ARM, TREE_TARGET_THUMB)
(TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
(TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
(builtin_define): Replaced with def_or_undef_macro.
* config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
(TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
(TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
(TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
(TARGET_ARM_FEATURE_LDREX_P)
(TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
(def_or_undef_macro): New function.

From-SVN: r223699

9 years ago2015-05-26 Christian Bruel <christian.bruel@st.com>
Christian Bruel [Tue, 26 May 2015 14:03:10 +0000 (16:03 +0200)]
2015-05-26  Christian Bruel  <christian.bruel@st.com>

* c-common.h (builtin_define_with_int_value)
(builtin_define_type_sizeof): Declare.
* c-cppbuiltin.c (builtin_define_with_int_value)
(builtin_define_type_sizeof): Externalize.
(builtin_define_std): Cleanup declaration.
* config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
* config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
(builtin_define, builtin_assert): New macros.

From-SVN: r223698

9 years agore PR tree-optimization/66142 (Loop is not vectorized because not sufficient support...
Richard Biener [Tue, 26 May 2015 13:55:40 +0000 (13:55 +0000)]
re PR tree-optimization/66142 (Loop is not vectorized because not sufficient support for GOMP_SIMD_LANE)

2015-05-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/66142
* tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
MEM_REFs for the same base address.

* gcc.dg/tree-ssa/ssa-fre-44.c: New testcase.

From-SVN: r223697

9 years ago[multiple changes]
Arnaud Charlet [Tue, 26 May 2015 13:37:29 +0000 (15:37 +0200)]
[multiple changes]

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

* sinfo.ads: Minor reformatting.
* sem_aux.ads: Clarify use of First_Discriminant.
* sem_ch4.adb (Analyze_Explicit_Dereference): The use of a limited
view is replaced with the non-limited view in an instance body,
where the enclosing unit must have a regular with_clause on the
relevant unit.
* sem_ch12.adb (Install_Body): Freeze instantation after its
body. Remove useless freeze nodes for incomplete actuals to
prevent multiple generation of internal operations.
(Instantiate_Package_Body): Set sloc of body appropriately when
there are incomplete actuals and the instance body is placed in
the body of the enclosing unit.
* errout.ads: Consistent punctuation, better alignment and trivial
typos in comments.
* err_vars.ads: Fix typo.

2015-05-26  Eric Botcazou  <ebotcazou@adacore.com>

* sem_ch8.adb (Analyze_Object_Renaming): Lift restriction on
components of Volatile_Full_Access objects.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Is_Non_Overriding_Operation,
Get_Generic_Parent_Type): Handle properly the case of a derived
scalar type by using the first subtype rather than its generated
anonymous base type.

2015-05-26  Eric Botcazou  <ebotcazou@adacore.com>

* einfo.adb (Write_Field17_Name): Move E_Incomplete_Subtype
case to...
(Write_Field19_Name): ...here.

From-SVN: r223696

9 years agore PR ipa/66181 (/usr/include/bits/types.h:134:16: ICE: verify_type failed)
Ramana Radhakrishnan [Tue, 26 May 2015 13:21:16 +0000 (13:21 +0000)]
re PR ipa/66181 (/usr/include/bits/types.h:134:16: ICE: verify_type failed)

Fix PR ipa/66181

2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

PR ipa/66181
* tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.

From-SVN: r223695

9 years agoconfigure.ac: Set CXXFLAGS for ISL test.
Jason Merrill [Tue, 26 May 2015 13:12:14 +0000 (09:12 -0400)]
configure.ac: Set CXXFLAGS for ISL test.

* configure.ac: Set CXXFLAGS for ISL test.
* configure: Regenerate.

From-SVN: r223694

9 years agoconfigure.ac: When bootstrapping with GCC, add -std=c++98 to CXX.
Jason Merrill [Tue, 26 May 2015 12:29:13 +0000 (08:29 -0400)]
configure.ac: When bootstrapping with GCC, add -std=c++98 to CXX.

* configure.ac: When bootstrapping with GCC, add -std=c++98 to CXX.
* configure: Regenerate.

From-SVN: r223692

9 years agoconfigure.ac: Use C++ for all tests.
Jason Merrill [Tue, 26 May 2015 12:28:53 +0000 (08:28 -0400)]
configure.ac: Use C++ for all tests.

* configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
strstr and basename.
* configure: Regenerate.

From-SVN: r223691

9 years agofold-const.c (fold_binary_loc): Move X % -Y -> X % Y and X % C -> X & (C - 1) for...
Richard Biener [Tue, 26 May 2015 12:00:48 +0000 (12:00 +0000)]
fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and X % C -> X & (C - 1) for C being a power-of two to ...

2015-05-26  Richard Biener  <rguenther@suse.de>

* fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
X % C -> X & (C - 1) for C being a power-of two to ...
* match.pd: ... patterns.

From-SVN: r223690

9 years agomatch.pd (swapped_tcc_comparison): New operator list.
Marc Glisse [Tue, 26 May 2015 11:14:16 +0000 (13:14 +0200)]
match.pd (swapped_tcc_comparison): New operator list.

2015-05-26  Marc Glisse  <marc.glisse@inria.fr>

* match.pd (swapped_tcc_comparison): New operator list.
(-A CMP -B): New simplification.
* fold-const.c (fold_comparison): Remove corresponding code.

From-SVN: r223689

9 years agocaller-save.c (init_caller_save): Base temporary register numbers on LAST_VIRTUAL_REG...
Richard Sandiford [Tue, 26 May 2015 11:02:27 +0000 (11:02 +0000)]
caller-save.c (init_caller_save): Base temporary register numbers on LAST_VIRTUAL_REGISTER + 1 rather than...

gcc/
* caller-save.c (init_caller_save): Base temporary register numbers
on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
* cfgloopanal.c (init_set_costs): Likewise.
* dojump.c (prefer_and_bit_test): Likewise.
* expr.c (init_expr_target): Likewise.
* ira.c (setup_prohibited_mode_move_regs): Likewise.
* lower-subreg.c (init_lower_subreg): Likewise.
* postreload.c (reload_cse_regs_1): Likewise.

From-SVN: r223688

9 years agogensupport.h (compute_test_codes): Declare.
Richard Sandiford [Tue, 26 May 2015 11:01:42 +0000 (11:01 +0000)]
gensupport.h (compute_test_codes): Declare.

gcc/
* gensupport.h (compute_test_codes): Declare.
* gensupport.c (compute_predicate_codes): Rename to...
(compute_test_codes): ...this.  Generalize error message.
(process_define_predicate): Update accordingly.
* genpreds.c (compute_maybe_allows): Delete.
(add_constraint): Use compute_test_codes to determine whether
something can accept a SUBREG, REG or MEM.

From-SVN: r223687

9 years ago[multiple changes]
Arnaud Charlet [Tue, 26 May 2015 10:51:22 +0000 (12:51 +0200)]
[multiple changes]

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb: sem_ch13.adb (Add_Predicates): Undo analysis
of original expression in ASIS mode: does not solve the ASIS
problem of a usable type information, and crashes the back-end
when performing type annotations.

2015-05-26  Robert Dewar  <dewar@adacore.com>

* sem_disp.adb (Inherited_Subprograms): Add One_Only parameter.
(Is_Overriding_Subprogram): Use One_Only_Parameter.
* sem_disp.ads (Inherited_Subprograms): Add One_Only parameter.

From-SVN: r223686

9 years ago[multiple changes]
Arnaud Charlet [Tue, 26 May 2015 10:49:18 +0000 (12:49 +0200)]
[multiple changes]

2015-05-26  Robert Dewar  <dewar@adacore.com>

* exp_prag.adb, sem_ch3.adb, sem_ch5.adb, exp_ch11.adb, ghost.adb,
exp_ch6.adb, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb, sem_ch13.adb,
exp_ch3.adb: Minor reformatting.

2015-05-26  Bob Duff  <duff@adacore.com>

* treepr.adb: Minor improvement to debugging routines (pp, pn)
robustness.  Rearrange the code so passing a nonexistent Node_Id
prints "No such node" rather than crashing, and causing gdb to
generate confusing messages.

2015-05-26  Gary Dismukes  <dismukes@adacore.com>

* sem_util.adb: Minor typo fix.

2015-05-26  Yannick Moy  <moy@adacore.com>

* sem_aux.adb (Subprogram_Body_Entity): Deal with subprogram stubs.

From-SVN: r223685

9 years agoexp_ch3.adb (Expand_N_Full_Type_Declaration): Capture, set and restore the Ghost...
Hristian Kirtchev [Tue, 26 May 2015 10:46:58 +0000 (10:46 +0000)]
exp_ch3.adb (Expand_N_Full_Type_Declaration): Capture, set and restore the Ghost mode.

2015-05-26  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch3.adb (Expand_N_Full_Type_Declaration): Capture, set and
restore the Ghost mode.
(Expand_N_Object_Declaration): Capture, set and restore the Ghost mode.
(Freeze_Type): Update the call to Set_Ghost_Mode.
(Restore_Globals): New routine.
* exp_ch5.adb Add with and use clauses for Ghost.
(Expand_N_Assignment_Statement): Capture, set and restore the
Ghost mode.
(Restore_Globals): New routine.
* exp_ch6.adb Add with and use clauses for Ghost.
(Expand_N_Procedure_Call_Statement): Capture, set and
restore the Ghost mode.
(Expand_N_Subprogram_Body):
Code cleanup. Capture, set and restore the Ghost mode.
(Expand_N_Subprogram_Declaration): Capture, set and restore the
Ghost mode.
(Restore_Globals): New routine.
* exp_ch7.adb Add with and use clauses for Ghost.
(Expand_N_Package_Body): Capture, set and restore the Ghost mode.
(Expand_N_Package_Declaration): Capture, set and restore the
Ghost mode.
(Wrap_HSS_In_Block): Create a proper identifier for the block.
* exp_ch8.adb Add with and use clauses for Ghost.
(Expand_N_Exception_Renaming_Declaration): Code
cleanup. Capture, set and restore the Ghost mode.
(Expand_N_Object_Renaming_Declaration): Capture, set and restore
the Ghost mode.
(Expand_N_Package_Renaming_Declaration): Capture, set and restore the
Ghost mode.
(Expand_N_Subprogram_Renaming_Declaration): Capture, set and
restore the Ghost mode.
* exp_ch11.adb (Expand_N_Exception_Declaration): Code
cleanup. Capture, set and restore the Ghost mode.
* exp_disp.adb (Make_DT): Update the call to Set_Ghost_Mode. Do
not initialize the dispatch table slot of a Ghost subprogram.
* exp_prag.adb Add with and use clauses for Ghost.
(Expand_Pragma_Check): Capture, set and restore the Ghost mode.
(Expand_Pragma_Contract_Cases): Capture, set and restore the
Ghost mode.
(Expand_Pragma_Initial_Condition): Capture, set and
restore the Ghost mode.
(Expand_Pragma_Loop_Variant): Capture,
set and restore the Ghost mode.
(Restore_Globals): New routine.
* exp_util.adb Add with and use clauses for Ghost.
(Make_Predicate_Call): Code cleanup. Capture, set and restore
the Ghost mode.
(Restore_Globals): New routine.
* freeze.adb (Freeze_Entity): Code cleanup. Update the call
to Set_Ghost_Mode.
* ghost.adb Add with and use clause for Sem_Prag.
(Check_Ghost_Completion): Code cleanup.
(Check_Ghost_Overriding): New routine.
(Check_Ghost_Policy): Code cleanup.
(Ghost_Entity): New routine.
(Is_Ghost_Declaration): Removed.
(Is_Ghost_Statement_Or_Pragma): Removed.
(Is_OK_Context): Reimplemented.
(Is_OK_Declaration): New routine.
(Is_OK_Pragma): New routine.
(Is_OK_Statement): New routine.
(Mark_Full_View_As_Ghost): New routine.
(Mark_Pragma_As_Ghost): New routine.
(Mark_Renaming_As_Ghost): New routine.
(Propagate_Ignored_Ghost_Code): Update the comment on usage.
(Set_From_Entity): New routine.
(Set_From_Policy): New routine.
(Set_Ghost_Mode): This routine now handles pragmas and freeze nodes.
(Set_Ghost_Mode_For_Freeze): Removed.
(Set_Ghost_Mode_From_Entity): New routine.
(Set_Ghost_Mode_From_Policy): Removed.
* ghost.ads (Check_Ghost_Overriding): New routine.
(Mark_Full_View_As_Ghost): New routine.
(Mark_Pragma_As_Ghost): New routine.
(Mark_Renaming_As_Ghost): New routine.
(Set_Ghost_Mode): Update the parameter profile. Update the
comment on usage.
(Set_Ghost_Mode_For_Freeze): Removed.
(Set_Ghost_Mode_From_Entity): New routine.
* sem_ch3.adb (Analyze_Full_Type_Declaration):
Capture and restore the Ghost mode. Mark a type
as Ghost regardless of whether it comes from source.
(Analyze_Incomplete_Type_Decl): Capture, set and restore the
Ghost mode.
(Analyze_Number_Declaration): Capture and restore the Ghost mode.
(Analyze_Object_Declaration): Capture and restore the Ghost mode.
(Analyze_Private_Extension_Declaration): Capture and
restore the Ghost mode.
(Analyze_Subtype_Declaration): Capture and restore the Ghost mode.
(Process_Full_View): The full view inherits all Ghost-related
attributes from the private view.
(Restore_Globals): New routine.
* sem_ch5.adb (Analyze_Assignment): Capture and restore the
Ghost mode.
(Restore_Globals): New routine.
* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration):
Code cleanup. Capture and restore the Ghost mode. Mark a
subprogram as Ghost regarless of whether it comes from source.
(Analyze_Procedure_Call): Capture and restore the Ghost mode.
(Analyze_Subprogram_Body_Helper): Capture and restore the Ghost mode.
(Analyze_Subprogram_Declaration): Capture and restore the Ghost mode.
(New_Overloaded_Entity): Ensure that a
parent subprogram and an overriding subprogram have compatible
Ghost policies.
* sem_ch7.adb (Analyze_Package_Body_Helper): Capture and restore
the Ghost mode.
(Analyze_Package_Declaration): Capture and
restore the Ghost mode. Mark a package as Ghost when it is
declared in a Ghost region.
(Analyze_Private_Type_Declaration): Capture and restore the Ghost mode.
(Restore_Globals): New routine.
* sem_ch8.adb (Analyze_Exception_Renaming): Code
reformatting. Capture and restore the Ghost mode. A renaming
becomes Ghost when its name references a Ghost entity.
(Analyze_Generic_Renaming): Capture and restore the Ghost mode. A
renaming becomes Ghost when its name references a Ghost entity.
(Analyze_Object_Renaming): Capture and restore the Ghost mode. A
renaming becomes Ghost when its name references a Ghost entity.
(Analyze_Package_Renaming): Capture and restore the Ghost mode. A
renaming becomes Ghost when its name references a Ghost entity.
(Analyze_Subprogram_Renaming): Capture and restore the Ghost
mode. A renaming becomes Ghost when its name references a
Ghost entity.
* sem_ch11.adb (Analyze_Exception_Declaration): Capture, set
and restore the Ghost mode.
* sem_ch12.adb (Analyze_Generic_Package_Declaration): Capture and
restore the Ghost mode.
(Analyze_Generic_Subprogram_Declaration):
Capture and restore the Ghost mode.
* sem_ch13.adb Add with and use clauses for Ghost.
(Add_Invariant): New routine.
(Add_Invariants): Factor out code.
(Add_Predicate): New routine.
(Add_Predicates): Factor out code.
(Build_Invariant_Procedure_Declaration): Code cleanup. Capture,
set and restore the Ghost mode.
(Build_Invariant_Procedure): Code cleanup.
(Build_Predicate_Functions): Capture, set and
restore the Ghost mode. Mark the generated functions as Ghost.
* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part):
Capture, set and restore the Ghost mode.
(Analyze_External_Property_In_Decl_Part): Capture, set and restore
the Ghost mode.
(Analyze_Initial_Condition_In_Decl_Part):
Capture, set and restore the Ghost mode.
(Analyze_Pragma):
Code cleanup. Capture, set and restore the Ghost mode. Flag
pragmas Linker_Section, No_Return, Unmodified, Unreferenced and
Unreferenced_Objects as illegal when it applies to both Ghost
and living arguments. Pragma Ghost cannot apply to synchronized
objects.
(Check_Kind): Moved to the spec of Sem_Prag.
(Process_Inline): Flag the pragma as illegal when it applies to
both Ghost and living arguments.
(Restore_Globals): New routine.
* sem_prag.ads Add pragma Default_Initial_Condition
to table Assertion_Expression_Pragma. Add new table
Is_Aspect_Specifying_Pragma.
(Check_Kind): Moved from body of Sem_Prag.
* sem_util.adb Add with and use clauses for Ghost.
(Build_Default_Init_Cond_Procedure_Body): Capture, set and restore
the Ghost mode.
(Build_Default_Init_Cond_Procedure_Declaration):
Capture, set and restore the Ghost mode. Mark the default
initial condition procedure as Ghost when it is declared
in a Ghost region.
(Is_Renaming_Declaration): New routine.
(Policy_In_List): Account for the single argument version of
Check_Pragma.
* sem_util.ads (Is_Renaming_Declaration): New routine.
* sinfo.adb (Is_Ghost_Pragma): New routine.
(Set_Is_Ghost_Pragma): New routine.
* sinfo.ads New attribute Is_Ghost_Pragma.
(Is_Ghost_Pragma): New routine along with pragma Inline.
(Set_Is_Ghost_Pragma): New routine along with pragma Inline.

From-SVN: r223684

9 years agoFix memory order description in atomic ops built-ins docs.
Torvald Riegel [Tue, 26 May 2015 10:45:56 +0000 (10:45 +0000)]
Fix memory order description in atomic ops built-ins docs.

From-SVN: r223683

9 years ago[multiple changes]
Arnaud Charlet [Tue, 26 May 2015 10:42:26 +0000 (12:42 +0200)]
[multiple changes]

2015-05-26  Robert Dewar  <dewar@adacore.com>

* sem_ch3.adb, sem_aux.adb, sem_aux.ads, exp_ch6.adb, sprint.adb:
Minor reformatting.

2015-05-26  Gary Dismukes  <dismukes@adacore.com>

* gnat1drv.adb, targparm.adb, targparm.ads, restrict.adb: Minor
reformatting and typo fixes in comments.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

* sem_ch7.adb (Swap_Private_Dependets): Set visibility of
the two views of a private dependent in two separate steps,
to ensure proper visibility in parent units analyzed for inlining.

From-SVN: r223682

9 years agosem_aux.adb, [...] (Get_Low_Bound): Use Type_Low_Bound.
Yannick Moy [Tue, 26 May 2015 10:40:39 +0000 (10:40 +0000)]
sem_aux.adb, [...] (Get_Low_Bound): Use Type_Low_Bound.

2015-05-26  Yannick Moy  <moy@adacore.com>

* sem_aux.adb, sem_aux.ads (Get_Low_Bound): Use Type_Low_Bound.
(Package_Body, Package_Spec): New queries moved
here from GNATprove.
(Package_Specification): Simplify query to remove use of loop.
* sem_util.adb, sem_util.ads (Enclosing_Declaration,
Enclosing_Package_Or_Subprogram, Is_Attribute_Update): New
queries moved here from GNATprove.

From-SVN: r223681

9 years ago[multiple changes]
Arnaud Charlet [Tue, 26 May 2015 10:39:16 +0000 (12:39 +0200)]
[multiple changes]

2015-05-26  Bob Duff  <duff@adacore.com>

* einfo.adb, einfo.ads, sprint.adb, lib-xref.ads: Minor cleanup: Remove
obsolete Entity_Kinds E_String_Type and E_String_Subtype. Update
redundant assertions.

2015-05-26  Gary Dismukes  <dismukes@adacore.com>

* sem_util.adb, sem_util.ads, sem_ch13.adb: Minor typo fixes.

From-SVN: r223680

9 years ago[multiple changes]
Arnaud Charlet [Tue, 26 May 2015 10:35:14 +0000 (12:35 +0200)]
[multiple changes]

2015-05-26  Doug Rupp  <rupp@adacore.com>

* init.c [vxworks]: Refine previous checkin.

2015-05-26  Robert Dewar  <dewar@adacore.com>

* exp_ch4.adb (Wrap_MA): New function.
(Expand_N_Op_Expon): Use Wrap_MA.

2015-05-26  Bob Duff  <duff@adacore.com>

* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
Do not use secondary stack to return limited records with
defaulted discriminants. This is an efficiency improvement.
* exp_ch6.adb, exp_dist.adb, sem_attr.adb, sem_aux.adb, sem_aux.ads,
sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb,
sem_util.adb: Change the sense of Is_Indefinite_Subtype to be
Is_Definite_Subtype. This is an improvement to readability (the double
negative in "not Is_Indefinite_Subtype" was slightly confusing). Also
disallow passing non-[sub]type entities, an unnecessary and slightly
bug-prone flexibility.

From-SVN: r223679

9 years ago[multiple changes]
Arnaud Charlet [Tue, 26 May 2015 10:29:25 +0000 (12:29 +0200)]
[multiple changes]

2015-05-26  Robert Dewar  <dewar@adacore.com>

* sem_aggr.adb (Resolve_Array_Aggregate): Defend against
bad bounds.
* debug.adb: Document -gnatd.k.
* erroutc.adb (Set_Msg_Insertion_Line_Number): Implement -gnatd.k.

2015-05-26  Robert Dewar  <dewar@adacore.com>

* gnat1drv.adb (Gnat1drv): Provide new arguments for
Get_Target_Parameters.
* restrict.adb (Set_Restriction_No_Specification_Of_Aspect):
new procedure.
(Set_Restriction_No_Use_Of_Attribute): new procedure.
* restrict.ads (Set_Restriction_No_Specification_Of_Aspect):
new procedure.
(Set_Restriction_No_Use_Of_Attribute): new procedure.
* s-rident.ads (Integer_Parameter_Restrictions): New subtype.
* targparm.adb (Get_Target_Parameters): Allow new restriction
pragmas No_Specification_Of_Aspect No_Use_Of_Attribute
No_Use_Of_Pragma.
* targparm.ads: New parameters for Get_Target_Parameters.
* tbuild.adb (Set_NOD): New name for Set_RND.
(Set_NSA): New procedure.
(Set_NUA): New procedure.
(Set_NUP): New procedure.
* tbuild.ads (Make_SC): Minor reformatting.
(Set_NOD): New name for Set_RND.
(Set_NSA, Set_NUA, Set_NUP): New procedure.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

* a-stwise.adb (Find_Token): If source'first is not positive,
an exception must be raised, as specified by RM 2005 A.4.3
(68/1). This must be checked explicitly, given that run-time
files are normally compiled without constraint checks.
* a-stzsea.adb (Find_Token): Ditto.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

* sem_util.ads sem_util.adb (Is_Current_Instance):  New predicate
to fully implement RM 8.6 (17/3). which earlier only applied
to synchronized types. Used to preanalyze aspects that include
current instances of types, such as Predicate and Invariant.
* sem_res.adb (Resolve_Entity_Name): Use Is_Current_Instance.
* sem_ch13.adb (Add_Predicates): In ASIS mode, preserve original
expression of aspect and analyze it to provide proper type
information.

2015-05-26  Robert Dewar  <dewar@adacore.com>

* rtsfind.ads: Add entries for RE_Exn[_Long]_Float.
* s-exnllf.adb (Exn_Float): New function.
(Exn_Long_Float): New function.
(Exn_Long_Long_Float): Rewritten interface.
(Exp): New name for what used to be Exn_Long_Long_Float.
* s-exnllf.ads (Exn_Float): New function.
(Exn_Long_Float): New function.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

* sem_ch8.adb (Find_Selected_Component): Do not emit an error
on a selected component when the prefix is a type name that is
a Current_Instance.
* einfo.ads: Minor grammar fix.

2015-05-26  Doug Rupp  <rupp@adacore.com>

* init.c [vxworks] (sysLib.h): Only for x86.

From-SVN: r223678

9 years agore PR fortran/66082 (memory leak with automatic array dummy argument with derived...
Paul Thomas [Tue, 26 May 2015 10:20:41 +0000 (10:20 +0000)]
re PR fortran/66082 (memory leak with automatic array dummy argument with derived type array constructor actual argument)

2015-05-26  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/66082
* trans-array.c (gfc_conv_array_parameter): Ensure that all
non-variable arrays with allocatable components have the
components deallocated after the procedure call.

2015-05-26  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/66082
* gfortran.dg/allocatable_scalar_13.f90: New test

From-SVN: r223677

9 years agolocale_conv.h: Fix copyright years.
Jonathan Wakely [Tue, 26 May 2015 09:52:25 +0000 (10:52 +0100)]
locale_conv.h: Fix copyright years.

* include/bits/locale_conv.h: Fix copyright years.
* include/bits/quoted_string.h: Likewise.
* src/filesystem/Makefile.am: Likewise.
* testsuite/22_locale/conversions/buffer/1.cc: Likewise.
* testsuite/22_locale/conversions/buffer/requirements/typedefs.cc:
Likewise.
* testsuite/22_locale/conversions/string/1.cc: Likewise.
* testsuite/22_locale/conversions/string/2.cc: Likewise.
* testsuite/22_locale/conversions/string/3.cc: Likewise.
* testsuite/22_locale/conversions/string/requirements/typedefs-2.cc:
Likewise.
* testsuite/22_locale/conversions/string/requirements/typedefs.cc:
Likewise.
* testsuite/util/testsuite_fs.h: Likewise.

From-SVN: r223676

9 years ago[multiple changes]
Arnaud Charlet [Tue, 26 May 2015 09:42:58 +0000 (11:42 +0200)]
[multiple changes]

2015-05-26  Doug Rupp  <rupp@adacore.com>

* init-vxsim.c (CPU): define as __VXSIM_CPU__
* sigtramp-vxworks-vxsim.c (CPU): Likewise.
sigtramp-vxworks-target.inc: Add check for SIMLINUX.
* sigtramp.h: Likewise.

2015-05-26  Robert Dewar  <dewar@adacore.com>

* sem_aux.adb, sem_disp.adb, sem_util.ads: Add comment.
* sem_util.adb: Minor reformatting

From-SVN: r223675

9 years agoinline.adb (Has_Initialized_Type): Adapt to new names.
Yannick Moy [Tue, 26 May 2015 09:35:07 +0000 (09:35 +0000)]
inline.adb (Has_Initialized_Type): Adapt to new names.

2015-05-26  Yannick Moy  <moy@adacore.com>

* inline.adb (Has_Initialized_Type): Adapt to new names.
* sem_aux.adb, sem_aux.ads (Get_Low_Bound, Number_Components,
Subprogram_Body, Subprogram_Body_Entity, Subprogram_Spec,
Subprogram_Specification): New query functions used in GNATprove.
* sem_disp.adb, sem_disp.ads (Is_Overriding_Subprogram): New
query functions used in GNATprove.
* sem_util.adb, sem_util.adso (Enclosing_Lib_Unit_Node,
Get_Cursor_Type, Get_Return_Object, Get_User_Defined_Eq,
Is_Double_Precision_Floating_Point_Type,
Is_Single_Precision_Floating_Point_Type): New query functions
used in GNATprove.

From-SVN: r223674

9 years ago[multiple changes]
Arnaud Charlet [Tue, 26 May 2015 09:33:01 +0000 (11:33 +0200)]
[multiple changes]

2015-05-26  Bob Duff  <duff@adacore.com>

* s-rpc.ads (Partition_ID): Increase maximum Partition_ID to
some huge number.
* a-except-2005.adb, a-except-2005.ads, a-except.adb,
a-except.ads, a-exexda.adb, a-exstat.adb: Minor comment fixes.

2015-05-26  Robert Dewar  <dewar@adacore.com>

* sinfo.adb: Minor comment addition.
* einfo.adb: Minor whitespace and punctuation fix.
* sem_util.adb: Minor editing of comments.

From-SVN: r223673

9 years ago[multiple changes]
Arnaud Charlet [Tue, 26 May 2015 09:28:14 +0000 (11:28 +0200)]
[multiple changes]

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

* sem_ch7.adb (Install_Private_Declarations,
Swap_Private_Dependents): Ensure that both views of the dependent
subtype are immediately visible if we are within their scope. This
may be needed when a procedure body is both the parent of an
instantiated child unit, and is itself used to inline a local
function.

2015-05-26  Gary Dismukes  <dismukes@adacore.com>

* exp_prag.adb, gnat1drv.adb: Minor reformatting.

2015-05-26  Eric Botcazou  <ebotcazou@adacore.com>

* exp_ch4.adb (Expand_N_Indexed_Component): In the circuit
detecting exceptions to the rewriting, deal with implicit
dereferences in the selected component case.

2015-05-26  Bob Duff  <duff@adacore.com>

* sem_ch13.adb (Analyze_One_Aspect): Do not
require the expression of the Disable_Controlled aspect to be
static in a generic template, because 'Enabled is not known
until the instance.

2015-05-26  Doug Rupp  <rupp@adacore.com>

* init-vxsim.c: New file for vxsim ZCX
* sigtramp-vxworks-vxsim.c: Likewise.
* sigtramp-vxworks.c: Factor out target dependent bits into ...
* sigtramp-vxworks-target.inc: ... here.
* sigtramp.h: Add vxsim zcx protos.
* init.c [vxworks...] (sysLib.h): Include.
(__gnat_map_signal): Make global.
 [...i386] (__gnat_error_handler): Call __gnat_vxsim_error_handler if
on vxsim.
[...i386] (__gnat_install_handler): Test if on vxsim.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

* sem_ch5.adb (Analyze_Iterator_Specification): For an element
iterator over an array, if the component is aliased, the loop
variable is aliased as well.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

* exp_ch6.adb (Expand_Actuals): For a function call with in-out
parameters that is rewritten as an expression_with_actions,
we preserve the original function call node for further use by
the caller (typically Expand_Call). In the presence of validity
checks, that function call, though it is labelled Analyzed to
prevent an infinite recursion, may be rewritten as a temporary
by Remove_Side_Effects.  Ensure that the caller has access to
the original function call to continue expansion.
* atree.ads: Minor typo in comment.

2015-05-26  Javier Miranda  <miranda@adacore.com>

* sem_util.adb (Check_Function_Writable_Actuals):
Add missing support to check the violation of writable actuals
in array aggregates that have a nonstatic range.

From-SVN: r223672

9 years agoexp_ch6.adb (Process_Contract_Cases_For): Update the call to Expand_Pragma_Contract_C...
Hristian Kirtchev [Tue, 26 May 2015 09:20:53 +0000 (09:20 +0000)]
exp_ch6.adb (Process_Contract_Cases_For): Update the call to Expand_Pragma_Contract_Cases.

2015-05-26  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch6.adb (Process_Contract_Cases_For): Update the call to
Expand_Pragma_Contract_Cases.
* exp_prag.ads, exp_prag.adb (Expand_Contract_Cases): Rename to
Expand_Pragma_Contract_Cases.
* sem_ch13.adb (Add_Invariants): Use the original aspect name
when creating the arguments of pragma Check. This ensures that
'Class is properly recognized and handled.

From-SVN: r223671

9 years agotree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
Richard Biener [Tue, 26 May 2015 09:03:53 +0000 (09:03 +0000)]
tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...

2015-05-26  Richard Biener  <rguenther@suse.de>

* tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
(vect_analyze_loop_operations): ... here.  Remove slp parameter,
detect whether we apply SLP.  Remove call to
vect_update_slp_costs_according_to_vf.
(vect_analyze_loop_2): Call vect_update_vf_for_slp and
vect_update_slp_costs_according_to_vf from here.  Dispatch
to vect_slp_analyze_operations to analyze SLP stmts.
* tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
unused bb_vec_info parameter, adjust assert.
(vect_slp_analyze_operations): Pass in the slp instance tree
instead of bb_vec_info.
(vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
* tree-vectorizer.h (vect_slp_analyze_operations): Declare.

From-SVN: r223670

9 years agognat1drv.adb: Minor adjustments.
Arnaud Charlet [Tue, 26 May 2015 08:19:55 +0000 (08:19 +0000)]
gnat1drv.adb: Minor adjustments.

* gnat1drv.adb: Minor adjustments.
(Adjust_Global_Switches): Disable some related flags in CodePeer mode.
* sem_ch4.adb (Has_Arbitrary_Evaluation_Order,
Stop_Subtree_Climbind): Code cleanup.
* einfo.ads: Minor comment change.

From-SVN: r223669

9 years ago[multiple changes]
Arnaud Charlet [Tue, 26 May 2015 08:17:51 +0000 (10:17 +0200)]
[multiple changes]

2015-05-26  Javier Miranda  <miranda@adacore.com>

* sem_aggr.adb (Resolve_Aggregate, Resolve_Extension_Aggregate):
Code cleanup.
* sem_ch3.adb (Build_Derived_Record_Type,
Record_Type_Declaration): Code cleanup.
* sem_ch4.adb (Has_Arbitrary_Evaluation_Order,
Stop_Subtree_Climbind): Tables which speed up the identification
of dangerous calls to Ada 2012 functions with writable actuals
(AI05-0144).
(Analyze_Arithmetic_Op, Analyze_Call, Analyze_Comparison_Op,
Analyze_Equality_Op, Analyze_Logical_Op, Analyze_Membership_Op,
Analyze_Range): Code cleanup.
(Is_Arbitrary_Evaluation_Order_Construct): Removed.
(Check_Writable_Actuals): Code cleanup using the added tables.
* sem_util.adb (Check_Function_Writable_Actuals): Return
immediately if the node does not have the flag Check_Actuals
set to True.

2015-05-26  Eric Botcazou  <ebotcazou@adacore.com>

* exp_ch6.adb (Add_Call_By_Copy_Code): Remove restrictive
condition in the detection of the effects of Remove_Side_Effects.
* exp_util.ads (Remove_Side_Effects): Add general and historical note.
* exp_util.adb (Is_Name_Reference): New predicate.
(Remove_Side_Effects): Use it in lieu of Is_Object_Reference
in order to decide whether to use the renaming to capture the
side effects of the subexpression.
(Side_Effect_Free): Remove obsolete test.

From-SVN: r223668

9 years ago[multiple changes]
Arnaud Charlet [Tue, 26 May 2015 08:15:24 +0000 (10:15 +0200)]
[multiple changes]

2015-05-26  Robert Dewar  <dewar@adacore.com>

* aspects.ads, aspects.adb: Add aspect Disable_Controlled.
* einfo.ads, einfo.adb (Disable_Controlled): New flag.
(Is_Controlled_Active): New function.
* exp_ch3.adb (Expand_Freeze_Record_Type): Use
Is_Controlled_Active.
* exp_util.adb (Needs_Finalization): Finalization not needed
if Disable_Controlled set.
* freeze.adb (Freeze_Array_Type): Do not set
Has_Controlled_Component if the component has Disable_Controlled.
(Freeze_Record_Type): ditto.
* sem_ch13.adb (Decorate): Minor reformatting.
(Analyze_Aspect_Specifications): Implement Disable_Controlled.
* sem_ch3.adb (Analyze_Object_Declaration): Handle
Disable_Controlled.
(Array_Type_Declaration): ditto.
(Build_Derived_Private_Type): ditto.
(Build_Derived_Type): ditto.
(Record_Type_Definition): ditto.
* snames.ads-tmpl: Add Name_Disable_Controlled.

2015-05-26  Eric Botcazou  <ebotcazou@adacore.com>

* exp_ch6.adb (Expand_Actuals): Use a constant declaration instead
of a renaming to capture the return value of a function call.
(Expand_Simple_Function_Return): Call Remove_Side_Effects
instead of removing side effects manually before the call to
_Postconditions.

From-SVN: r223667

9 years agoMinor reformatting.
Arnaud Charlet [Tue, 26 May 2015 08:12:26 +0000 (10:12 +0200)]
Minor reformatting.

From-SVN: r223666

9 years agoexp_ch4.adb (Expand_N_Op_Expon): Deal with problem of wrong order in calling Duplicat...
Robert Dewar [Tue, 26 May 2015 08:12:15 +0000 (08:12 +0000)]
exp_ch4.adb (Expand_N_Op_Expon): Deal with problem of wrong order in calling Duplicate_Subexpr.

2015-05-26  Robert Dewar  <dewar@adacore.com>

* exp_ch4.adb (Expand_N_Op_Expon): Deal with problem of wrong
order in calling Duplicate_Subexpr.
* einfo.ads: Fix documentation of Object/Value size for scalar types.

From-SVN: r223665

9 years agoexp_aggr.adb (Build_Array_Aggr_Code, Gen_Assign): If a component is default-initializ...
Ed Schonberg [Tue, 26 May 2015 08:10:46 +0000 (08:10 +0000)]
exp_aggr.adb (Build_Array_Aggr_Code, Gen_Assign): If a component is default-initialized and its type has an invariant procedure...

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

* exp_aggr.adb (Build_Array_Aggr_Code, Gen_Assign):
If a component is default-initialized and its type has an
invariant procedure, insert an invariant test after code for
default-initialization of the component.

From-SVN: r223664

9 years ago[multiple changes]
Arnaud Charlet [Tue, 26 May 2015 08:08:03 +0000 (10:08 +0200)]
[multiple changes]

2015-05-26  Gary Dismukes  <dismukes@adacore.com>

* einfo.ads, sem_util.adb, sem_ch4.adb: Minor reformatting.

2015-05-26  Robert Dewar  <dewar@adacore.com>

* exp_unst.adb, exp_unst.ads: Change to using Subps table index for
making AREC entity names unique.

2015-05-26  Ed Schonberg  <schonberg@adacore.com>

* sem_cat.adb (Has_Stream_Attribute_Definition): If the type
has aspect specifications, examine the corresponding list of
representation items to determine whether there is a visible
stream operation. The attribute definition clause generated from
the aspect will be inserted at the freeze point of the type,
which may be in the private part and not directly visible,
but the aspect makes the operation available to a client.

From-SVN: r223663

9 years agosem_util.adb: Minor code reorganization.
Robert Dewar [Tue, 26 May 2015 08:06:51 +0000 (08:06 +0000)]
sem_util.adb: Minor code reorganization.

2015-05-26  Robert Dewar  <dewar@adacore.com>

* sem_util.adb: Minor code reorganization.
* sem_ch6.adb: Minor reformatting.

From-SVN: r223662

9 years agoDaily bump.
GCC Administrator [Tue, 26 May 2015 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r223661

9 years agoutils.c (maybe_pad_type): Do not apply adjustment to original size for elementary...
Eric Botcazou [Mon, 25 May 2015 21:30:39 +0000 (21:30 +0000)]
utils.c (maybe_pad_type): Do not apply adjustment to original size for elementary types before issuing...

* gcc-interface/utils.c (maybe_pad_type): Do not apply adjustment to
original size for elementary types before issuing the size warning.

From-SVN: r223657

9 years agotargtyps.c (get_float_words_be): Rename into...
Eric Botcazou [Mon, 25 May 2015 21:12:39 +0000 (21:12 +0000)]
targtyps.c (get_float_words_be): Rename into...

* gcc-interface/targtyps.c (get_float_words_be): Rename into...
(get_target_float_words_be): ...this.
(get_words_be): Rename into...
(get_target_words_be): ...this.
(get_bytes_be): Rename into...
(get_target_bytes_be): ...this.
(get_bits_be): Rename into...
(get_target_bits_be): ...this.
* gcc-interface/gigi.h (standard_datatypes): Remove ADT_ptr_void_type.
(ptr_void_type_node): Delete.
(get_target_float_size): Likewise.
(get_target_double_size): Likewise.
(get_target_long_double_size): Likewise.
(get_float_words_be): Likewise.
(get_words_be): Likewise.
(get_bytes_be): Likewise.
(get_bits_be): Likewise.
(get_target_float_words_be): Declare.
(get_target_words_be): Likewise.
(get_target_bytes_be): Likewise.
(get_target_bits_be): Likewise.
* gcc-interface/decl.c (gnat_to_gnu_entity): Replace ptr_void_type_node
with ptr_type_node.
(intrin_return_compatible_p): Likewise.
* gcc-interface/trans.c (gigi): Likewise.
* gcc-interface/utils2.c (maybe_wrap_malloc): Likewise.
(maybe_wrap_free): Likewise.
* gcc-interface/utils.c (maybe_pad_type): Remove superfluous space.
* gcc-interface/misc.c (gnat_init): Do not set ptr_void_type_node.

From-SVN: r223656

9 years agodecl.c (elaborate_expression): Take a const string suffix instead of a tree.
Eric Botcazou [Mon, 25 May 2015 21:09:25 +0000 (21:09 +0000)]
decl.c (elaborate_expression): Take a const string suffix instead of a tree.

* gcc-interface/decl.c (elaborate_expression): Take a const string
suffix instead of a tree.
(elaborate_expression_1): Likewise.
(elaborate_expression_2): Likewise.
(gnat_to_gnu_entity): Adjust to above changes.
(build_subst_list): Likewise.
(get_entity_char): New static function.

From-SVN: r223655

9 years agodecl.c (gnat_to_gnu_entity): Move around.
Eric Botcazou [Mon, 25 May 2015 21:05:03 +0000 (21:05 +0000)]
decl.c (gnat_to_gnu_entity): Move around.

* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Move around.
<E_Exception>: Merge with E_Variable case.
<E_Variable>: Remove 'object' label.

From-SVN: r223654

9 years agodecl.c (gnat_to_gnu_entity): Minor tweak.
Eric Botcazou [Mon, 25 May 2015 20:59:27 +0000 (20:59 +0000)]
decl.c (gnat_to_gnu_entity): Minor tweak.

* gcc-interface/decl.c (gnat_to_gnu_entity): Minor tweak.
* gcc-interface/trans.c (finalize_nrv_unc_r): Use CONSTRUCTOR_ELT.
* gcc-interface/utils.c (convert): Likewise and simplify.
(remove_conversions): Likewise.
* gcc-interface/utils2.c (compare_fat_pointers): Likewise.
(build_unary_op): Likewise and simplify.

From-SVN: r223653

9 years agogigi.h (build_atomic_load): Adjust prototype.
Eric Botcazou [Mon, 25 May 2015 20:18:44 +0000 (20:18 +0000)]
gigi.h (build_atomic_load): Adjust prototype.

* gcc-interface/gigi.h (build_atomic_load): Adjust prototype.
(build_atomic_store): Likewise.
(build_load_modify_store): Declare.
(VECTOR_TYPE_P): Delete.
* gcc-interface/decl.c (gnat_to_gnu_entity): Replace Is_Atomic with
Is_Atomic_Or_VFA throughout.
<E_Array_Type>: Build a variant of the XUA type instead of forcing
TYPE_VOLATILE on it.
<E_Array_Subtype>: Use the main variant of the base type.
Do not force TYPE_VOLATILE on the type being built.
<E_Record_Type>: Likewise.
<E_Array_Subtype>: Likewise.
<E_Subprogram_Type>: Rename local variable.
Add Atomic qualifier in conjunction with Volatile on types if needed.
Force BLKmode for by-ref types only at the end of the processing.
Change qualifiers only after changing the mode of the type.  Set
TYPE_UNIVERSAL_ALIASING_P on the type directly.
(check_ok_for_atomic_type): Issue specific error message for VFA.
(gnat_to_gnu_component_type): Replace Is_Atomic with
Is_Atomic_Or_VFA throughout.
* gcc-interface/misc.c (gnat_get_alias_set): Test
TYPE_UNIVERSAL_ALIASING_P on the type directly.
* gcc-interface/trans.c (lvalue_required_p): Replace Is_Atomic with
Is_Atomic_Or_VFA throughout.  Add missing guard.
(node_is_atomic): New predicate.
(node_has_volatile_full_access): Likewise.
(gnat_strip_type_conversion): New function.
(outer_atomic_access_required_p): New predicate.
(atomic_sync_required_p): Rename into...
(atomic_access_required_p): ...this.  Add SYNC parameter, scan the
parent node first and then look for the atomic setting.  Add support
for Volatile_Full_Access.
(Call_to_gnu): Add atomic_access and outer_atomic_access parameters
and adjusts calls to above functions.  Use load-modify-store sequence
for updates of In/Out and Out parameters if required, as well as for
moving the result to the target if required.  Add couple of missing
guards.
(gnat_to_gnu): Adjust calls to above functions.
<N_Object_Renaming_Declaration>: If the renamed object has side-effects
evaluate only its address.
<N_Assignment_Statement>: Adjust call to Call_to_gnu.  Use load-modify
store sequence if required.
<N_Function_Call>: Adjust call to Call_to_gnu.
(extract_values): Adjust comment.
* gcc-interface/utils2.c (build_atomic_load): Add SYNC parameter and
use relaxed memory model if it is not set.
(build_atomic_store): Likewise.
(call_is_atomic_load): New predicate.
(build_load_modify_store): New function.
(build_binary_op) <MODIFY_EXPR>: Accept SAVE_EXPR on the LHS.
(gnat_stabilize_reference) <CALL_EXPR>: Deal with atomic loads.

From-SVN: r223652

9 years agoi386.h (enum reg_class): Move CLOBBERED_REGS prior to Q_REGS.
Alexander Monakov [Mon, 25 May 2015 18:07:26 +0000 (21:07 +0300)]
i386.h (enum reg_class): Move CLOBBERED_REGS prior to Q_REGS.

* config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
Q_REGS.  Expand comment.
(REG_CLASS_NAMES): Ditto.
(REG_CLASS_CONTENTS): Ditto.
testsuite:
* gcc.target/i386/pr66232-1.c: Adjust scan pattern.
* gcc.target/i386/pr66232-3.c: Likewise.

From-SVN: r223650

9 years agore PR target/66274 (gcc6: x86 -m32 emits 64bit register in inline asm)
Uros Bizjak [Mon, 25 May 2015 17:49:28 +0000 (19:49 +0200)]
re PR target/66274 (gcc6: x86 -m32 emits 64bit register in inline asm)

PR target/66274
* config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
when LEGACY_INT_REGNO_P is processed.

testsuite/ChangeLog:

PR target/66274
* gcc.target/i386/pr66274.c: New test.

From-SVN: r223649