119313 Commits

Author SHA1 Message Date
Jakub Jelinek
8b8de8b62c re PR rtl-optimization/54792 (-fcompare-debug failures introduced by r191493)
PR rtl-optimization/54792
	* sched-deps.c (find_modifiable_mems): Scan also TAIL insn.

From-SVN: r192038
2012-10-03 16:28:28 +02:00
Jakub Jelinek
75ab707c75 re PR c++/54777 ([C++11] Comma operator in constexpr environment can cause ICE)
PR c++/54777
	* semantics.c (cxx_eval_constant_expression) <case COMPOUND_EXPR>: If
	not ignoring the second operand, pass the original second operand
	and not one with stripped nops to cxx_eval_constant_expression.

	* g++.dg/cpp0x/constexpr-ref4.C: New test.

From-SVN: r192036
2012-10-03 16:21:20 +02:00
Arnaud Charlet
2352eadb81 [multiple changes]
2012-10-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (New_Overloaded_Entity): call
	Append_Inherited_Subprogram when appropriate.
	* sem_dim.adb (Analyze_Dimension_Call): Do not perform dimensional
	analysis if call has previous semantic error.
	* sem_util.ads, sem_util.adb (Append_Inherited_Subprogram):
	new subprogram to handle properly the visibility of inherited
	operations that are primitives of a type extension, when the
	parent type and operations are declared in the same visible part.

2012-10-03  Robert Dewar  <dewar@adacore.com>

	* checks.adb (Minimize_Eliminate_Overflow_Checks): Properly
	handle case of top level expression within type conversion
	* gnat1drv.adb (Adjust_Global_Switches): Set SUPPRESSED as
	default for overflow checking for -gnatg mode (includes run-time).
	* sem_res.adb (Resolve_Type_Conversion): Avoid bogus warnings
	about redundant conversions from MINIMIZED/EXTENDED mode checking

From-SVN: r192029
2012-10-03 10:11:48 +02:00
Javier Miranda
3bfb3c03da exp_ch4.adb (Expand_N_Allocator_Expression): Minor code reorganization and cleanup.
2012-10-03  Javier Miranda  <miranda@adacore.com>

	* exp_ch4.adb (Expand_N_Allocator_Expression): Minor code
	reorganization and cleanup. Done to ensure proper management of
	the C++ constructor covering tagged and untagged types and also
	non-default constructors.
	* exp_ch6.ads, exp_ch6.adb (Make_CPP_Constructor_Call_In_Allocator):
	New subprogram.

From-SVN: r192028
2012-10-03 10:09:15 +02:00
Arnaud Charlet
71fb4dc8c8 [multiple changes]
2012-10-03  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch6.adb: Minor typo fix.

2012-10-03  Robert Dewar  <dewar@adacore.com>

	* checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
	Set Top_Level properly (to False) for operand of range of
	membership test.
	* exp_ch4.adb (Expand_Membership_Minimize_Eliminate_Overflow):
	Fix crash with -gnato3 and membership operations.
	(Expand_Membership_Minimize_Eliminate_Overflow): Fix error message
	and wrong results for -gnato3 large expression and predicated
	subtype.
	(Expand_Membership_Minimize_Eliminate_Overflow): Use
	expression action node to avoid using insert actions (bombs in
	some cases).
	(Expand_Compare_Minimize_Eliminate_Overflow): Use expression action
	node to avoid using insert actions (bombs in some cases).

2012-10-03  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Set_CPP_Constructors_Old): Handle constructor of
	untagged type that has all its parameters with defaults and hence it
	covers the default constructor.

From-SVN: r192027
2012-10-03 10:07:31 +02:00
Arnaud Charlet
3ada950b10 [multiple changes]
2012-10-03  Yannick Moy  <moy@adacore.com>

	* checks.adb, sem_prag.adb, s-bignum.ads: Minor typo fixes.

2012-10-03  Thomas Quinot  <quinot@adacore.com>

	* g-socket.adb (Connect_Socket, version with timeout): When the
	newly-connected socket is reported as available for writing, check
	whether it has a pending asynchronous error prior to returning.

2012-10-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Check_Conformance): Additional info when subtype
	conformance fails, due to a missing null exclusion indicatar in
	a formal that must match a controlling access formal.

