* 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.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213406 138bc75d-0d04-0410-961f-82ee72b054a4
	* doc/invoke.texi (Options That Control Optimization): Documentation
	for -foptimize-strlen introduced. Optimization levels default options
	fixed.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213407 138bc75d-0d04-0410-961f-82ee72b054a4
	* 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.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213408 138bc75d-0d04-0410-961f-82ee72b054a4
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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213410 138bc75d-0d04-0410-961f-82ee72b054a4
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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213411 138bc75d-0d04-0410-961f-82ee72b054a4
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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213412 138bc75d-0d04-0410-961f-82ee72b054a4
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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213413 138bc75d-0d04-0410-961f-82ee72b054a4
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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213414 138bc75d-0d04-0410-961f-82ee72b054a4
        * gcc-interface/decl.c, gcc-interface/trans.c: Remove VMS handling.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213415 138bc75d-0d04-0410-961f-82ee72b054a4
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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213416 138bc75d-0d04-0410-961f-82ee72b054a4
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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213417 138bc75d-0d04-0410-961f-82ee72b054a4
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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213418 138bc75d-0d04-0410-961f-82ee72b054a4
2014-08-01  Pascal Obry  <obry@adacore.com>                           
                                                                      
        * cstreams.c: Only enable large file support on know supported
        platforms. Add missing defines/includes.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213420 138bc75d-0d04-0410-961f-82ee72b054a4
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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213421 138bc75d-0d04-0410-961f-82ee72b054a4
       * sem_util.adb: Add guard to setting of No_Predicate_On_Actual.
       * sem_ch3.adb: Minor reformatting.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213422 138bc75d-0d04-0410-961f-82ee72b054a4
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.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213423 138bc75d-0d04-0410-961f-82ee72b054a4
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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213424 138bc75d-0d04-0410-961f-82ee72b054a4
[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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213425 138bc75d-0d04-0410-961f-82ee72b054a4
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.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213427 138bc75d-0d04-0410-961f-82ee72b054a4
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.



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