James Greenhalgh [Fri, 1 Aug 2014 08:56:05 +0000 (08:56 +0000)]
[Patch] Not very subtle fix for pr61510
gcc/
PR regression/61510
* cgraphunit.c (analyze_functions): Use get_create rather than get
for decls which are clones of abstract functions.
From-SVN: r213425
Vincent Celier [Fri, 1 Aug 2014 08:34:02 +0000 (08:34 +0000)]
debug.adb: Remove doc for gnatmake/gprbuild switch -ds.
2014-08-01 Vincent Celier <celier@adacore.com>
* debug.adb: Remove doc for gnatmake/gprbuild switch -ds.
* make.adb (List_Bad_Compilations): Use Opt.No_Exit_Message
instead of Debug.Debug_Flag_S.
* makeutl.adb (Finish_Program, Fail_Program): Use Opt flag
No_Exit_Message instead of Debug.Debug_Flag_S to suppress exit
error messages.
* makeutl.ads (No_Exit_Message_Option): New constant string
for switch --no-exit-message.
* opt.ads (No_Exit_Message): New Boolean flag, defaulted to False.
* switch-m.adb (Scan_Make_Switches): Recognize new switch
--no-exit-message.
From-SVN: r213424
Arnaud Charlet [Fri, 1 Aug 2014 08:32:27 +0000 (10:32 +0200)]
[multiple changes]
2014-08-01 Arnaud Charlet <charlet@adacore.com>
* exp_vfpt.adb, exp_vfpt.ads: Removed, no longer used.
* gcc-interface/Make-lang.in: Remove exp_vfpt.o
2014-08-01 Javier Miranda <miranda@adacore.com>
* inline.ads (Inlined_Calls, Backend_Calls,
Backend_Inlined_Subps, Backend_Not_Inlined_Subps): Declarations
moved to inline.adb (Cannot_Inline): Update documentation.
(Check_And_Build_Body_To_Inline): Renamed.
(List_Inlining_Info): Subprogram moved here from package exp_ch6.
* inline.adb (Check_Inlining_Restrictions): New local variable.
(Inlined_Calls, Backend_Calls, Backend_Inlined_Subps,
Backend_Not_Inlined_Subps): Declarations moved here
from inline.ads (Number_Of_Statements): Removed.
(Remove_Pragmas): Avoid duplicated version of this subprogram.
(Build_Body_To_Inline): Code cleanup.
(Build_Body_To_Inline.Has_Excluded_Statament): Removed.
(Check_And_Build_Body_To_Inline): Renamed. Code cleanup.
(Check_Body_To_Inline): Removed.
(Generate_Body_To_Inline): Renamed as Generate_Subprogram_Body.
(Has_Excluded_Declaration): No action if not
Check_Inlining_Restrictions.
(Has_Excluded_Statement): No action if not Check_Inlining_Restrictions.
(Initialize): Initialize the lists of inlined calls and subprograms.
(List_Inlining_Info): Subprogram moved here from package exp_ch6.
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Update call
to Check_And_Build_Body_To_Inline since it has been renamed as
Check_And_Split_Unconstrained_Function
* exp_ch6.ad[sb] (List_Inlining_Info): Subprogram moved to
package inline.
* gnat1drv.adb Update call to Inline.List_Inlining_Info.
2014-08-01 Vincent Celier <celier@adacore.com>
* debug.adb: Add documentation for new debug switch -ds.
* make.adb (List_Bad_Compilations): Do not issue any message
when switch -ds is specified.
* makeutl.adb (Fail_Program): Do not issue any message when
-ds is specified.
(Finish_Program): Ditto.
2014-08-01 Robert Dewar <dewar@adacore.com>
* s-exnint.adb, s-exnint.ads, s-wwdwch.ads, s-carsi8.ads,
s-casi32.ads, indepsw.adb, a-timoau.ads, s-explli.adb, s-explli.ads,
s-casi16.ads, s-powtab.ads, g-wistsp.ads, a-ztmoau.adb,
indepsw-gnu.adb, s-imgllb.ads, types.adb, gnat.ads, s-proinf.adb,
indepsw-aix.adb, s-caun64.ads, s-imgllw.ads, s-traces-default.adb,
s-vxwork-x86.ads, s-expllu.adb, s-exnlli.adb, s-exnlli.ads,
s-traces.adb, widechar.ads, stand.adb, s-expint.adb,
s-tratas-default.adb, s-expint.ads, s-geveop.ads, s-caun32.ads,
s-expuns.adb, s-mantis.adb, s-mantis.ads, s-caun16.ads, s-tasinf.adb,
s-memcop.ads, s-dsaser.ads, s-imgbiu.ads, a-szmzco.ads, g-strspl.ads,
s-casi64.ads, g-zstspl.ads, indepsw-mingw.adb, tree_io.adb,
s-boarop.ads, uname.ads, s-fore.adb, s-fore.ads, g-timsta.adb,
g-timsta.ads, s-assert.adb, s-vector.ads, s-tratas.adb,
s-tratas.ads: Minor fix to copyright notices.
2014-08-01 Eric Botcazou <ebotcazou@adacore.com>
* sinfo.ads: Remove long obsolete comment.
From-SVN: r213423
Ed Schonberg [Fri, 1 Aug 2014 08:26:57 +0000 (10:26 +0200)]
sem_util.adb: Add guard to setting of No_Predicate_On_Actual.
* sem_util.adb: Add guard to setting of No_Predicate_On_Actual.
* sem_ch3.adb: Minor reformatting.
From-SVN: r213422
Ed Schonberg [Fri, 1 Aug 2014 08:24:57 +0000 (10:24 +0200)]
sem_util.adb: Add guard to setting of No_Predicate_On_Actual.
2014-08-01 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb: Add guard to setting of No_Predicate_On_Actual.
* sem_ch3.adb: Minor reformatting.
From-SVN: r213421
Pascal Obry [Fri, 1 Aug 2014 08:24:09 +0000 (08:24 +0000)]
cstreams.c: Only enable large file support on know supported platforms.
2014-08-01 Pascal Obry <obry@adacore.com>
* cstreams.c: Only enable large file support on know supported
platforms. Add missing defines/includes.
From-SVN: r213420
Ed Schonberg [Fri, 1 Aug 2014 08:22:22 +0000 (08:22 +0000)]
2014-08-01 Ed Schonberg <schonberg@adacore.com>
* einfo.ads, einfo.adb New flags No_Predicate_On_Actual and
No_Dynamic_Predicate_On_Actual, to enforce the generic contract
on generic units that contain constructs that forbid subtypes
with predicates.
* sem_ch3.adb (Analyze_Subtype_Declaration, Process_Subtype):
Inherit flags indicating the presence of predicates in subtype
declarations with and without constraints.
(Inherit_Predicate_Flags): Utility for the above.
* sem_util.adb (Bad_Predicated_Subtype_Use): In a generic context,
indicate that the actual cannot have predicates, and preserve
warning. In an instance, report error if actual has predicates
and the construct appears in a package declaration.
* sem_ch12.adb (Diagnose_Predicated_Actual): Report error
for an actual with predicates, if the corresponding formal
carries No_Predicate_On_Actual or (in the case of a loop)
No_Dynamic_Predicate_On_Actual.
* sem_ch13.adb (Build_Predicate_Functions); Do not build a
Static_Predicate function if the type is non-static (in the
presence of previous errors),
* sem_ch5.adb (Analyze_Loop_Parameter_Specification): Set flag
No_Dynamic_Predicate_On_Actual in a generic context, to enforce
generic contract on actuals that cannot have predicates.
From-SVN: r213418
Martin Liska [Fri, 1 Aug 2014 08:20:57 +0000 (10:20 +0200)]
IPA ICF pass 1/N
* gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
* ipa-prop.h (count_formal_params): Global function created from static.
* ipa-prop.c (count_formal_params): Likewise.
* ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
profiles for semantically equivalent functions.
* passes.c (do_per_function): If we load body of a function
during WPA, this condition should behave same.
* varpool.c (ctor_for_folding): More tolerant assert for variable
aliases created during WPA.
From-SVN: r213417
Pascal Obry [Fri, 1 Aug 2014 08:19:53 +0000 (08:19 +0000)]
a-direct.adb (C_Size): Returns an int64.
2014-08-01 Pascal Obry <obry@adacore.com>
* a-direct.adb (C_Size): Returns an int64.
* osint.adb (System.CRTL): New with clause.
(File_Length.Internal): Returns an int64.
* s-os_lib.ads (File_Length): Returns an int64.
From-SVN: r213416
Robert Dewar [Fri, 1 Aug 2014 08:19:00 +0000 (08:19 +0000)]
* gcc-interface/decl.c, gcc-interface/trans.c: Remove VMS handling.
From-SVN: r213415
Robert Dewar [Fri, 1 Aug 2014 08:17:20 +0000 (08:17 +0000)]
gnatchop.adb, [...]: Minor reformatting.
2014-08-01 Robert Dewar <dewar@adacore.com>
* gnatchop.adb, gnatcmd.adb, make.adb, mlib-prj.adb, bindgen.adb,
mlib.ads, butil.adb, clean.adb, binde.adb, gnatls.adb, gnatname.adb,
osint.adb, krunch.adb: Minor reformatting.
2014-08-01 Robert Dewar <dewar@adacore.com>
* inline.adb, inline.ads, fe.h, einfo.adb, einfo.ads, sem_util.adb,
sem_util.ads, exp_ch4.adb, exp_ch11.adb, exp_ch6.adb, cstand.adb,
sem_mech.adb, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb, snames.ads-tmpl:
Remove VMS-specific code.
From-SVN: r213414
Arnaud Charlet [Fri, 1 Aug 2014 08:12:27 +0000 (08:12 +0000)]
binde.adb, [...]: Remove VMS handling.
2014-08-01 Arnaud Charlet <charlet@adacore.com>
* binde.adb, bindgen.adb, butil.adb, clean.adb, gnatbind.adb,
gnatchop.adb, gnatcmd.adb, gnatls.adb, gnatname.adb, krunch.adb,
make.adb, makeutl.adb, memtrack.adb, mlib-prj.adb, mlib.adb,
mlib.ads, tempdir.adb: Remove VMS handling.
From-SVN: r213413
Pascal Obry [Fri, 1 Aug 2014 08:10:34 +0000 (08:10 +0000)]
adaint.h, adaint.c (__gnat_file_length): Returns an __int64.
2014-08-01 Pascal Obry <obry@adacore.com>
* adaint.h, adaint.c (__gnat_file_length): Returns an __int64.
(__gnat_named_file_length): Likewise.
(__gnat_file_length_attr): Likewise.
* a-direct.adb (C_Size): Use size_t as returned type.
* osint.adb (File_Length): Adjust spec for Internal routine
(returns size_t).
* s-os_lib.adb (File_Length): Now returns a CRTL.size_t.
(System.CRTL): With claused moved to spec.
* s-os_lib.ads (System.CRTL): With clause moved to here.
From-SVN: r213412
Pascal Obry [Fri, 1 Aug 2014 08:09:43 +0000 (08:09 +0000)]
adaint.h, adaint.c (__gnat_open): Added.
2014-08-01 Pascal Obry <obry@adacore.com>
* adaint.h, adaint.c (__gnat_open): Added.
* s-crtl.ads (open): Import __gnat_open for large file support.
From-SVN: r213411
Arnaud Charlet [Fri, 1 Aug 2014 08:08:59 +0000 (10:08 +0200)]
[multiple changes]
2014-08-01 Robert Dewar <dewar@adacore.com>
* sem_case.adb (Dup_Choice): Improve message for integer constants.
2014-08-01 Arnaud Charlet <charlet@adacore.com>
* gnatlink.adb: Remove special handling of VMS, RTX and JVM.
2014-08-01 Pascal Obry <obry@adacore.com>
* adaint.h (GNAT_OPEN): Defines as open64 where supported.
* adaint.c (GNAT_OPEN): Uses new macro where needed.
From-SVN: r213410
Jakub Jelinek [Fri, 1 Aug 2014 08:05:13 +0000 (10:05 +0200)]
libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
* libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
(struct gomp_taskwait): New type.
(struct gomp_task): Add taskwait and parent_depends_on, remove
in_taskwait and taskwait_sem fields.
(gomp_finish_task): Don't destroy taskwait_sem.
* task.c (gomp_init_task): Don't init in_taskwait, instead init
taskwait and parent_depends_on.
(GOMP_task): For if (0) tasks with depend clause that depend on
earlier tasks don't defer them, instead call
gomp_task_maybe_wait_for_dependencies to wait for the dependencies.
Initialize redundant_out field, for redundant out entries just
move them at the end of linked list instead of removing them
completely, and set redundant_out flag instead of redundant.
(gomp_task_run_pre): Update last_parent_depends_on if scheduling
that task.
(gomp_task_run_post_handle_dependers): If parent is in
gomp_task_maybe_wait_for_dependencies and newly runnable task
is not parent_depends_on, queue it in parent->children linked
list after all runnable tasks with parent_depends_on set.
Adjust for addition of taskwait indirection.
(gomp_task_run_post_remove_parent): If parent is in
gomp_task_maybe_wait_for_dependencies and task to be removed
is parent_depends_on, decrement n_depend and if needed awake
parent. Adjust for addition of taskwait indirection.
(GOMP_taskwait): Adjust for addition of taskwait indirection.
(gomp_task_maybe_wait_for_dependencies): New function.
* testsuite/libgomp.c/depend-5.c: New test.
From-SVN: r213408
Martin Liska [Fri, 1 Aug 2014 07:58:47 +0000 (09:58 +0200)]
invoke.texi (Options That Control Optimization): Documentation for -foptimize-strlen introduced.
* doc/invoke.texi (Options That Control Optimization): Documentation
for -foptimize-strlen introduced. Optimization levels default options
fixed.
From-SVN: r213407
Jakub Jelinek [Fri, 1 Aug 2014 07:52:43 +0000 (09:52 +0200)]
opts.c (common_handle_option): Handle -fsanitize=alignment.
* opts.c (common_handle_option): Handle -fsanitize=alignment.
* ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
(ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
type to bool.
* stor-layout.h (min_align_of_type): New prototype.
* asan.c (pass_sanopt::execute): Don't perform gsi_next if
ubsan_expand* told us not to do it. Remove the extra gsi_end_p
check.
* ubsan.c: Include builtins.h.
(ubsan_expand_bounds_ifn): Change return type to bool,
always return true.
(ubsan_expand_null_ifn): Change return type to bool, change
argument to gimple_stmt_iterator *. Handle both null and alignment
sanitization, take type from ckind argument's type rather than
first argument.
(instrument_member_call): Removed.
(instrument_mem_ref): Remove t argument, add mem and base arguments.
Handle both null and alignment sanitization, don't say whole
struct access is member access. Build 3 argument IFN_UBSAN_NULL
call instead of 2 argument.
(instrument_null): Adjust instrument_mem_ref caller. Don't
instrument calls here.
(pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
like SANITIZE_NULL.
* stor-layout.c (min_align_of_type): New function.
* flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
Or it into SANITIZE_UNDEFINED.
* doc/invoke.texi (-fsanitize=alignment): Document.
cp/
* cp-gimplify.c (cp_genericize_r): For -fsanitize=null and/or
-fsanitize=alignment call ubsan_maybe_instrument_reference
for casts to REFERENCE_TYPE and ubsan_maybe_instrument_member_call
for calls to member functions.
c-family/
* c-common.h (min_align_of_type): Removed prototype.
* c-common.c (min_align_of_type): Removed.
* c-ubsan.h (ubsan_maybe_instrument_reference,
ubsan_maybe_instrument_member_call): New prototypes.
* c-ubsan.c: Include stor-layout.h and builtins.h.
(ubsan_maybe_instrument_reference_or_call,
ubsan_maybe_instrument_reference, ubsan_maybe_instrument_call): New
functions.
testsuite/
* c-c++-common/ubsan/align-1.c: New test.
* c-c++-common/ubsan/align-2.c: New test.
* c-c++-common/ubsan/align-3.c: New test.
* c-c++-common/ubsan/align-4.c: New test.
* c-c++-common/ubsan/align-5.c: New test.
* c-c++-common/ubsan/attrib-4.c: New test.
* g++.dg/ubsan/align-1.C: New test.
* g++.dg/ubsan/align-2.C: New test.
* g++.dg/ubsan/align-3.C: New test.
* g++.dg/ubsan/attrib-1.C: New test.
* g++.dg/ubsan/null-1.C: New test.
* g++.dg/ubsan/null-2.C: New test.
From-SVN: r213406
Tom de Vries [Fri, 1 Aug 2014 06:16:07 +0000 (06:16 +0000)]
Don't run cproj-fails-with-broken-glibc for broken glibc
2014-08-01 Tom de Vries <tom@codesourcery.com>
* lib/target-supports.exp (check_effective_target_glibc)
(check_effective_target_glibc_2_12_or_later)
(check_effective_target_not_glibc_2_11_or_earlier): New proc.
* gcc.dg/cproj-fails-with-broken-glibc.c: Require effective target
not_glibc_2_11_or_earlier.
From-SVN: r213403
Yury Gribov [Fri, 1 Aug 2014 04:19:59 +0000 (04:19 +0000)]
mklog: Allow running from arbitrary folder.
2014-08-01 Yury Gribov <y.gribov@samsung.com>
* mklog: Allow running from arbitrary folder.
From-SVN: r213401
Andi Kleen [Fri, 1 Aug 2014 02:52:52 +0000 (02:52 +0000)]
Convert tree-ssa-tail-merge to inchash
gcc/:
2014-07-31 Andi Kleen <ak@linux.intel.com>
* tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
From-SVN: r213400
Andi Kleen [Fri, 1 Aug 2014 02:52:41 +0000 (02:52 +0000)]
Convert tree-ssa-sccvn to inchash
gcc/:
2014-07-31 Andi Kleen <ak@linux.intel.com>
* tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
inchash.
(vn_reference_compute_hash): Dito.
(vn_nary_op_compute_hash): Dito.
(vn_phi_compute_hash): Dito.
* tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
From-SVN: r213399
Andi Kleen [Fri, 1 Aug 2014 02:52:30 +0000 (02:52 +0000)]
Convert tree-ssa-dom to inchash
gcc/:
2014-07-31 Andi Kleen <ak@linux.intel.com>
* tree-ssa-dom.c (iterative_hash_exprs_commutative):
Rename to inchash:add_expr_commutative. Convert to inchash.
(iterative_hash_hashable_expr): Rename to
inchash:add_hashable_expr. Convert to inchash.
(avail_expr_hash): Dito.
From-SVN: r213398
Andi Kleen [Fri, 1 Aug 2014 02:52:19 +0000 (02:52 +0000)]
Convert ipa-devirt to inchash
gcc/:
2014-07-31 Andi Kleen <ak@linux.intel.com>
* ipa-devirt.c (polymorphic_call_target_hasher::hash):
Convert to inchash.
From-SVN: r213397
Andi Kleen [Fri, 1 Aug 2014 02:52:08 +0000 (02:52 +0000)]
Convert asan.c to inchash
gcc/:
2014-07-31 Andi Kleen <ak@linux.intel.com>
* asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
From-SVN: r213396
Andi Kleen [Fri, 1 Aug 2014 02:51:57 +0000 (02:51 +0000)]
RTL & dwarf2out changes
Convert dwarf2out and rtl.c to the new inchash interface.
gcc/:
2014-07-31 Andi Kleen <ak@linux.intel.com>
* Makefile.in (OBJS): Add rtlhash.o
* dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
(loc_checksum): Dito.
(loc_checksum_ordered): Dito.
(hash_loc_operands): Dito.
(hash_locs): Dito.
(hash_loc_list): Dito.
* rtl.c (iterative_hash_rtx): Moved to rtlhash.c
* rtl.h (iterative_hash_rtx): Moved to rtlhash.h
* rtlhash.c: New file.
* rtlhash.h: New file.
From-SVN: r213395
Andi Kleen [Fri, 1 Aug 2014 02:51:46 +0000 (02:51 +0000)]
Change inchash to name space.
Change class inchash to move into a inchash namespace as requested.
The class is now inchash::hash
Rename iterative_hstate_expr to inchash::add_expr
... and convert existing users. It wasn't possible to use hash::,
because that lead to name space conflicts with cp and objc.
So class inchash is now inchash::hash and iterative_hstate_expr
is now inchash::add_expr.
gcc/:
2014-07-31 Andi Kleen <ak@linux.intel.com>
* inchash.h (inchash): Change inchash class to namespace.
(class hash): ... Rename from inchash.
(add_object): Move from macro to class template.
* lto-streamer-out.c (hash_tree): Change inchash
to inchash::hash.
* tree.c (build_type_attribute_qual_variant): Dito.
(type_hash_list): Dito.
(attribute_hash_list): Dito.
(iterative_hstate_expr): Rename to inchash::add_expr
(build_range_type_1): Change inchash to inchash::hash
and use hash::add_expr.
(build_array_type_1): Dito.
(build_function_type): Dito
(build_method_type_directly): Dito.
(build_offset_type): Dito.
(build_complex_type): Dito.
(make_vector_type): Dito.
* tree.h (iterative_hash_expr): Dito.
gcc/lto/:
2014-07-31 Andi Kleen <ak@linux.intel.com>
* lto.c (hash_canonical_type): Use inchash::hash
and use inchash::add_expr.
(iterative_hash_canonical_type): Dito.
From-SVN: r213394
GCC Administrator [Fri, 1 Aug 2014 00:17:00 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r213391
Chen Gang [Thu, 31 Jul 2014 22:31:39 +0000 (22:31 +0000)]
* gcc.c (do_spec_1): Allocate enough space for saved_suffix.
From-SVN: r213387
Tom de Vries [Thu, 31 Jul 2014 18:51:54 +0000 (18:51 +0000)]
Remove superfluous function declaration
2014-07-31 Tom de Vries <tom@codesourcery.com>
* gcc.dg/pr51879-7.c: Remove superfluous declaration of bar.
From-SVN: r213383
James Greenhalgh [Thu, 31 Jul 2014 16:45:38 +0000 (16:45 +0000)]
[AArch64] arm_neon.h - add vpaddd_f64, vpaddd_s64, vpaddd_u64 intrinsics
gcc/
* config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
correct alphabetical position.
(vpaddd_f64): Rewrite using builtins.
(vpaddd_s64): Move to correct alphabetical position.
(vpaddd_u64): New.
gcc/testsuite/
* gcc.target/aarch64/scalar_intrinsics.c (test_vpaddd_f64): New.
(test_vpaddd_s64): Likewise.
(test_vpaddd_s64): Likewise.
* gcc.target/aarch64/simd/vpaddd_f64: New.
* gcc.target/aarch64/simd/vpaddd_s64: New.
* gcc.target/aarch64/simd/vpaddd_u64: New.
From-SVN: r213382
Oleg Endo [Thu, 31 Jul 2014 16:27:56 +0000 (16:27 +0000)]
re PR target/61844 (ICE when building libgcc for sh64 cross-compiler)
gcc/
PR target/61844
* config/sh/sh.c (sh_legitimate_address_p,
sh_legitimize_reload_address): Handle reg+reg address modes when
ALLOW_INDEXED_ADDRESS is false.
* config/sh/predicates.md (general_movsrc_operand,
general_movdst_operand): Likewise.
From-SVN: r213381
Alan Modra [Thu, 31 Jul 2014 16:22:58 +0000 (01:52 +0930)]
ibm-ldouble.c (typedef union longDblUnion): Delete.
* config/rs6000/ibm-ldouble.c (typedef union longDblUnion): Delete.
(pack_ldouble): New function.
(__gcc_qadd): Use it.
(__gcc_qmul): Likewise.
(__gcc_qdiv): Likewise.
(__gcc_qneg): Likewise.
(__gcc_stoq): Likewise.
(__gcc_dtoq): Likewise.
Co-Authored-By: Peter Bergner <bergner@vnet.ibm.com>
From-SVN: r213380
James Greenhalgh [Thu, 31 Jul 2014 15:32:44 +0000 (15:32 +0000)]
[AArch64_be] Don't fold reduction intrinsics.
gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_gimple_fold_builtin): Don't fold reduction operations for
BYTES_BIG_ENDIAN.
From-SVN: r213379
James Greenhalgh [Thu, 31 Jul 2014 15:31:24 +0000 (15:31 +0000)]
[AArch64_be] Fix vec_select hi/lo mask confusions.
gcc/
* config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
the generated mask based on BYTES_BIG_ENDIAN.
(aarch64_simd_check_vect_par_cnst_half): New.
* config/aarch64/aarch64-protos.h
(aarch64_simd_check_vect_par_cnst_half): New.
* config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
the check out to aarch64_simd_check_vect_par_cnst_half.
(vect_par_cnst_lo_half): Likewise.
* config/aarch64/aarch64-simd.md
(aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
(move_hi_quad_<mode>): Always generate a low mask.
From-SVN: r213378
Senthil Kumar Selvaraj [Thu, 31 Jul 2014 14:51:02 +0000 (14:51 +0000)]
invoke.texi (AVR Options): Add documentation about __AVR_DEVICE_NAME__ built-in macro.
* doc/invoke.texi (AVR Options): Add documentation about
__AVR_DEVICE_NAME__ built-in macro.
From-SVN: r213377
Charles Baylis [Thu, 31 Jul 2014 14:27:58 +0000 (14:27 +0000)]
re PR target/61948 ([ARM] [4.10 regression] ICE with DImode shift by 1 bit (in copyprop_hardreg_forward_1))
PR target/61948
gcc/ChangeLog:
2014-07-29 Charles Baylis <charles.baylis@linaro.org>
PR target/61948
* config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
constraints are satisfied.
(<shift>di3_neon): Likewise.
gcc/testsuite/ChangeLog:
2014-07-29 Charles Baylis <charles.baylis@linaro.org>
PR target/61948
* gcc.target/arm/pr61948.c: New test case.
From-SVN: r213376
Richard Biener [Thu, 31 Jul 2014 14:06:59 +0000 (14:06 +0000)]
re PR tree-optimization/61964 (krb5 database propagation enters infinite loop; reduced test case)
2014-07-31 Richard Biener <rguenther@suse.de>
PR tree-optimization/61964
* tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
by structural equality.
* gcc.dg/torture/pr61964.c: New testcase.
From-SVN: r213375
Eric Botcazou [Thu, 31 Jul 2014 13:57:42 +0000 (13:57 +0000)]
utils.c (lookup_and_insert_pad_type): New function extracted from...
2014-07-31 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/utils.c (lookup_and_insert_pad_type): New function
extracted from...
(maybe_pad_type): ...here. Call it to canonicalize the pad type.
* gcc-interface/gigi.h: Update comment.
From-SVN: r213374
Arnaud Charlet [Thu, 31 Jul 2014 13:56:11 +0000 (15:56 +0200)]
[multiple changes]
2014-07-31 Javier Miranda <miranda@adacore.com>
* debug.adb Remove documentation of -gnatd.k (no longer needed).
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Code cleanup.
* inline.ads (Backend_Inlined_Subps): New
Elist. (Backend_Not_Inlined_Subps): New Elist.
(Has_Excluded_Declaration): Declaration previously located in
* inline.adb (Has_Excluded_Statement): Declaration previously
located in inline.adb
* inline.adb (Has_Single_Return): Moved out of
Build_Body_To_Inline to avoid having duplicated code.
(Number_Of_Statements): New subprogram.
(Register_Backend_Inlined_Subprogram): New subprogram.
(Register_Backend_Not_Inlined_Subprogram): New subprogram.
(Add_Inlined_Subprogram): Register backend inlined subprograms and
also register subprograms that cannot be inlined by the backend.
(Has_Excluded_Declaration): Moved out of Build_Body_To_Inline
to avoid having duplicated code. Replace occurrences of
Debug_Flag_Dot_K by Back_End_Inlining.
* sem_res.adb (Resolve_Call): Code cleanup.
* exp_ch6.adb (Expand_Call): Complete previous patch. Replace
occurrence of Debug_Flag_Dot_K by Back_End_Inlining.
(List_Inlining_Info): Add listing of subprograms passed to the
backend and listing of subprograms that cannot be inlined by
the backend.
* sem_ch12.adb, sem_ch3.adb Replace occurrences of
Debug_Flag_Dot_K by Back_End_Inlining.
2014-07-31 Robert Dewar <dewar@adacore.com>
* nlists.ads: Minor code fix (remove unwise Inline for
List_Length).
From-SVN: r213373
Arnaud Charlet [Thu, 31 Jul 2014 13:54:10 +0000 (15:54 +0200)]
(gnatlib-shared-vms): Remove.
From-SVN: r213372
Arnaud Charlet [Thu, 31 Jul 2014 13:53:40 +0000 (15:53 +0200)]
[multiple changes]
2014-07-31 Arnaud Charlet <charlet@adacore.com>
* einfo.adb: Remove VMS specific code.
* exp_attr.adb: Remove VAX specific code.
* set_targ.adb: Remove handling of VAX_Float.
* sem_vfpt.adb: Remove references to Vax_Native.
* sem_attr.adb (Is_VAX_Float): Remove ref to VAX_Native.
2014-07-31 Robert Dewar <dewar@adacore.com>
* sem_ch4.adb: Minor reformatting.
From-SVN: r213371
Arnaud Charlet [Thu, 31 Jul 2014 13:51:38 +0000 (13:51 +0000)]
trans.c, misc.c: Remove references to VMS.
* gcc-interface/trans.c, gcc-interface/misc.c: Remove references
to VMS. Misc clean ups.
From-SVN: r213370
Robert Dewar [Thu, 31 Jul 2014 13:48:33 +0000 (13:48 +0000)]
cstand.adb, [...]: Remove obsolete VMS-specific code.
2014-07-31 Robert Dewar <dewar@adacore.com>
* cstand.adb, einfo.adb, einfo.ads, errout.adb, exp_attr.adb,
exp_prag.adb, frontend.adb, interfac.ads,
par-prag.adb, s-auxdec.ads, s-filofl.ads, s-fishfl.ads, s-fvadfl.ads,
s-fvaffl.ads, s-fvagfl.ads, s-vaflop.ads, sem_attr.adb, sem_attr.ads,
sem_ch13.adb, sem_ch3.adb, sem_ch8.adb, sem_prag.adb, snames.adb-tmpl,
snames.ads-tmpl: Remove obsolete VMS-specific code.
From-SVN: r213369
Arnaud Charlet [Thu, 31 Jul 2014 13:40:26 +0000 (15:40 +0200)]
[multiple changes]
2014-07-31 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb, sem_ch13.adb: Minor reformatting.
2014-07-31 Arnaud Charlet <charlet@adacore.com>
* a-intnam-linux.ads: Minor: update obsolete comments.
* s-taasde.adb: Minor: fix comment header.
2014-07-31 Arnaud Charlet <charlet@adacore.com>
* s-auxdec-vms-ia64.adb, s-parame-vms-alpha.ads, s-asthan-vms-alpha.adb,
s-tpopde-vms.adb, s-mastop-vms.adb, s-tpopde-vms.ads, s-taprop-vms.adb,
mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads, s-inmaop-vms.adb,
g-enblsp-vms-alpha.adb, s-ransee-vms.adb, s-osprim-vms.adb,
s-osprim-vms.ads, g-socthi-vms.adb, g-socthi-vms.ads, system-vms_64.ads,
s-osinte-vms.adb, s-osinte-vms.ads, g-eacodu-vms.adb,
s-vaflop-vms-alpha.adb, s-parame-vms-ia64.ads, a-dirval-vms.adb,
a-caldel-vms.adb, mlib-tgt-specific-vms-alpha.adb, s-tasdeb-vms.adb,
symbols-vms.adb, a-intnam-vms.ads, g-expect-vms.adb,
symbols-processing-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
s-traent-vms.adb, s-traent-vms.ads, i-cstrea-vms.adb, a-numaux-vms.ads,
symbols-processing-vms-ia64.adb, s-interr-vms.adb, s-memory-vms_64.adb,
s-memory-vms_64.ads, g-enblsp-vms-ia64.adb, s-taspri-vms.ads,
s-auxdec-vms_64.ads, s-intman-vms.adb, s-intman-vms.ads,
s-tpopsp-vms.adb, s-asthan-vms-ia64.adb, a-calend-vms.adb,
a-calend-vms.ads, system-vms-ia64.ads, s-auxdec-vms-alpha.adb: Removed.
* namet.h (Is_Non_Ada_Error): Remove.
From-SVN: r213368
Yury Gribov [Thu, 31 Jul 2014 13:35:18 +0000 (13:35 +0000)]
cpp.texi (__SANITIZE_ADDRESS__): Updated description.
2014-07-31 Yury Gribov <y.gribov@samsung.com>
* doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
* doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
* flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
New enums.
* gcc.c (sanitize_spec_function): Support new option.
(SANITIZER_SPEC): Remove now redundant check.
* opts.c (common_handle_option): Support new option.
(finish_options): Check for incompatibilities.
* toplev.c (process_options): Split userspace-specific checks.
From-SVN: r213367
Arnaud Charlet [Thu, 31 Jul 2014 13:31:48 +0000 (15:31 +0200)]
[multiple changes]
2014-07-31 Robert Dewar <dewar@adacore.com>
* exp_util.adb, lib-writ.adb, sem_ch12.adb, s-direio.adb: Minor
reformatting.
2014-07-31 Hristian Kirtchev <kirtchev@adacore.com>
* exp_attr.adb (Expand_Loop_Entry_Attribute): Update the comment
which demonstrates the expansion of while loops subject to
attribute 'Loop_Entry. The condition of a while loop along with
related condition actions is now wrapped in a function. Instead
of repeating the condition, the expansion now calls the function.
2014-07-31 Ed Schonberg <schonberg@adacore.com>
* sem_case.adb (Check_Against_Predicate): Correct off-by-one
error when reporting of missing values in a case statement for
a type with a static predicate.
(Check_Choices): Reject a choice given by a subtype to which a
Dynamic_Predicate applies.
* sem_ch3.adb (Analyze_Subtype_Declaration): Inherit
Has_Dynamic_Predicate_Aspect flag from parent.
2014-07-31 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Analyze_Aspect_Specifications): A predicate
cannot apply to a subtype of an incomplete type.
(Is_Static_Choice): Treat an Others_Clause as static. The
staticness of the expression and of the range are checked
elsewhere.
2014-07-31 Pascal Obry <obry@adacore.com>
* adaint.h (__gnat_ftell64): Added.
(__gnat_fseek64): Added.
(__int64): Added.
* cstreams.c (__int64): Removed.
From-SVN: r213366
Arnaud Charlet [Thu, 31 Jul 2014 13:29:58 +0000 (15:29 +0200)]
[multiple changes]
2014-07-31 Pascal Obry <obry@adacore.com>
* a-stream.ads (Stream_Element_Offset): Now a signed 64bit type.
* i-cstrea.ads, s-crtl.ads (fseek64): Offset is always a 64bit value.
(ftell64): Always returns a 64bit value.
* cstreams.c (int64): New definition.
(_FILE_OFFSET_BITS): Set to 64 to enable 64bit offset support.
(__gnat_ftell64): Always returns a 64bit value. The implemenation now
uses ftello() on UNIX.
(__gnat_fseek64): Offset is always a 64bit value. The
implementation now uses fseeko() on UNIX.
* a-ststio.adb, s-direio.adb (Set_Position): Simplify code,
always use fseek64 to set the offset.
(Size): Simplify code, always use fseek64/ftell64.
* s-direio.ads (Count): Now an int64.
* g-socket.ads (Vector_Element): Adjust definition for Length
to be a size_t. This matches the C definition and avoid using
a 64bit integer on 32bit platforms now that Count is always 64bit.
* g-socthi-mingw.adb (Ada.Streams): Removed as not used anymore.
(C_Recvmsg): Change some conversion to account for change in
Vector_Element.
(C_Sendmsg): Likewise.
2014-07-31 Robert Dewar <dewar@adacore.com>
* cstand.adb (Create_Standard): Remove handling of -gnatdm flag.
* debug.adb: Remove documentation of -gnatdm flag.
* gnat1drv.adb (Adjust_Global_Switches): Remove handling of
-gnatdm flag.
From-SVN: r213365
Arnaud Charlet [Thu, 31 Jul 2014 13:27:23 +0000 (15:27 +0200)]
[multiple changes]
2014-07-31 Arnaud Charlet <charlet@adacore.com>
* lib-writ.adb (Write_Unit_Information): Fix case where U =
No_Unit.
2014-07-31 Claire Dross <dross@adacore.com>
* exp_util.adb, exp_util.ads
(Get_First_Parent_With_External_Axiomatization_For_Entity):
New routine to find the first parent of an entity with
a pragma Annotate (GNATprove, External_Axiomatization).
(Has_Annotate_Pragma_For_External_Axiomatization): New function
to check if a package has a pragma Annotate (GNATprove,
External_Axiomatization).
* einfo.ads, einfo.adb (Is_Generic_Actual_Subprogram): New
flag on the entity for the declaration created for a formal
subprogram in an instance. This is a renaming declaration,
or in GNATprove_Mode the declaration of an expression function
that captures the axiomatization of the actual.
* sem_ch6.adb (Analyze_Expression_Function): For a
Generic_Actual_Subprogram, place body immediately after the
declaration because it may be used in a subsequent declaration
in the instance.
* sem_ch12.adb (Build_Wrapper): Add code to handle instances where
the actual is a function, not an operator. Handle functions with
one and two parameters and binary and unary operators.
2014-07-31 Pascal Obry <obry@adacore.com>
* cstreams.c (__gnat_is_regular_file_fd): Removed.
* adaint.c (__gnat_is_regular_file_fd): Added.
From-SVN: r213364
Arnaud Charlet [Thu, 31 Jul 2014 13:25:43 +0000 (15:25 +0200)]
[multiple changes]
2014-07-31 Robert Dewar <dewar@adacore.com>
* exp_strm.adb: Minor reformatting.
2014-07-31 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Build_Wrapper): New procedure, subsidiary to
Analyze_Associations, to create a wrapper around operators that
are actuals to formal subprograms. This is done in GNATProve
mode in order to propagate the contracts of the operators to
the body of the instance.
From-SVN: r213363
Ed Schonberg [Thu, 31 Jul 2014 13:24:48 +0000 (13:24 +0000)]
sem_attr.adb (Analyze_Attribute, case 'Old): The reference is legal if within an aspect specification for a generic subprogram.
2014-07-31 Ed Schonberg <schonberg@adacore.com>
* sem_attr.adb (Analyze_Attribute, case 'Old): The reference is
legal if within an aspect specification for a generic subprogram.
From-SVN: r213362
Arnaud Charlet [Thu, 31 Jul 2014 13:11:44 +0000 (15:11 +0200)]
[multiple changes]
2014-07-31 Javier Miranda <miranda@adacore.com>
* gnat1drv.adb (Back_End_Inlining): Set to false if
Suppress_All_Inlining is set.
* debug.adb: Adding documentation for -gnatd.z.
* inline.adb (Add_Inlined_Body): Extend the -gnatn2
processing to -gnatn1 for calls to Inline_Always routines.
(Add_Inlined_Subprogram): Remove previous patch.
2014-07-31 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Check_One_Function): Apply properly the static
semantic rules for indexing aspects and the functions they denote.
From-SVN: r213361
Arnaud Charlet [Thu, 31 Jul 2014 13:02:24 +0000 (15:02 +0200)]
[multiple changes]
2014-07-31 Javier Miranda <miranda@adacore.com>
* debug.adb: Complete documentation of -gnatd.z.
2014-07-31 Bob Duff <duff@adacore.com>
* gnat_ugn.texi: Minor doc fixes.
2014-07-31 Robert Dewar <dewar@adacore.com>
* sem_aggr.adb (Resolve_Array_Aggregate): Fix posting of missing
index value.
2014-07-31 Tristan Gingold <gingold@adacore.com>
* s-unstyp.ads (Packed_Byte): Make this type universal aliasing.
(Packed_Bytes1): Make component aliased.
2014-07-31 Robert Dewar <dewar@adacore.com>
* s-unstyp.ads, s-fileio.adb: Minor reformatting.
From-SVN: r213360
Robert Dewar [Thu, 31 Jul 2014 13:00:42 +0000 (13:00 +0000)]
inline.adb, [...]: Minor reformatting.
2014-07-31 Robert Dewar <dewar@adacore.com>
* inline.adb, gnat1drv.adb, exp_ch6.adb, s-fileio.adb: Minor
reformatting.
From-SVN: r213359
Arnaud Charlet [Thu, 31 Jul 2014 12:59:27 +0000 (14:59 +0200)]
Minor reformmating. complete previous change on s-traceb.adb.
From-SVN: r213358
Arnaud Charlet [Thu, 31 Jul 2014 12:58:59 +0000 (14:58 +0200)]
Minor reformatting.
From-SVN: r213357
Eric Botcazou [Thu, 31 Jul 2014 12:57:54 +0000 (12:57 +0000)]
utils2.c ((build_binary_op): Don't set TREE_THIS_NOTRAP on array references here...
* gcc-interface/utils2.c ((build_binary_op): Don't set TREE_THIS_NOTRAP
on array references here, now done more selectively in trans.c.
From-SVN: r213356
Doug Rupp [Thu, 31 Jul 2014 12:54:32 +0000 (12:54 +0000)]
misc.c (gnat_init_gcc_fp(): Set flag_errno_math to 0.
2014-07-31 Doug Rupp <rupp@adacore.com>
* gcc-interface/misc.c (gnat_init_gcc_fp(): Set flag_errno_math to 0.
From-SVN: r213355
Javier Miranda [Thu, 31 Jul 2014 12:53:19 +0000 (12:53 +0000)]
decl.c, [...]: Add handling of Inline_Always pragma.
* gcc-interface/decl.c, gcc-interface/trans.c,
gcc-interface/gigi.h: Add handling of Inline_Always pragma.
Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
From-SVN: r213354
Arnaud Charlet [Thu, 31 Jul 2014 12:51:34 +0000 (14:51 +0200)]
[multiple changes]
2014-07-31 Hristian Kirtchev <kirtchev@adacore.com>
* sem_util.adb (Is_Effectively_Volatile): New routine.
2014-07-31 Fedor Rybin <frybin@adacore.com>
* gnat_ugn.texi: Document --test-duration option for gnattest.
2014-07-31 Javier Miranda <miranda@adacore.com>
* opt.ads (Back_End_Inlining): New variable which controls
activation of inlining by back-end expansion.
* gnat1drv.adb (Adjust_Global_Switches): Initialize Back_End_Inlining
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not build
the body to be inlined by the frontend if Back_End_Inlining
is enabled.
* exp_ch6.adb (Register_Backend_Call): Moved to inline.adb.
(Expand_Call): If backend inlining is enabled let the backend to
handle inlined subprograms.
* inline.ads (Register_Backend_Call): Moved here from exp_ch6
* inline.adb (Register_Backend_Call): Moved here from exp_ch6.
(Add_Inlined_Subprogram): Add subprograms when Back_End_Inlining is set.
(Must_Inline): Do not return Inline_Call if Back_End_Inlining is
enabled.
* debug.adb Document -gnatd.z
* fe.h Import Back_End_Inlining variable.
* gcc-interface/utils.c (create_subprog_decl): If Back_End_Inlining is
enabled then declare attribute "always inline"
2014-07-31 Robert Dewar <dewar@adacore.com>
* a-ngelfu.ads: Minor comment fix.
From-SVN: r213353
Arnaud Charlet [Thu, 31 Jul 2014 12:46:16 +0000 (14:46 +0200)]
[multiple changes]
2014-07-31 Hristian Kirtchev <kirtchev@adacore.com>
* freeze.adb (Freeze_Record_Type): Replace all calls to
Is_SPARK_Volatile with Is_Effectively_Volatile and update
related comments.
* sem_ch3.adb (Analyze_Object_Contract, Process_Discriminants):
Replace all calls to Is_SPARK_Volatile with
Is_Effectively_Volatile and update related comments.
* sem_ch5.adb (Analyze_Iterator_Specification,
Analyze_Loop_Parameter_Specification): Replace all calls to
Is_SPARK_Volatile with Is_Effectively_Volatile and update
related comments.
* sem_ch6.adb (Process_Formals): Replace all calls to
Is_SPARK_Volatile with Is_Effectively_Volatile and update
related comments.
* sem_ch12.adb (Instantiate_Object): Replace the call to
Is_SPARK_Volatile_Object with Is_Effectively_Volatile_Object
and update related comment.
* sem_prag.adb (Analyze_External_Property_In_Decl_Part,
Analyze_Global_Item): Replace all calls to Is_SPARK_Volatile
with Is_Effectively_Volatile and update related comments.
* sem_res.adb (Resolve_Actuals, Resolve_Entity_Name): Replace
all calls to Is_SPARK_Volatile with Is_Effectively_Volatile and
update related comments.
* sem_util.adb (Has_Enabled_Property,
Variable_Has_Enabled_Property): Replace all calls
to Is_SPARK_Volatile with Is_Effectively_Volatile and
update related comments.
(Is_Effectively_Volatile): New routine.
(Is_Effectively_Volatile_Object): New routine.
(Is_SPARK_Volatile): Removed.
(Is_SPARK_Volatile_Object): Removed.
* sem_util.ads (Is_Effectively_Volatile): New routine.
(Is_Effectively_Volatile_Object): New routine.
(Is_SPARK_Volatile): Removed.
(Is_SPARK_Volatile_Object): Removed.
2014-07-31 Pascal Obry <obry@adacore.com>
* s-fileio.adb (Open): Make sure a shared file gets inserted into
the global list atomically. This ensures that the file descriptor
won't be freed because another tasks is closing the file.
From-SVN: r213352
Robert Dewar [Thu, 31 Jul 2014 12:43:28 +0000 (12:43 +0000)]
sem_ch3.adb (Process_Range_Expr_In_Decl): Add comments on generation of _FIRST and _LAST variables even in GNATprove_Mode.
2014-07-31 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb (Process_Range_Expr_In_Decl): Add comments on
generation of _FIRST and _LAST variables even in GNATprove_Mode.
* gnat_ugn.texi: Minor editing.
* sem_prag.adb (Ensure_Aggregate_Form): Make sure generated
aggregate is marked Comes_From_Source if argument is CFS.
From-SVN: r213351
Arnaud Charlet [Thu, 31 Jul 2014 12:40:36 +0000 (14:40 +0200)]
[multiple changes]
2014-07-31 Pascal Obry <obry@adacore.com>
* s-fileio.adb: Remove obsolete comment.
2014-07-31 Vincent Celier <celier@adacore.com>
* a-strbou.ads ("=" (Bounded_String, Bounded_String): Add
overriding keyword before function to avoid error when compiler
is called with -gnatyO (check overriding indicators).
2014-07-31 Tucker Taft <taft@adacore.com>
* gnat_ugn.texi: Add a paragraph pointing the reader
to the "plugins" example.
2014-07-31 Hristian Kirtchev <kirtchev@adacore.com>
* freeze.adb (Freeze_Expression): Document the
purpose of the parent chain traversal.
From-SVN: r213350
Arnaud Charlet [Thu, 31 Jul 2014 12:37:03 +0000 (14:37 +0200)]
[multiple changes]
2014-07-31 Robert Dewar <dewar@adacore.com>
* checks.ads, checks.adb (Activate_Overflow_Check): Do not set flag for
unconstrained fpt ops.
2014-07-31 Pascal Obry <obry@adacore.com>
* s-fileio.adb (Open): Make sure a shared file gets inserted into
the global list atomically. This ensures that the file descriptor
won't be freed because another tasks is closing the file.
From-SVN: r213349
Arnaud Charlet [Thu, 31 Jul 2014 12:32:10 +0000 (14:32 +0200)]
[multiple changes]
2014-07-31 Vincent Celier <celier@adacore.com>
* projects.texi: Minor spelling error fix.
2014-07-31 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Document No_Elaboration_Code_All restriction.
* lib-writ.adb, lib-load.adb: Initialize No_Elab_Code field in unit
information.
* lib.ads, lib.adb (No_Elab_Code): New field in unit information.
* restrict.adb (Process_Restriction_Synonyms): Add handling
of No_Elaboration_Code_All.
* restrict.ads (Process_Restriction_Synonyms): Now handles
No_Elaboration_Code_All.
* sem_ch10.adb (Analyze_Context): Enforce transitive with for
No_Elaboration_Code_All.
* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
Handle setting of No_Elab_Code in unit information. Handle
No_Elaboration_Code_All.
* snames.ads-tmpl (Name_No_Elaboration_Code): New name for
pragma processing.
(Name_No_Elaboration_Code_All): New name for pragma processing.
2014-07-31 Eric Botcazou <ebotcazou@adacore.com>
* exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Reject array
types with a null range and use the Esize of the component
instead of its RM_Size to identify appropriate values.
2014-07-31 Hristian Kirtchev <kirtchev@adacore.com>
* freeze.adb Add with and use clause for Aspects.
(Freeze_Expression): Emit an error when a volatile constant lacks
Boolean aspect Import.
(Has_Boolean_Aspect_Import): New routine.
From-SVN: r213347
Arnaud Charlet [Thu, 31 Jul 2014 12:28:48 +0000 (14:28 +0200)]
[multiple changes]
2014-07-31 Gary Dismukes <dismukes@adacore.com>
* exp_util.adb: Minor reformatting.
2014-07-31 Vincent Celier <celier@adacore.com>
* errutil.adb (Error_Msg): Make sure that all components of
the error message object are initialized.
2014-07-31 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Try_Container_Indexing): If the container type is
class-wide, use specific type to locate iteration primitives.
* sem_ch13.adb (Check_Indexing_Functions): Add legality checks for
rules in RM 4.1.6 (Illegal_Indexing): New diagnostic procedure.
Minor error message reformating.
* exp_ch5.adb (Expand_Iterator_Loop): Handle properly Iterator
aspect for a derived type.
2014-07-31 Robert Dewar <dewar@adacore.com>
* debug.adb: Document debug flag d.X.
From-SVN: r213346
Ed Schonberg [Thu, 31 Jul 2014 12:26:19 +0000 (12:26 +0000)]
sem_util.ads (Find_Specific_Type): Moved here from exp_disp.adb.
2014-07-31 Ed Schonberg <schonberg@adacore.com>
* sem_util.ads (Find_Specific_Type): Moved here from exp_disp.adb.
* sem_util.adb (Find_Specific_Type): If type is untagged private,
retrieve full view so that primitive operations can be located.
* exp_disp.adb Move Find_Specific_Type to sem_util.
* exp_ch4.adb (Expand_N_Op_Eq): If operands are class-wide, use
Find_Specific_Type to locate primitive equality.
* exp_util.adb (Make_CW_Equivalent_Type): A class_wide equivalent
type does not require initialization.
* exp_attr.adb (Compile_Stream_Body_In_Scope): Within an instance
body all visibility is established, and the enclosing package
declarations must not be installed.
From-SVN: r213345
Yannick Moy [Thu, 31 Jul 2014 12:24:57 +0000 (12:24 +0000)]
sem_parg.adb, [...] (Collect_Subprogram_Inputs_Outputs): Make subprogram public.
2014-07-31 Yannick Moy <moy@adacore.com>
* sem_parg.adb, sem_prag.ads (Collect_Subprogram_Inputs_Outputs):
Make subprogram public.
From-SVN: r213344
Bob Duff [Thu, 31 Jul 2014 10:16:33 +0000 (10:16 +0000)]
* gcc-interface/Makefile.in (s-traceb.o): Adjust rules.
From-SVN: r213342
Arnaud Charlet [Thu, 31 Jul 2014 10:13:59 +0000 (12:13 +0200)]
[multiple changes]
2014-07-31 Ed Schonberg <schonberg@adacore.com>
* exp_ch9.adb (Expand_N_Protected_Type_Declaration): New
predicate Discriminated_Size, to distinguish between private
components that depend on discriminants from those whose size
depends on some other non-static expression.
2014-07-31 Nicolas Setton <setton@adacore.com>
* g-exptty.adb (Close): Fix binding to Waitpid: use the
tty version.
From-SVN: r213341
Richard Biener [Thu, 31 Jul 2014 10:11:44 +0000 (10:11 +0000)]
lto-streamer.h (struct output_block): Remove global.
2014-07-31 Richard Biener <rguenther@suse.de>
* lto-streamer.h (struct output_block): Remove global.
(struct data_in): Remove labels, num_named_labels and
num_unnamed_labels.
* lto-streamer-in.c (lto_data_in_delete): Do not free labels.
* lto-streamer-out.c (produce_asm_for_decls): Do not set global.
From-SVN: r213340
Arnaud Charlet [Thu, 31 Jul 2014 10:11:39 +0000 (12:11 +0200)]
[multiple changes]
2014-07-31 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Make_Index): Reject properly the use of 'Length
in a discrete range, when 'range was probably intended.
2014-07-31 Robert Dewar <dewar@adacore.com>
* sem_warn.adb, sem_warn.ads (Has_Junk_Name): Moved from body to spec.
From-SVN: r213339
Arnaud Charlet [Thu, 31 Jul 2014 10:09:08 +0000 (12:09 +0200)]
[multiple changes]
2014-07-31 Robert Dewar <dewar@adacore.com>
* frontend.adb: Minor reformatting.
* sem.adb: Minor reformatting.
* sem_ch6.adb (Analyze_Null_Procedure): Set proper sloc for
identifiers on rewrite.
* par.adb: Minor comment updates.
* a-ngelfu.adb (Cos): Minor simplification.
* par-ch13.adb (Get_Aspect_Specifications): Improve messages
and recovery for bad aspect.
* exp_ch3.adb: Code clean up.
* sem_util.ads: Minor comment correction.
* sem_ch13.adb (Check_Array_Type): Properly handle large types.
* sem_ch3.adb: Code clean up.
* binderr.ads: Minor comment correction.
2014-07-31 Ed Schonberg <schonberg@adacore.com>
* exp_disp.adb (Expand_Interface_Conversion): A call whose
prefix is a static conversion to an interface type that is not
class-wide is not dispatching.
From-SVN: r213338
Arnaud Charlet [Thu, 31 Jul 2014 10:03:25 +0000 (12:03 +0200)]
[multiple changes]
2014-07-31 Robert Dewar <dewar@adacore.com>
* inline.adb, s-traceb.adb, s-traceb-hpux.adb, memtrack.adb,
s-traceb-mastop.adb: Minor reformatting.
2014-07-31 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Expand_Record_Extension): In ASIS_Mode perform
expansion, to handle properly visibility of selected components
in instance bodies.
From-SVN: r213337
Arnaud Charlet [Thu, 31 Jul 2014 10:02:13 +0000 (12:02 +0200)]
[multiple changes]
2014-07-31 Robert Dewar <dewar@adacore.com>
* par-ch13.adb (Get_Aspect_Specifications): Set Inside_Depends.
* par-ch2.adb (P_Pragma): Set Inside_Depends.
* par-ch4.adb (P_Simple_Expression): Pass Inside_Depends to
Check_Unary_Plus_Or_Minus.
* scans.ads (Inside_Depends): New flag.
* scng.adb (Scan): Pass Inside_Depends to Check_Arrow.
* style.ads: Add Inside_Depends parameter to Check_Arrow Add
Inside_Depends parameter to Check_Unary_Plus_Or_Minus.
* styleg.adb (Check_Arrow): Handle Inside_Depends case.
(Check_Unary_Plus_Or_Minus): Handle Inside_Depends case.
* styleg.ads: Add Inside_Depends parameter to Check_Arrow Add.
Inside_Depends parameter to Check_Unary_Plus_Or_Minus.
2014-07-31 Javier Miranda <miranda@adacore.com>
* s-vaflop.adb Move the body of function T_To_G before
T_To_D. Required for frontend inlining.
* inline.adb (Has_Excluded_Contract): New subprogram used to
check if a subprogram inlined by the frontend has contracts
which cannot be inlined.
2014-07-31 Bob Duff <duff@adacore.com>
* s-traceb.adb, s-traceb-hpux.adb, s-traceb-mastop.adb:
(Call_Chain): Add 1 to number of frames to skip, to account for
the fact that there's one more frame on the stack.
From-SVN: r213336
Arnaud Charlet [Thu, 31 Jul 2014 09:58:06 +0000 (11:58 +0200)]
[multiple changes]
2014-07-31 Robert Dewar <dewar@adacore.com>
* checks.adb (Enable_Overflow_Check): More precise setting of
Do_Overflow_Check flag for division.
2014-07-31 Eric Botcazou <ebotcazou@adacore.com>
* exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Reject packed
array types with implementation type.
2014-07-31 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch10.adb (Process_State): Remove local variable Name. Add
local variable Decl. Partially declare an abstract state by
generating an entity and storing it in the state declaration.
* sem_prag.adb (Create_Abstract_State): Fully declare a
semi-declared abstract state.
From-SVN: r213335
Arnaud Charlet [Thu, 31 Jul 2014 09:56:12 +0000 (11:56 +0200)]
[multiple changes]
2014-07-31 Robert Dewar <dewar@adacore.com>
* prj-nmsc.adb: Minor reformatting.
2014-07-31 Bob Duff <duff@adacore.com>
* s-tasdeb.adb (System.Tasking.Debug): Remove
all usage of the secondary stack from this package.
From-SVN: r213334
Arnaud Charlet [Thu, 31 Jul 2014 09:54:35 +0000 (11:54 +0200)]
[multiple changes]
2014-07-31 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb (Analyze_Iterator_Specification): If the domain of
iteration is an array component that depends on discriminants,
create an actual subtype for it, because the preanalysis of the
iterator name does not create actual subtypes of components.
2014-07-31 Hristian Kirtchev <kirtchev@adacore.com>
* freeze.adb (Freeze_Expression): Update the loop in charge
of finding a proper insertion place for freeze nodes to handle
N_Expression_With_Actions nodes.
From-SVN: r213333
Robert Dewar [Thu, 31 Jul 2014 09:52:57 +0000 (09:52 +0000)]
sem_util.adb, [...]: Minor reformatting.
2014-07-31 Robert Dewar <dewar@adacore.com>
* sem_util.adb, a-ngelfu.ads, prj-nmsc.adb, prj-conf.adb: Minor
reformatting.
From-SVN: r213332
Pascal Obry [Thu, 31 Jul 2014 09:52:07 +0000 (09:52 +0000)]
prj-nmsc.adb: Minor reformatting.
2014-07-31 Pascal Obry <obry@adacore.com>
* prj-nmsc.adb: Minor reformatting.
From-SVN: r213331
Arnaud Charlet [Thu, 31 Jul 2014 09:51:11 +0000 (11:51 +0200)]
[multiple changes]
2014-07-31 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Has_Preelaborable_Initialization): Check that
type is tagged before checking whether a user-defined Initialize
procedure is present.
2014-07-31 Gary Dismukes <dismukes@adacore.com>
* a-ngelfu.ads (Sqrt): Augment postcondition.
2014-07-31 Pascal Obry <obry@adacore.com>
* prj-nmsc.adb (Check_Library_Attributes): An aggegate library
directory and ALI directory must be different than all object
and library directories of aggregated projects.
2014-07-31 Vincent Celier <celier@adacore.com>
* prj-pars.adb, prj-conf.ads, prj-conf.adb (Locate_Runtime): Move spec
to package body, as it is not called from outside. Remove argument
Project_Tree, no longer used. When runtime cannot be found,
call Raise_Invalid_Config instead of failing the program.
From-SVN: r213330
Robert Dewar [Thu, 31 Jul 2014 09:48:12 +0000 (09:48 +0000)]
bindgen.adb (Gen_Output_File_Ada): Generate pragma Suppress (Overflow_Check).
2014-07-31 Robert Dewar <dewar@adacore.com>
* bindgen.adb (Gen_Output_File_Ada): Generate pragma Suppress
(Overflow_Check).
* gnatlink.adb (Process_Args): Remove generation of -gnato0,
no longer needed.
From-SVN: r213329
Robert Dewar [Thu, 31 Jul 2014 09:46:06 +0000 (09:46 +0000)]
gnat_ugn.texi: Document new switch -gnato0.
2014-07-31 Robert Dewar <dewar@adacore.com>
* gnat_ugn.texi: Document new switch -gnato0.
* sem_ch3.ads: Minor reformatting.
* gnatlink.adb (Process_Args): Compile bind file with -gnato0
(we do not want overflow checks when incrementing elaboration
counters).
* einfo.ads: Minor reformatting.
From-SVN: r213328
Robert Dewar [Thu, 31 Jul 2014 09:43:55 +0000 (09:43 +0000)]
exp_ch5.adb, [...]: Minor comment correction.
2014-07-31 Robert Dewar <dewar@adacore.com>
* exp_ch5.adb, freeze.adb, exp_ch3.adb: Minor comment correction.
* s-arit64.adb: Minor reformatting.
2014-07-31 Robert Dewar <dewar@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): Default for overflow
checking is enabled except in GNAT_Mode.
* switch-c.adb (Scan_Front_End_Switches): Implement -gnato0
(suppress overflow checks).
From-SVN: r213327
Arnaud Charlet [Thu, 31 Jul 2014 09:38:40 +0000 (11:38 +0200)]
[multiple changes]
2014-07-31 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Expand_Freeze_Record_Type): Do not build an
invariant procedure for an internally generated subtype that is
created for an object of a class-wide type.
2014-07-31 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb, errutil.adb: Make code similar to Errout.
2014-07-31 Gary Dismukes <dismukes@adacore.com>
* gnat_rm.texi, sem_aux.ads, einfo.ads, sem_util.ads, sem_ch6.adb,
exp_disp.adb: Minor reformatting.
From-SVN: r213326
Robert Dewar [Thu, 31 Jul 2014 09:37:12 +0000 (09:37 +0000)]
exp_ch5.adb, [...]: Minor reformatting.
2014-07-31 Robert Dewar <dewar@adacore.com>
* exp_ch5.adb, sem_ch3.adb, exp_ch7.adb, exp_util.adb, exp_ch9.adb,
sem_ch7.adb, checks.adb, s-exctra.adb, exp_ch6.adb, exp_disp.adb,
exp_dist.adb, sem_ch13.adb, exp_strm.adb, exp_ch3.adb: Minor
reformatting.
From-SVN: r213325
Arnaud Charlet [Thu, 31 Jul 2014 09:35:27 +0000 (11:35 +0200)]
[multiple changes]
2014-07-31 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb: Minor reformatting.
2014-07-31 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Build_Invariant_Checks): If the enclosing record
is an unchecked_union, warn that invariants will not be checked
on components that have them.
2014-07-31 Robert Dewar <dewar@adacore.com>
* freeze.adb (Freeze_Entity): Check for error of
Type_Invariant'Class applied to a untagged type.
* sem_ch6.adb (Analyze_Null_Procedure): Unconditionally rewrite
as null body, so that we perform error checks even if expansion
is off.
From-SVN: r213324
Marc Glisse [Thu, 31 Jul 2014 09:33:58 +0000 (11:33 +0200)]
re PR c++/60517 (warning/error for taking address of member of a temporary object)
2014-07-31 Marc Glisse <marc.glisse@inria.fr>
PR c++/60517
gcc/c/
* c-typeck.c (c_finish_return): Return 0 instead of the address of
a local variable.
gcc/cp/
* typeck.c (maybe_warn_about_returning_address_of_local): Return
whether it is returning the address of a local variable.
(check_return_expr): Return 0 instead of the address of a local
variable.
gcc/c-family/
* c.opt (-Wreturn-local-addr): Move to common.opt.
gcc/
* common.opt (-Wreturn-local-addr): Moved from c.opt.
* gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
(isolate_path): New argument to avoid inserting a trap.
(find_implicit_erroneous_behaviour): Handle returning the address
of a local variable.
(find_explicit_erroneous_behaviour): Likewise.
gcc/testsuite/
* c-c++-common/addrtmp.c: New file.
* c-c++-common/uninit-G.c: Adapt.
From-SVN: r213323
Ed Schonberg [Thu, 31 Jul 2014 09:33:10 +0000 (09:33 +0000)]
sem_ch13.adb (Build_Invariant_Procedure): If body of procedure is already present, nothing to do.
2014-07-31 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Build_Invariant_Procedure): If body of procedure
is already present, nothing to do.
* exp_ch3.adb (Build_Component_Invariant_Call): For an access
component, check whether the access type has an invariant before
checking the designated type.
(Build_Record_Invariant_Proc): Change suffix of generated
name to prevent ambiguity when record type has invariants
in addition to those of components, and two subprograms are
constructed. Consistent with handling of array types.
(Insert_Component_Invariant_Checks): Build invariant procedure
body when one has not been created yet, in the case of composite
types that are completions and whose full declarations carry
invariants.
From-SVN: r213322
Bingfeng Mei [Thu, 31 Jul 2014 08:50:50 +0000 (08:50 +0000)]
re PR lto/61868 (-frandom-seed always results in random_seed of 0)
2014-07-31 Bingfeng Mei <bmei@broadcom.com>
PR lto/61868
* toplev.c (init_random_seed): Move piece of code never called to
set_random_seed.
(set_random_seed): see above.
* gcc.dg/pr61868.c: New test.
From-SVN: r213321
Tom de Vries [Thu, 31 Jul 2014 08:28:35 +0000 (08:28 +0000)]
Remove dead code in pass_tree_loop_init::execute
2014-07-31 Tom de Vries <tom@codesourcery.com>
* tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
From-SVN: r213319
Richard Sandiford [Thu, 31 Jul 2014 08:25:56 +0000 (08:25 +0000)]
ira.c (insn_contains_asm_1, [...]): Delete.
gcc/
* ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
(compute_regs_asm_clobbered): Use extract_asm_operands instead.
From-SVN: r213318
Richard Biener [Thu, 31 Jul 2014 07:51:41 +0000 (07:51 +0000)]
data-streamer.h (streamer_write_data_stream): Declare here, renamed from ...
2014-07-31 Richard Biener <rguenther@suse.de>
* data-streamer.h (streamer_write_data_stream): Declare here,
renamed from ...
* lto-streamer.h (lto_output_data_stream): ... this. Remove.
* lto-cgraph.c (lto_output_node): Adjust.
(lto_output_varpool_node): Likewise.
* data-streamer-out.c (streamer_string_index): Likewise.
(streamer_write_data_stream, lto_append_block): Move from ...
* lto-section-out.c (lto_output_data_stream,
lto_append_block): ... here.
From-SVN: r213317
GCC Administrator [Thu, 31 Jul 2014 00:16:42 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r213316
Jason Merrill [Wed, 30 Jul 2014 21:29:25 +0000 (17:29 -0400)]
re PR lto/53808 (Undefined symbol when building a library with lto)
PR lto/53808
PR c++/61659
* pt.c (push_template_decl_real): Don't set DECL_COMDAT on friends.
From-SVN: r213311
Paolo Carlini [Wed, 30 Jul 2014 20:06:29 +0000 (20:06 +0000)]
re PR c++/57397 (Off-by-one error in diagnostic when calling variadic function template with too few arguments)
/cp
2014-07-30 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/57397
* pt.c (unify_arity): Add boolean parameter.
(unify_too_few_arguments): Likewise.
(type_unification_real): Diagnose correctly insufficient
arguments in the presence of trailing variadic parameters;
deducing multiple trailing packs as empty is fine.
/testsuite
2014-07-30 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/57397
* g++.dg/cpp0x/vt-57397-1.C: New.
* g++.dg/cpp0x/vt-57397-2.C: Likewise.
From-SVN: r213310
Mike Stump [Wed, 30 Jul 2014 18:29:41 +0000 (18:29 +0000)]
configure.ac: Also check for popen.
* configure.ac: Also check for popen.
* tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
* configure: Regenerate.
* config.in: Regenerate.
From-SVN: r213309
Jason Merrill [Wed, 30 Jul 2014 17:27:20 +0000 (13:27 -0400)]
re PR ipa/61659 (Extra undefined symbol because of devirtualization)
PR c++/61659
PR c++/61687
Revert:
gcc/c-family/
* c.opt (-fuse-all-virtuals): New.
gcc/cp/
* decl2.c (mark_all_virtuals): New variable.
(maybe_emit_vtables): Check it instead of flag_devirtualize.
(cp_write_global_declarations): Set it and give helpful diagnostic
if it introduces errors.
* class.c (finish_struct_1): Check it.
From-SVN: r213308
Jason Merrill [Wed, 30 Jul 2014 17:27:14 +0000 (13:27 -0400)]
re PR lto/53808 (Undefined symbol when building a library with lto)
PR lto/53808
PR c++/61659
* pt.c (push_template_decl_real): Set DECL_COMDAT on templates.
(check_explicit_specialization): Clear it on specializations.
* decl.c (duplicate_decls, start_decl): Likewise.
(grokmethod, grokfndecl): Set DECL_COMDAT on inlines.
* method.c (implicitly_declare_fn): Set DECL_COMDAT. Determine
linkage after setting the appropriate flags.
* tree.c (decl_linkage): Don't check DECL_COMDAT.
* decl2.c (mark_needed): Mark clones.
(import_export_decl): Not here.
From-SVN: r213307
Martin Jambor [Wed, 30 Jul 2014 16:39:23 +0000 (18:39 +0200)]
tree-sra.c (sra_ipa_modify_assign): Change type of the first parameter to gimple.
2014-07-30 Martin Jambor <mjambor@suse.cz>
* tree-sra.c (sra_ipa_modify_assign): Change type of the first
parameter to gimple.
From-SVN: r213306