From-SVN: r192026
2012-10-03 10:04:27 +02:00
Ian Lance Taylor
bd2e46c825 libgo: Update to Go 1.0.3.
From-SVN: r192025
2012-10-03 05:27:36 +00:00
Ian Lance Taylor
bed6238ce6 compiler: Fix a, b, c := b, a, 1 when a and b already exist.
From-SVN: r192022
2012-10-03 05:03:24 +00:00
GCC Administrator
e1d90a813c Daily bump.
From-SVN: r192018
2012-10-03 00:17:56 +00:00
Ian Lance Taylor
64a5739068 compiler: Fix a couple of type reflection strings.
From-SVN: r192014
2012-10-02 23:50:23 +00:00
Ian Lance Taylor
e395eacb4e compiler: Fix parse of (<- chan <- chan <- int)(x).
From-SVN: r192011
2012-10-02 22:22:28 +00:00
H.J. Lu
d8ea0885d7 Document -mprefer-avx128
PR target/54785
	* doc/invoke.texi: Document -mprefer-avx128.

From-SVN: r192007
2012-10-02 14:11:21 -07:00
Andrew Pinski
fa607ddad0 simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>): Don't optimize a truncate of a mem if it is a vector mode.
2012-10-02  Andrew Pinski  <apinski@cavium.com>

	* simplify-rtx.c (simplify_unary_operation_1 <case TRUNCATE>):
	Don't optimize a truncate of a mem if it is a vector mode.

From-SVN: r192006
2012-10-02 14:03:37 -07:00
Janus Weil
0a59e5832e re PR fortran/54778 ([OOP] an ICE on invalid OO code)
2012-10-02  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/54778
	* interface.c (matching_typebound_op): Check for 'class_ok' attribute.

2012-10-02  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/54778
	* gfortran.dg/class_53.f90: New.

