* prj-proc.adb: Minor comment spelling error fix.
* osint.ads (Env_Vars_Case_Sensitive): Use function
Get_Env_Vars_Case_Sensitive, not Get_File_Names_Case_Sensitive to
compute value.
2010-09-09 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Equality_Op): Implement Ada2012 rule for
resolution of conditional expressions whose dependent expressions are
anonymous access types.
2010-09-09 Robert Dewar <dewar@adacore.com>
* a-ststio.adb: Minor code reorganization.
* s-direio.adb, prj.adb, prj-nmsc.adb, sem_type.adb: Remove redundant
conversion.
* types.ads: Minor reformatting.
* binde.adb, vms_conv.adb, gnatls.adb, s-strxdr.adb, uintp.adb: Remove
redundant conversions.
* output.adb: Minor reformatting.
* sem_ch8.adb (Find_Type): Test for redundant base applies to user
types.
* opt.ads: Add pragma Ordered for Verbosity_Level.
* prj.ads: Add pragma Ordered for type Verbosity.
predicates.md (ext_register_operand): Check that SUBREG_REG is really a register before looking for REGNO.
* config/i386/predicates.md (ext_register_operand): Check that
SUBREG_REG is really a register before looking for REGNO.
(reg_not_xmm0_operand): Handle SUBREGs correctly.
(nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
Vincent Celier [Thu, 9 Sep 2010 10:24:43 +0000 (10:24 +0000)]
adaint.c: New function __gnat_get_env_vars_case_sensitive...
2010-09-09 Vincent Celier <celier@adacore.com>
* adaint.c: New function __gnat_get_env_vars_case_sensitive, returns 0
for VMS and Windows, and 1 for all other platforms.
* adaint.h: New function __gnat_get_env_vars_case_sensitive
* osint.ads, osint.adb (Canonical_Case_Env_Var_Name): New procedure.
* prj-ext.adb (Add): Call Canonical_Case_Env_Var_Name instead of
Canonical_Case_File_Name, as we are dealing with environment variables,
not files.
* sem_util.adb (Same_Object): include formal parameters.
2010-09-09 Vincent Celier <celier@adacore.com>
* make.adb (Queue): New package implementing a new impementation of the
queue, taking into account the new switch --single-compile-per-obj-dir.
* makeutl.ads (Single_Compile_Per_Obj_Dir_Switch): New constant String
for gnatmake and gprbuild new switch --single-compile-per-obj-dir.
* opt.ads (One_Compilation_Per_Obj_Dir): New Boolean flag, defauted to
False.
* switch-m.adb (Scan_Make_Switches): Take into account new gnatmake
switch --single-compile-per-obj-dir.
* vms_data.ads: Add qualifier SINGLE_COMPILE_PER_OBJ_DIR for gnatmake
switch --single-compile-per-obj-dir.
* gnat_ugn.texi: Add documentation for new gnatmake switch
--single-compile-per-obj-dir.
* exp_ch3.adb (Build_Untagged_Equality): Do not set alias of implicit
inequality, it is always rewritten as the negation of the corresponding
equality operation.
* exp_ch8.adb (Expand_N_Subprogram_Renaming): If the subprogram renames
the predefined equality of an untagged record, create a body at the
point of the renaming, to capture the current meaning of equality for
the type.
Robert Dewar [Thu, 9 Sep 2010 09:57:00 +0000 (09:57 +0000)]
sem_ch13.adb, [...]: Minor reformatting.
2010-09-09 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb, sem_ch6.adb, exp_ch3.adb: Minor reformatting.
2010-09-09 Robert Dewar <dewar@adacore.com>
* einfo.adb (Is_Aggregate_Type): New function.
* einfo.ads (Aggregate_Kind): New enumeration subtype
(Is_Aggregate_Type): New function.
* sem_type.adb (Is_Array_Class_Record_Type): Removed, replaced by
Is_Aggregate_Typea.
2010-09-09 Robert Dewar <dewar@adacore.com>
* exp_ch11.adb, frontend.adb, sem_attr.adb, sem_ch10.adb, sem_ch3.adb,
sem_ch4.adb, sem_ch9.adb, sem_res.adb: Use Restriction_Check_Needed
where appropriate.
* restrict.ads, restrict.adb: Ditto.
(Restriction_Check_Needed): New function
* exp_ch9.ads (Find_Master_Scope): New function, extracted from
Build_Master_Entity, to find the proper scope for the master entity of
a type that may contain tasks, in the presence of transient scopes.
* exp_ch9.adb (Build_Master_Entity) Use new function.
* exp_ch3.adb (Build_Class_Wide_Master): ditto.
2010-09-09 Vincent Celier <celier@adacore.com>
* prj-attr.adb: Add new attributes Leading_Library_Options and
Linker'Leading_Switches.
* snames.ads-tmpl: Add new standard names Leading_Library_Options and
Leading_Switches.
Javier Miranda [Thu, 9 Sep 2010 09:47:53 +0000 (09:47 +0000)]
sem_ch3.adb (Derive_Subprogram): The code that checks if a dispatching primitive covers some interface primitive...
2010-09-09 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Derive_Subprogram): The code that checks if a
dispatching primitive covers some interface primitive is incomplete.
Replace such code by the invocation of a new subprogram that provides
this functionality.
* sem_ch6.ads (Is_Interface_Conformant): Add missing documentation.
* sem_ch6.adb (Check_Missing_Return): Minor reformating
(Check_Convention): Complete if-statement conditition when reporting
errors (to avoid assertion failure).
* sem_ch13.adb (Make_Null_Procedure_Specs): This routine was previously
located in exp_ch3. Relocated inside Analyze_Freeze_Entity.
(Analyze_Freeze_Entity): Invoke routine that adds the spec of non
overridden null interface primitives.
* sem_type.adb (Is_Ancestor): If the parent of the partial view of a
private type is an interface then use the parent of its full view to
climb to its ancestor type.
* sem_disp.ads, sem_disp.adb (Covers_Some_Interface): New subprogram.
(Check_Dispatching_Operation): Extend assertion to handle wrappers of
null interface primitives.
(Is_Null_Interface_Primitive): New subprogram.
* exp_ch3.adb (Make_Null_Procedure_Specs): Removed.
(Expand_Freeze_Record_Type): Do not generate specs of null interface
subprograms because they are now generated by Analyze_Freeze_Entity.
* bindgen.adb (Gen_Restrictions_Ada): Avoid explicit enumeration ranges
(Gen_Restrictions_C): Avoid explicit enumeration ranges
(Set_String_Replace): New procedure
* casing.ads (Known_Casing): New subtype declaration
* prj-attr.ads (All_Case_Insensitive_Associative_Array): New subtype
declaration
* prj-dect.adb (Parse_Attribute_Declaration): Avoid enumeration range
* prj-nmsc.adb (Check_Naming): Avoid unnecessary enumeration range
* prj-strt.adb (Attribute_Reference): Avoid enumeration range test
* prj.adb (Known_Casing): Moved to Casing spec (avoid enum range)
* sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Avoid enumeration
ranges
* sem_res.adb (Resolve_Range): Check for enumeration subrange style rule
* sem_type.adb (Is_Array_Class_Record_Type): New.
* style.ads (Check_Enumeration_Subrange): New procedure
* styleg.adb (Check_Enumeration_Subrange): New procedure
* styleg.ads (Check_Enumeration_Subrange): New procedure
* stylesw.adb Add handling for Style_Check_Enumeration_Subranges
* stylesw.ads (Style_Check_Enumeration_Subranges): New flag
* usage.adb: Add line for -gnatyE
* vms_data.ads: Add entries for [NO]ENUMERATION_RANGES
Add missing entry for NOBOOLEAN_OPERATORS
* gnat_ugn.texi: Add documentation for -gnatyE
2010-09-09 Robert Dewar <dewar@adacore.com>
* namet.adb (Initialize): Is now a dummy procedure
(Reinitialize): New procedure
Call Reinitialize from package initialization
* namet.ads (Initialize): Is now a dummy procedure
(Reinitialize): New procedure
* clean.adb, gnat1drv.adb, gnatbind.adb, gnatcmd.adb, gnatlink.adb,
gnatls.adb, gprep.adb, make.adb, prj-makr.adb: Remove obsolete call to
Namet.Initialize.
2010-09-09 Bob Duff <duff@adacore.com>
* sem_elab.adb, s-os_lib.ads: Minor comment fixes.
Robert Dewar [Thu, 9 Sep 2010 09:35:11 +0000 (09:35 +0000)]
nlists.ads, nlists.adb (In_Same_List): New function.
2010-09-09 Robert Dewar <dewar@adacore.com>
* nlists.ads, nlists.adb (In_Same_List): New function.
Use Node_Or_Entity_Id where appropriate.
* par-labl.adb, sem_ch6.adb, sem_type.adb: Use In_Same_List.
2010-09-09 Robert Dewar <dewar@adacore.com>
* restrict.ads, restrict.adb (Check_Wide_Character_Restriction): New
procedure.
* sem_ch3.adb: Use Check_Wide_Character_Restriction
(Enumeration_Type_Declaration): Check violation of No_Wide_Characters
* sem_ch8.adb (Find_Direct_Name): Check violation of No_Wide_Characters
(Find_Expanded_Name): Check violation of No_Wide_Characters
* prj-env.adb: Minor code reorganization.
* par-ch3.adb: Minor reformatting.
* gcc-interface/Make-lang.in: Update dependencies.
2010-09-09 Ed Schonberg <schonberg@adacore.com>
* exp_ch9.adb (Build_Activation_Chain_Entity): The construct enclosing
a task declaration can be an entry body.
2010-09-09 Javier Miranda <miranda@adacore.com>
* exp_disp.adb (Make_DT): Decorate as "static" variables containing
tags of library level tagged types.
(Make_Tags): Disable backend optimizations about aliasing for
declarations of access to dispatch tables.
2010-09-09 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Reset_Entity): If the entity is an itype created as a
subtype for a null-excluding access type, recover the original
subtype_mark to get the proper visibility on the original name.
2010-09-09 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Build_Untagged_Equality): For Ada2012, new procedure to
create the primitive equality operation for an untagged record. The
operation is the predefined equality if no record component has a
user-defined equality, or if there is a user-defined equality for the
type as a whole, or when the type is derived and it has an inherited
equality. Otherwise the body of the operations is built as for tagged
types.
(Expand_Freeze_Record_Type): Call Build_Untagged_Equality when needed.
(Make_Eq_Body): New function to create the expanded body of the equality
operation for tagged and untagged records. In both cases the operation
composes, and the primitive operation of each record component is used
to generate the equality function for the type.
* exp_ch4.adb (Expand_Composite_Equality): In Ada2012, if a component
has an abstract equality defined, replace its call with a
Raise_Program_Error.
* sem_ch6.adb (New_Overloaded_Entity): if Ada2012, verify that a
user-defined equality operator for an untagged record type does not
happen after type is frozen, and appears in the visible part if partial
view of type is not limited.
2010-09-09 Tristan Gingold <gingold@adacore.com>
* gnatlbr.adb: Make Create_Directory more portable: use __gnat_mkdir.
2010-09-09 Bob Duff <duff@adacore.com>
* gnat_ugn.texi: Remove incorrect statement about -E being the default.
re PR fortran/43665 (INTENT(IN) etc. optimization of calls: function annotations for noclobber/noescape arguments)
2010-09-09 Tobias Burnus <burnus@net-b.de>
PR fortran/43665
* intrincic.texi (FGET, FGETC, FPUT, FPUTC, FSTAT, GETCWD, KILL,
STAT): Show also syntax for the function version.
* intrinsic.c (add_sym_1s_intent, add_sym_2s_intent,
add_sym_3s_intent): Remove function.
(add_sym_1s, add_sym_2s, add_sym_3s): Take always the intent
as argument.
(add_sym_2_intent): New function.
(add_functions): Set intent for functions which modify
the argument: fstat, fgetc, fget, hostnm, lstat, stat. Change
argument name of hostnm from "a" to "c"
(add_subroutines): Change add_sym_*s_intent to
add_sym_*s and add intent to the add_sym_*s calls.
* config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
numerical constant.
(EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
Nicola Pero [Wed, 8 Sep 2010 21:03:51 +0000 (21:03 +0000)]
throw-nil.m: New test.
* objc/execute/exceptions/throw-nil.m: New test.
* objc/execute/exceptions/handler-1.m: Updated to use the new
objc_set_uncaught_exception_handler() function.
* objc/execute/exceptions/matcher-1.m: New test.
Nicola Pero [Wed, 8 Sep 2010 21:03:09 +0000 (21:03 +0000)]
objc-exception.h: New file.
* objc/objc-exception.h: New file.
* exception.c (objc_set_uncaught_exception_handler): Implemented.
(objc_set_exception_matcher): Implemented.
(objc_exception_throw): Use the uncaught exception handler if set.
(PERSONALITY_FUNCTION): Use the exception matcher instead of the
hardcoded isKindOf.
(isKindOf): Renamed to is_kind_of_exception_matcher. Tidied code
up. Removed segmentation fault when value is 'nil'.
* objc/objc-api.h (_objc_unexpected_exception): Mark as
deprecated.
* Makefile.in (exception.lo, exception_gc.lo): Use
-Wno-deprecated-declarations when compiling.
(OBJC_H): Added objc-exception.h
* gfortran.dg/bit_comparison_1.F90: New test.
* gfortran.dg/leadz_trailz_3.f90: New test.
* gfortran.dg/masklr_2.F90: New test.
* gfortran.dg/shiftalr_1.F90: New test.
* gfortran.dg/merge_bits_2.F90: New test.
* gfortran.dg/dshift_2.F90: New test.
* gfortran.dg/bit_comparison_2.F90: New test.
* gfortran.dg/masklr_1.F90: New test.
* gfortran.dg/merge_bits_1.F90: New test.
* gfortran.dg/dshift_1.F90: New test.
* gfortran.dg/shiftalr_2.F90: New test.
Nicola Pero [Wed, 8 Sep 2010 18:02:53 +0000 (18:02 +0000)]
typedstream.h: Deprecate all functions in the file.
* objc/typedstream.h: Deprecate all functions in the file. This
file is obsolete.
* objc/Object.h ([+streamVersion:], [-read:], [-write:],
[-awake]): Documented that these methods are deprecated. Added a
brief description of the Object class and its relationship to the
NSObject class.
* Makefile.in: Compile archive.c and Object.m with
-Wno-deprecated-declarations.
gcc/testsuite:
* lib/target-supports.exp
(check_effective_target_run_expensive_tests): New proc.
* gcc.c-torture/compile/limits-fnargs.c: Use
dg-require-effective-target run_expensive_tests.
Michael Matz [Wed, 8 Sep 2010 12:40:24 +0000 (12:40 +0000)]
re PR tree-optimization/43430 (Missed vectorization: "stmt not supported: cond_expr")
PR tree-optimization/43430
* tree-vect-stmts.c (vectorizable_condition): Support multiple
copies for conditional statements if it's not part of a reduction.
testsuite/
PR tree-optimization/43430
* gcc.dg/vect/pr43430-2.c: New test.
re PR tree-optimization/45578 (The polyhedron test mdbx is miscompiled with -O2 -ftree-vectorize at revision 163915)
2010-09-08 Richard Guenther <rguenther@suse.de>
PR tree-optimization/45578
* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
Be more careful when transfering alignment information to
the new induction variable.
(copy_ref_info): Likewise.
re PR bootstrap/44001 (.o vs. obj => @OBJEXT@ and $ac_objext)
2010-09-08 Tristan Gingold <gingold@adacore.com>
PR 44001
* maint-tool (missing): Fix pattern for object file.
(deps): Use $(objext) for object extension.
* Makefile.in (objext): New variable.
Replace all occurences of .o with .$(objext)
Regenerate with maint-deps
* configure.ac (pexecute): Set to the basename.
* configure: Regenerate.
Paolo Carlini [Tue, 7 Sep 2010 22:30:33 +0000 (22:30 +0000)]
re PR libstdc++/45549 (merge is_iterator into iterator_traits)
2010-09-07 Paolo Carlini <paolo.carlini@oracle.com>
Marc Glisse <marc.glisse@normalesup.org>
PR libstdc++/45549
* include/bits/cpp_type_traits.h (__is_iterator_helper): Rename to
__has_iterator_category.
(__is_iterator): Adjust.
* include/bits/stl_iterator_base_types.h (__iterator_traits): Add
in C++0x mode, use the latter.
(iterator_traits): In C++0x mode, derive from the latter.
* include/bits/stl_iterator_base_funcs.h (next, prev): Remove
enable_if on the return type.
Co-Authored-By: Marc Glisse <marc.glisse@normalesup.org>
From-SVN: r163977
Jan Hubicka [Tue, 7 Sep 2010 21:26:34 +0000 (23:26 +0200)]
tree-inline.c (tree_inlinable_function_p): Do not test DECL_REPLACEABLE_P.
* tree-inline.c (tree_inlinable_function_p): Do not test DECL_REPLACEABLE_P.
* ipa-inline.c (cgraph_default_inline_p, update_caller_keys, update_callee_keys,
cgraph_decide_inlining): Test function availability.
* cif-code.def (OVERWRITABLE): New code.
H.J. Lu [Tue, 7 Sep 2010 21:18:55 +0000 (14:18 -0700)]
Redefine STACK_BOUNDARY/PREFERRED_STACK_BOUNDARY for Darwin/x86.
gcc/
2010-09-07 H.J. Lu <hjl.tools@gmail.com>
Jack Howarth <howarth@bromo.med.uc.edu>
PR target/36502
PR target/42313
PR target/44651
* gcc/config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
(PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
MAX macro.
gcc/testsuite/
2010-09-07 Jack Howarth <howarth@bromo.med.uc.edu>
PR target/36502
* gcc.target/i386/pr36502.c: New test.
PR target/42313
PR target/44651
* gcc.target/i386/builtin-unreachable.c: Don't skip on darwin.
* gcc/testsuite/gcc.dg/stack-usage-1.c: Use default on i386/Darwin.
cp-tree.h (build_enumerator): Add new location_t parameter.
* cp-tree.h (build_enumerator): Add new location_t parameter.
(build_lang_decl_loc): New function.
* decl.c (build_enumerator): New parameter loc. Use it when calling
build_decl. Replace build_lang_decl with build_lang_decl_loc.
* pt.c (tsubst_enum): Adjust call to build_enumerator.
* parser.c (cp_parser_enumerator_definition): Ditto.
* lex.c (build_lang_decl_loc): New function.
re PR middle-end/45569 (ICE: verify_stmts failed: statement marked for throw in middle of block with -fnon-call-exceptions)
2010-09-07 Richard Guenther <rguenther@suse.de>
PR middle-end/45569
* tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
* passes.c (execute_function_todo): Do not verify anything if
we saw errors.