2014-08-01 Arnaud Charlet <charlet@adacore.com>
* exp_attr.adb (Is_Inline_Floating_Point_Attribute): Revert to
previous state in CodePeer_Mode.
From-SVN: r213435
2014-08-01 Robert Dewar <dewar@adacore.com>
* hostparm.ads: Put back definition of OpenVMS as False to aid
the transition process.
* sem_ch7.adb: Minor reformatting.
* prj-env.adb: Minor code fix.
* gnat_rm.texi: Complete previous change.
* sem_ch3.adb: Minor reformatting.
* sem_ch6.adb: Minor reformatting.
* sem_elab.adb: Minor reformatting.
* exp_strm.adb: Complete previous change.
2014-08-01 Vincent Celier <celier@adacore.com>
* sem_warn.adb (Warn_On_Unreferenced_Entity): Do not issue a
warning when a constant is unreferenced and its type has pragma
Unreferenced_Objects.
2014-08-01 Hristian Kirtchev <kirtchev@adacore.com>
* einfo.adb: Flag2 is now known as
Is_Hidden_Non_Overridden_Subprogram.
(Is_Hidden_Non_Overridden_Subprogram): New routine.
(Set_Is_Hidden_Non_Overridden_Subprogram): New routine.
(Write_Entity_Fields): Output Flag2.
* einfo.ads: New attribute Is_Hidden_Non_Overridden_Subprogram
along with occurrences in entities.
(Is_Hidden_Non_Overridden_Subprogram): New routine and pragma Inline.
(Set_Is_Hidden_Non_Overridden_Subprogram): New routine
and pragma Inline.
* sem_ch7.adb (Install_Package_Entity): Do not enter implicitly
declared non-overriden homographs into visibility.
* sem_ch13.adb (Freeze_Entity_Checks): Hide all
implicitly declared non-overriden homographs.
(Hide_Non_Overridden_Subprograms): New routine.
From-SVN: r213434
2014-08-01 Vincent Celier <celier@adacore.com>
* gnatcmd.adb: Remove the VMS specific stuff. Integrate in
procedure GNATCmd the relevant declarations from packages VMS_Cmds
and VMS_Conv.
* gnatcmd.ads: Update comments to remove any trace of VMS
2014-08-01 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb: sem_ch12.adb (Build_Wrapper): Capture entity for
defaulted actual that is an operator, before building wrapper
for it in GNATprove mode. Restrict construction of wrapper to
actuals that are operators.
2014-08-01 Vincent Celier <celier@adacore.com>
* vms_conv.adb, vms_conv.ads, vms_data.ads, vms_cmds.ads: Remove VMS
specific packages no longer needed.
2014-08-01 Pascal Obry <obry@adacore.com>
* s-os_lib.ads (System.CRTL): Move with clause to body.
(File_Size): New type.
(File_Length64): Use it.
(File_Length): Restore previous spec returning a Long_Integer.
* s-os_lib.adb (System.CRTL): Move with clause here.
2014-08-01 Vincent Celier <celier@adacore.com>
* mlib-prj.adb: Update comments to remove any mention of VMS.
From-SVN: r213430
2014-08-01 Arnaud Charlet <charlet@adacore.com>
* ug_words, xgnatugn.adb, gcc-interface/Make-lang.in: Remove
xgnatugn.adb and ug_words.
2014-08-01 Eric Botcazou <ebotcazou@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference): Check whether
expansion can be avoid for Machine, Model and Rounding.
(Is_Inline_Floating_Point_Attribute): Return true for Machine
& Model, as well as Rounding if wrapped in a conversion to an
integer type.
* sem_res.adb (Simplify_Type_Conversion): Deal with Rounding as well.
* gcc-interface/gigi.h (fp_arith_may_widen): Declare.
* gcc-interface/utils.c (fp_arith_may_widen): New global variable.
* gcc-interface/misc.c (enumerate_modes): Compute it.
* gcc-interface/trans.c (FP_ARITH_MAY_WIDEN): Delete.
(lvalue_required_for_attribute_p): Deal with Descriptor_Size,
Machine and Model.
(Attribute_to_gnu) <Attr_Model>: New case.
<Attr_Machine>): Likewise.
(convert_with_check): Test
fp_arith_may_widen variable.
2014-08-01 Pascal Obry <obry@adacore.com>
* adaint.h (GNAT_FOPEN): New definition for Windows.
(GNAT_OPEN): Likewise.
(GNAT_STAT): Likewise.
(GNAT_FSTAT): Likewise.
(GNAT_LSTAT): Likewise.
(GNAT_STRUCT_STAT): Likewise.
* adaint.c (__gnat_stat): Fix computation of file size for
Windows.
2014-08-01 Vincent Celier <celier@adacore.com>
* Makefile.rtl: Minor comment update.
2014-08-01 Vincent Celier <celier@adacore.com>
* Make-generated.in: Remove dependencies for vms-help.
From-SVN: r213429
2014-08-01 Gary Dismukes <dismukes@adacore.com>
* makeutl.ads, opt.ads: Minor grammar fixes.
* makeutl.adb: Minor code reorganization.
2014-08-01 Arnaud Charlet <charlet@adacore.com>
* gcc-interface/Makefile.in, gcc-interface/Make-lang.in,
gnatsym.adb: Remove gnatsym (VMS only tool).
2014-08-01 Ben Brosgol <brosgol@adacore.com>
* gnat_ugn.texi, projects.texi, xgnatugn.adb: Removed all VMS
conditionalization from gnat_ugn.texi and projects.texi, and updated
(considerably simplified) xgnatugn.adb, to be removed soon.
From-SVN: r213427
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
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
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
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
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
* 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
* 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
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
* 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
* 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
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
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
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
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