From-SVN: r192005
2012-10-02 23:02:16 +02:00
Jonathan Wakely
1504e3e1c4 re PR other/53889 (Gthreads doesn't support destroying recursive mutexes)
libgcc:

	PR other/53889
	* gthr.h (__gthread_recursive_mutex_destroy): Document new required
	function.
	* gthr-posix.h (__gthread_recursive_mutex_destroy): Define.
	* gthr-single.h (__gthread_recursive_mutex_destroy): Likewise.
	* config/gthr-rtems.h (__gthread_recursive_mutex_destroy): Likewise.
	* config/gthr-vxworks.h (__gthread_recursive_mutex_destroy): Likewise.
	* config/i386/gthr-win32.h (__gthread_recursive_mutex_destroy):
	Likewise.
	* config/mips/gthr-mipssde.h (__gthread_recursive_mutex_destroy):
	Likewise.
	* config/pa/gthr-dce.h (__gthread_recursive_mutex_destroy): Likewise.
	* config/s390/gthr-tpf.h (__gthread_recursive_mutex_destroy): Likewise.

libstdc++-v3:

	PR other/53889
	* include/std/mutex (__recursive_mutex_base::~__recursive_mutex_base):
	Use __gthread_recursive_mutex_destroy.
	(__recursive_mutex_base::_S_destroy): Remove.
	(__recursive_mutex_base::_S_destroy_win32): Likewise.
	* include/ext/concurrence.h (__recursive_mutex::~__recursive_mutex):
	Use __gthread_recursive_mutex_destroy.
	(__recursive_mutex::_S_destroy): Remove.
	(__recursive_mutex::_S_destroy_win32): Likewise.

From-SVN: r192002
2012-10-02 21:22:32 +01:00
Alexandre Oliva
e9f950ba0d re PR debug/54551 (DF resets some DEBUG_INSNs unnecessarily)
gcc/ChangeLog:
PR debug/54551
* Makefile.in (VALTRACK_H): Add hash-table.h.
* valtrack.h: Include hash-table.h.
(struct dead_debug_global_entry): New.
(struct dead_debug_hash_descr): New.
(struct dead_debug_global): New.
(struct dead_debug): Rename to...
(struct dead_debug_local): ... this.  Adjust all uses.
(dead_debug_global_init, dead_debug_global_finish): New.
(dead_debug_init): Rename to...
(dead_debug_local_init): ... this.  Adjust all callers.
(dead_debug_finish): Rename to...
(dead_debug_local_finish): ... this.  Adjust all callers.
* valtrack.c (dead_debug_global_init): New.
(dead_debug_init): Rename to...
(dead_debug_local_init): ... this.  Take global parameter.
Save it and initialize used bitmap from it.
(dead_debug_global_find, dead_debug_global_insert): New.
(dead_debug_global_replace_temp): New.
(dead_debug_promote_uses): New.
(dead_debug_finish): Rename to...
(dead_debug_local_finish): ... this.  Promote remaining uses.
(dead_debug_global_finish): New.
(dead_debug_add): Try to replace global temps first.
(dead_debug_insert_temp): Support global replacements.
* dce.c (word_dce_process_block, dce_process_block): Add
global_debug parameter.  Pass it on.
(fast_dce): Initialize, pass on and finalize global_debug.
* df-problems.c (df_set_unused_notes_for_mw): Adjusted.
(df_create_unused_notes, df_note_bb_compute): Likewise.
(df_note_compute): Justify local-only dead debug analysis.
gcc/testsuite/ChangeLog:
PR debug/54551
* gcc.dg/guality/pr54551.c: New.

From-SVN: r192001
2012-10-02 20:06:08 +00:00
Alexandre Oliva
58b88be9de re PR debug/53135 (Duplicates cause size explosion (vta/dwarf))
PR debug/53135
* dwarf2out.c (value_format): Use block4 for dw_val_class_loc
when needed.

From-SVN: r192000
2012-10-02 20:05:24 +00:00
Alexandre Oliva
75a5b7dd33 re PR debug/54177 (Segfault in cselib_lookup due to NULL_RTX passed from vt_add_function_parameter)
PR debug/54177
* var-tracking.c (vt_add_function_parameter): Bail if
var_lowpart fails.

From-SVN: r191999
2012-10-02 19:58:37 +00:00
H.J. Lu
a91529c4eb Check SSE and YMM state support for -march=native
2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/54741
	*  config/i386/driver-i386.c (XCR_XFEATURE_ENABLED_MASK): New.
	(XSTATE_FP): Likewise.
	(XSTATE_SSE): Likewise.
	(XSTATE_YMM): Likewise.
	(host_detect_local_cpu): Disable AVX, AVX2, FMA, FMA4 and XOP if
	SSE and YMM states aren't supported.

From-SVN: r191998
2012-10-02 12:49:01 -07:00
Richard Sandiford
dccb154f14 mips.md (*baddu_si_eb, [...]): Merge into...
gcc/
	* config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
	(*baddu_si): ...this new pattern.

From-SVN: r191997
2012-10-02 19:37:24 +00:00
Richard Sandiford
a2c19e9343 ira-int.h (target_ira_int): Add x_ira_useful_class_mode_regs.
gcc/
	* ira-int.h (target_ira_int): Add x_ira_useful_class_mode_regs.
	(ira_useful_class_mode_regs): New macro.
	* ira.c (clarify_prohibited_class_mode_regs): Set up
	ira_useful_class_mode_regs.
	* ira-color.c (setup_profitable_hard_regs): Use it to initialise
	profitable_hard_regs.

From-SVN: r191996
2012-10-02 19:34:49 +00:00
Richard Sandiford
c9d74da68c ira.h (target_ira): Add x_ira_class_singleton.
gcc/
	* ira.h (target_ira): Add x_ira_class_singleton.
	(ira_class_singleton): New macro.
	* ira.c (setup_prohibited_class_mode_regs): Set up ira_class_singleton.
	* ira-build.c (update_conflict_hard_reg_costs): Use
	ira_class_singleton to check for classes with a single
	allocatable register.
	* ira-lives.c (ira_implicitly_set_insn_hard_regs): Likewise.
	(single_reg_class): Likewise.  When more than one class is specified,
	check whether they have the same singleton register.
	(process_single_reg_class_operands): Require single_reg_class
	to return NO_REGS or a class with a single allocatable register.
	Obtain that register from ira_class_singleton.

From-SVN: r191995
2012-10-02 19:34:38 +00:00
Michael Meissner
59a2dfe8d7 If no -mcpu=<xxx> or implicit cpu via --with-cpu=<xxx> configure option, inhereit all TARGET_DEFAULT bits.
From-SVN: r191993
2012-10-02 18:08:02 +00:00
Pat Haugen
6b7fa93a48 pr46728-1.c: Accept xssqrtdp.
* gcc.target/powerpc/pr46728-1.c: Accept xssqrtdp.
	* gcc.target/powerpc/pr46728-2.c: Likewise.

From-SVN: r191992
2012-10-02 17:50:52 +00:00
Sharad Singhai
e34842c6f8 re PR testsuite/54772 (vectorization broken in gfortran on x86_64-*-freebsd)
2012-10-02  Sharad Singhai  <singhai@google.com>

	PR testsuite/54772
	* tree-vect-stmts.c (vectorizable_operation): Add missing return.

testsuite/ChangeLog
2012-10-02  Sharad Singhai  <singhai@google.com>

	PR testsuite/54772
	* gfortran.dg/vect/vect.exp: Change verbose vectorizor dump options
	to fix test failures caused by r191883.
	* gcc.dg/tree-ssa/gen-vect-11.c: Likewise.
	* gcc.dg/tree-ssa/gen-vect-2.c: Likewise.
	* gcc.dg/tree-ssa/gen-vect-32.c: Likewise.
	* gcc.dg/tree-ssa/gen-vect-25.c: Likewise.
	* gcc.dg/tree-ssa/gen-vect-11a.c: Likewise.
	* gcc.dg/tree-ssa/gen-vect-26.c: Likewise.
	* gcc.dg/tree-ssa/gen-vect-11b.c: Likewise.
	* gcc.dg/tree-ssa/gen-vect-11c.c: Likewise.
	* gcc.dg/tree-ssa/gen-vect-28.c: Likewise.

From-SVN: r191991
2012-10-02 17:19:09 +00:00
David Edelsohn
dd2c8bfc7c rs6000.c (rs6000_option_override_internal): Do not set TARGET_ALTIVEC_VRSAVE for TARGET_ELF.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
        set TARGET_ALTIVEC_VRSAVE for TARGET_ELF.
        (rs6000_stack_info): Only set vrsave_mask if TARGET_ALTIVEC_VRSAVE.

From-SVN: r191986
2012-10-02 10:53:28 -04:00
Jakub Jelinek
13396b6e4d re PR tree-optimization/54713 (error: non-trivial conversion at assignment in gcc.c-torture/compile/pr53410-2.c)
PR tree-optimization/54713
	* expr.c (categorize_ctor_elements_1): Don't assume purpose is
	non-NULL.
	* tree-cfg.c (verify_gimple_assign_single): Add verification of
	vector CONSTRUCTORs.
	* tree-ssa-sccvn.c (vn_reference_lookup_3): For VECTOR_TYPE
	CONSTRUCTORs, don't do anything if element type is VECTOR_TYPE,
	and don't check index.
	* tree-vect-slp.c (vect_get_constant_vectors): VIEW_CONVERT_EXPR
	ctor elements first if their type isn't compatible with vector
	element type.

From-SVN: r191983
2012-10-02 15:43:09 +02:00
Uros Bizjak
faf86a02f3 ChangeLog: Fix whitespace.
* gcc/ChangeLog: Fix whitespace.
	* libbacktrace/ChangeLog: Ditto.

From-SVN: r191982
2012-10-02 15:28:40 +02:00
Uros Bizjak
5619500911 re PR other/54761 (FAIL log)
PR other/54761
        * configure.ac (EXTRA_FLAGS): New.
	* Makefile.am (AM_FLAGS): Add $(EXTRA_FLAGS).
        * configure, Makefile.in: Regenerate.

From-SVN: r191981
2012-10-02 15:14:25 +02:00
Arnaud Charlet
b6b5cca81b [multiple changes]
2012-10-02  Ben Brosgol  <brosgol@adacore.com>

	* gnat_rm.texi: Minor editing.

2012-10-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Function_Return): Reject a return
	expression whose type is a local access to subprogram type.

2012-10-02  Robert Dewar  <dewar@adacore.com>

	* sem_eval.adb: Minor improvement to Compile_Time_Compare.

2012-10-02  Robert Dewar  <dewar@adacore.com>

	* checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated):
	Fix base type problem that resulted in improper conversion.
	(Minimize_Eliminate_Overflow_Checks): Properly handle top
	level case to avoid unnecessary conversion to bignum or LLI.
	(Minimize_Eliminate_Overflow_Checks): Implement uniform two phase
	approach for arithmetic operators and for if/case expressions.
	* checks.ads: Minor comment fix.
	* exp_ch4.adb (Minimized_Eliminated_Overflow_Check): New function,
	implements a uniform way of treating minimized/eliminated checks in
	two phases.
	(Expand_Compare_Minimize_Eliminate_Overflow): Fix cut and
	paste error resulting in wrong results for less than in some
	cases.	(Expand_Membership_Minimize_Eliminate_Overflow):
	Fix error caused by incorrect capture of operand types.
	(Expand_Membership_Minimize_Eliminate_Overflow): Fix error in
	handling of bignum case.
	(Expand_N_Case_Expression): Implement
	proper two phase handling (Expand_N_If_Expression): Implement
	proper two phase handling (Expand_N_Op_Abs): Implement proper
	two phase handling ditto for all other arithmetic operators
	* sem_res.adb (Resolve_If_Expression): Avoid introducing
	unneeded conversions.

From-SVN: r191980
2012-10-02 15:05:08 +02:00
Robert Dewar
6e6636ec8b s-bignum.adb (Big_Exp): 0**0 should be 1, not 0.
2012-10-02  Robert Dewar  <dewar@adacore.com>

	* s-bignum.adb (Big_Exp): 0**0 should be 1, not 0.
	(Big_Exp): Fix possible error for (-1)**0.
	(Big_Exp): Fix error in computing 2**K for small K.
	(Big_Mod): Fix wrong sign for negative operands.
	(Div_Rem): Fix bad results for operands close to 2**63.
	* s-bignum.ads: Add documentation and an assertion to require
	LLI size to be 64 bits.
	* sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Do not
	allow ELIMINATED if LLI'Size is other than 64 bits.
	* switch-c.adb (Scan_Switches): Do not allow -gnato3 if LLI'Size
	is not 64 bits.
	* switch.ads (Bad_Switch): Add missing pragma No_Return.
	* gnat_ugn.texi: Added appendix on Overflow Check Handling in GNAT.

2012-10-02  Robert Dewar  <dewar@adacore.com>

	* sem_type.adb: Minor reformatting.

From-SVN: r191979
2012-10-02 14:59:17 +02:00
Arnaud Charlet
00bf6feed1 Update dependencies.
From-SVN: r191978
2012-10-02 14:30:24 +02:00
Arnaud Charlet
7353413840 [multiple changes]
2012-10-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb: Minor reformatting.

2012-10-02  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Set_CPP_Constructors): Handle constructor with default
	parameters that covers the default constructor.

2012-10-02  Yannick Moy  <moy@adacore.com>

	* s-bignum.adb: Minor stylistic and comment corrections.

2012-10-02  Pascal Obry  <obry@adacore.com>

	* prj-util.adb (For_Interface_Sources): Iterate over all sources in
	aggregate library projects.

From-SVN: r191977
2012-10-02 14:29:37 +02:00
Ed Schonberg
27dd0dde2d sem_ch8.adb (Find_Direct_Name): The left-hand side of an assignment may designate a generalized reference.
2012-10-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Find_Direct_Name): The left-hand side of an
	assignment may designate a generalized reference.

From-SVN: r191976
2012-10-02 14:26:43 +02:00
Arnaud Charlet
7640ef8aba [multiple changes]
2012-10-02  Eric Botcazou  <ebotcazou@adacore.com>

	* types.h (N_Return_Statement): Delete.
	* gcc-interface/trans.c (gnat_to_gnu): Replace N_Return_Statement with
	N_Simple_Return_Statement.

2012-10-02  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Entity): in a generic context, aspects must
	be analyzed because they may be queried subsequently within the
	generic unit, even if no other freezing actions are generated
	for an entity.
	* sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): iterator
	aspects must be analyzed because they are delayed aspects and
	the corresponding attribute definition clause may not have been
	analyzed yet.

2012-10-02  Yannick Moy  <moy@adacore.com>

	* gnat_rm.texi: Minor editing.

From-SVN: r191975
2012-10-02 14:25:44 +02:00
Robert Dewar
92a7cd4694 sinfo.adb, [...]: Get rid of internal use of N_Return_Statement.
2012-10-02  Robert Dewar  <dewar@adacore.com>

	* sinfo.adb, sinfo.ads, sem_util.adb, sem_util.ads, types.h,
	exp_ch4.adb, exp_ch6.adb: Get rid of internal use of N_Return_Statement.

From-SVN: r191974
2012-10-02 14:18:15 +02:00
Arnaud Charlet
c9a6b38f01 [multiple changes]
2012-10-02  Eric Botcazou  <ebotcazou@adacore.com>

	* types.h: Minor cosmetic fix.

2012-10-02  Robert Dewar  <dewar@adacore.com>

	* sinfo.ads: Remove refs of N_Conditional_Expression and
	N_Parameterized_Expression.

2012-10-02  Thomas Quinot  <quinot@adacore.com>

	* exp_aggr.adb (Get_Component_Val): Rewrite code that computes
	justification of bits in enclosing word in an attempt to make
	it clearer.

From-SVN: r191973
2012-10-02 14:16:17 +02:00
Eric Botcazou
f563ce5585 decl.c (elaborate_expression_1): Use the variable for bounds of loop iteraration scheme only for locally defined...
* gcc-interfaces/decl.c (elaborate_expression_1): Use the variable for
	bounds of loop iteraration scheme only for locally defined subtypes.

	* gcc-interface/trans.c (gigi): Fix formatting.
	(build_return_expr): Apply the NRV optimization only for BLKmode.

From-SVN: r191971
2012-10-02 10:34:44 +00:00
Eric Botcazou
0f1e88429a tree.h (DECL_NONLOCAL_FRAME): New macro.
* tree.h (DECL_NONLOCAL_FRAME): New macro.
	* tree-nested.c (get_frame_type): Set DECL_NONLOCAL_FRAME.
	* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream in
	DECL_NONLOCAL_FRAME flag.
	* tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream out
	DECL_NONLOCAL_FRAME flag.

From-SVN: r191970
2012-10-02 10:00:32 +00:00
Marc Glisse
70a6aea0ad tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use boolean_type_node for vectors.
2012-10-02  Marc Glisse  <marc.glisse@inria.fr>

	* tree-ssa-forwprop.c (forward_propagate_into_cond): Don't use
	boolean_type_node for vectors.

From-SVN: r191968
2012-10-02 08:52:44 +00:00
Robert Dewar
9b16cb57de par_sco.adb, [...]: Change name Conditional_Expression to If_Expression.
2012-10-02  Robert Dewar  <dewar@adacore.com>

	* par_sco.adb, sem_ch3.adb, layout.adb, exp_ch7.adb, exp_imgv.adb,
	exp_util.adb, exp_util.ads, exp_attr.adb, sinfo.adb, sinfo.ads,
	exp_ch9.adb, style.ads, scos.ads, debug.adb, einfo.ads, scng.adb,
	checks.adb, checks.ads, sem.adb, par-ch4.adb, sem_util.adb, types.h,
	sem_res.adb, expander.adb, scans.ads, par.adb, exp_ch2.adb,
	gnat1drv.adb, stylesw.ads, sem_elab.adb, exp_ch4.adb, exp_ch4.ads,
	exp_ch6.adb, sem_ch4.adb, sem_ch4.ads, sem_ch6.adb,
	opt.ads, sem_eval.adb, sem_eval.ads, exp_intr.adb, sprint.adb,
	sprint.ads, styleg.ads: Change name Conditional_Expression to
	If_Expression.
	* gcc-interface/trans.c (gnat_to_gnu): Replace
	N_Conditional_Expression by N_If_Expression.
	* gcc-interface/Make-lang.in: Update dependencies.

From-SVN: r191967
2012-10-02 10:48:27 +02:00
Arnaud Charlet
cb42ba5d66 [multiple changes]
2012-10-02  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_N_Op_Expon): Use expression with actions
	for x ** 4.

2012-10-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb: (Analyze_Iterator_Specification): If container
	has a variable indexing aspect, the element is a variable and
	is modifiable in the loop. This check is also performed when the
	loop is expanded, but it must be done in semantic analysis when
	expansion is disabled, for example for ASIS usage.

2012-10-02  Ed Schonberg  <schonberg@adacore.com>

	* lib-xref.adb (Generate_Reference): If a child subprogram
	has no previous spec, treat a reference to its formals (such
	as a parameter association) as coming from source in order to
	generate the proper references and enable gps navigation between
	reference and declaration.

From-SVN: r191965
2012-10-02 10:40:05 +02:00
Robert Dewar
4b1c4f20d8 checks.adb (Apply_Arithmetic_Overflow_Checked_Suppressed): New name for Apply_Arithmetic_Overflow_Normal
2012-10-02  Robert Dewar  <dewar@adacore.com>

	* checks.adb (Apply_Arithmetic_Overflow_Checked_Suppressed):
	New name for Apply_Arithmetic_Overflow_Normal
	(Apply_Arithmetic_Overflow_Minimized_Eliminated):
	Add handling for conditional expressions
	(Is_Signed_Integer_Arithmetic_Op): Now includes conditional
	expressions (Minimize_Eliminate_Overflow_Checks): Handle
	conditional expressions.
	* checks.ads: Minor comment fixes.
	* exp_ch4.adb (Expand_N_Case_Expression): Call
	Apply_Arithmetic_Overflow_Check (Expand_N_Conditional_Expression):
	Call Apply_Arithmetic_Overflow_Check
	* s-bignum.adb (Normalize): Remove incorrect precondition.
	* sem_res.adb (Resolve_Case_Expression): Set Do_Overflow_Check
	flag (Resolve_Conditional_Expression): Set Do_Overflow_Check flag.
	* sinfo.adb: Add Do_Overflow_Check for conditional expressions.
	* sinfo.ads: Minor documentation updates.

From-SVN: r191964
2012-10-02 10:37:54 +02:00
Arnaud Charlet
2492305bcc [multiple changes]
2012-10-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb (Expand_N_Case_Expression): Do not introduce
	indirections when the type of the alternatives is an access type:
	more efficient, and removes anomalies when an alternative is
	statically null.

2012-10-02  Robert Dewar  <dewar@adacore.com>

	* aspects.ads: Minor comment addition (Invariant is a GNAT aspect).

From-SVN: r191963
2012-10-02 10:31:49 +02:00
Robert Dewar
9a6dc47083 exp_ch7.adb, [...]: Minor reformatting.
2012-10-02  Robert Dewar  <dewar@adacore.com>

	* exp_ch7.adb, sem_dim.adb, sem_dim.ads, prj-part.adb, checks.adb,
	freeze.adb, sem_ch4.adb, sem_ch13.adb: Minor reformatting.

2012-10-02  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Fix
	typo preventing proper processing of Overflow_Checks pragmas
	for general case.

2012-10-02  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_N_Op_Mod): Fix crash in ELIMINATED overflow
	checks mode when bignum mode is used.

2012-10-02  Robert Dewar  <dewar@adacore.com>

	* stylesw.ads, gnat_ugn.texi: Document new style rule for NOT IN.
	* par-ch4.adb (P_Relational_Operator): Add style check for NOT IN.
	* style.ads, styleg.adb, styleg.ads (Check_Not_In): New procedure.

From-SVN: r191962
2012-10-02 10:22:53 +02:00
Arnaud Charlet
07ef182e37 [multiple changes]
2012-10-02  Vincent Pucci  <pucci@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Check dimension for attribute
	Old before it gets expanded.
	* sem_dim.adb (Analyze_Dimension_Has_Etype): Correctly propagate
	dimensions for identifier.

2012-10-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_Iterator_Loop): Handle properly the case
	where the iterator type is derived locally from an instantiation
	of Ada.Iterators_Interface.
	* exp_ch7.adb (Establish_Transient_Scope): Do not create a
	transient scope if within the expansion of an iterator loop,
	because a transient block already exists.

2012-10-02  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb: Use absolute path for configuration pragmas files
	* make.adb (Configuration_Pragmas_Switch.Absolute_Path): Moved
	to Makeutl.
	* makeutl.ads, makeutl.adb (Absolute_Path): New function, moved from
	make.adb.

2012-10-02  Vincent Celier  <celier@adacore.com>

	* prj-part.adb (Post_Parse_Context_Clause): Resurrect Boolean
	parameter In_Limited.  Check for circularity also if In_Limited
	is True.
	(Parse_Single_Project): Call Post_Parse_Context_Clause with
	In_Limited parameter.

From-SVN: r191961
2012-10-02 10:19:14 +02:00
Arnaud Charlet
2a7b8e181b [multiple changes]
2012-10-02  Bob Duff  <duff@adacore.com>

	* checks.adb (Apply_Predicate_Check): Disable check in -gnatc mode.

2012-10-02  Vincent Pucci  <pucci@adacore.com>

	* sem_ch6.adb (Analyze_Function_Call): Dimension propagation
	for function calls moved to Analyze_Dimension_Call.
	* sem_dim.adb (Analyze_Dimension_Call): Properly propagate the
	dimensions from the returned type for function calls.

2012-10-02  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb: Take into account any configuration pragma file
	in the project files for gnat pretty/stub/metric.

2012-10-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Check_Indexing_Functions): Refine several tests
	on the legality of indexing aspects: Constant_Indexing functions
	do not have to return a reference type, and given an indexing
	aspect Func, not all overloadings of Func in the current scope
	need to be indexing functions.

2012-10-02  Vasiliy Fofanov  <fofanov@adacore.com>

	* gnat_ugn.texi: Adjust docs for overflow checks to be VMS-friendly.

2012-10-02  Vincent Celier  <celier@adacore.com>

	* switch-m.adb (Normalize_Compiler_Switches): Recognize switches
	-gnatox and -gnatoxx when x=0/1/2/3.

From-SVN: r191960
2012-10-02 10:16:40 +02:00
Arnaud Charlet
5f49133f81 [multiple changes]
2012-10-02  Vincent Pucci  <pucci@adacore.com>

	* sem_ch4.adb (Analyze_Indexed_Component_Form): Dimension
	analysis for indexed components added.
	* sem_ch6.adb (Analyze_Function_Call): Dimension propagation
	for function calls added.
	* sem_dim.adb (Analyze_Dimension): Call to
	Analyze_Dimension_Has_Etype when N is a function call.
	(Analyze_Dimension_Call): Don't propagate anymore the dimensions
	for function calls since this is now treated separately in
	Analyze_Dimension_Has_Etype.
	(Analyze_Dimension_Has_Etype): For
	attribute references, propagate the dimensions from the prefix.
	* sem_dim.ads (Copy_Dimensions): Fix comment.

2012-10-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* checks.ads, checks.adb (Apply_Parameter_Aliasing_Checks): New routine.
	(Apply_Parameter_Aliasing_And_Validity_Checks): This routine
	has been split into two.
	(Apply_Parameter_Validity_Checks): New routine.
	* exp_ch6.adb (Expand_Call): Add checks to verify that actuals
	do not overlap. The checks are made on the caller side to overcome
	issues of parameter passing mechanisms.
	* freeze.adb (Freeze_Entity): Update call to
	Apply_Parameter_Aliasing_And_Validity_Checks.

From-SVN: r191959
2012-10-02 10:13:09 +02:00
Ed Schonberg
4856cc2a7d sem_ch4.adb (Is_Empty_Range): Use bounds of index type to determine whether an array is empty when...
2012-10-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Is_Empty_Range): Use bounds of index type
	to determine whether an array is empty when optimizing
	a quantified expression over a null range. Use of RM_Size
	was incorrect. Analyze condition before constant-folding the
	expression to catch potential errors. Modify the error message
	to avoid mathematical terminology.

From-SVN: r191958
2012-10-02 10:10:54 +02:00
Arnaud Charlet
538dbb562f [multiple changes]
2012-10-02  Robert Dewar  <dewar@adacore.com>

	* usage.adb, gnat_rm.texi, vms_data.ads: Add entry for
	/OVERFLOW_CHECKS=?? generating -gnato?? for control
	of extended overflow checking.
	* ug_words: Add entry for -gnato?? for /OVERFLOW_CHECKS=??
	* gnat_ugn.texi: Add documentation for -gnato?? for control of overflow
	checking mode.

2012-10-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_Quantified_Expression): If the iterator in
	a quantified expression is statically known to be null (e.g. a
	array with an empty index type) emit a warning.

From-SVN: r191957
2012-10-02 10:08:18 +02:00