2006-02-17 Paolo Carlini <pcarlini@suse.de>
Howard Hinnant <hhinnant@apple.com>
PR libstdc++/26250
* include/bits/sstream.tcc (basic_stringbuf<>::overflow): Tweak
to leave epgtr() just past the new write position, as per the
relevant bits of 27.7.1.3/8 (not changed by DR 432).
* testsuite/27_io/basic_stringbuf/overflow/char/26250.cc: New.
* testsuite/27_io/basic_stringbuf/overflow/wchar_t/26250.cc: Same.
* docs/html/ext/howto.html: Add entries for DR 169 and DR 432.
* include/std/std_sstream.h (basic_stringbuf<>::_M_sync): Move out
of line...
* include/bits/sstream.tcc: ... here.
Co-Authored-By: Howard Hinnant <hhinnant@apple.com>
From-SVN: r111177
* tree-vrp.c (set_value_range_to_nonnegative): New function.
(vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
(ssa_name_nonzero_p): Likewise.
(get_value_range): Return NULL if VRP is not running.
(extract_range_from_expr): Fallback to tree_expr_XXX_p if
VRP routines do not discover a range.
(vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
* tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
* fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
(tree_expr_nonnegative_p): Similarly.
* tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
(restore_nonzero_vars_to_original_value): Remove.
(unsafe_associative_fp_binop): Remove.
(tree_ssa_dominator_optimize): Remove initialization and
finalization of nonzero_vars and nonzero_vars_stack.
(dom_opt_initialize_block): No longer push marker on
nonzero_vars_stack.
(dom_opt_finalize_block): No longer call
restore_nonzero_vars_to_original_value.
(record_equivalences_from_phis): No longer look for
nonzero PHI arguments.
(cprop_into_successor_phis): No longer propagate nonzero
property into PHI arguments. Lose unused argument. Caller
updated.
(record_equivalences_from_stmt): No longer record nonzero
values for SSA_NAMEs.
(lookup_avail_expr): No longer use nonzero_vars.
* gcc.dg/tree-ssa/vrp24.c: Update expected output.
* gcc.dg/tree-ssa/vrp26.c: New test.
From-SVN: r111175
2006-02-16 Denis Nagorny <denis_nagorny@linux.intel.com>
PR rtl-optimization/25603
* reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
(regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
* reload1.c (choose_reload_regs): Added call of regno_clobbered_p
with new meaning of SETS.
From-SVN: r111162
2006-02-16 Andreas Tobler <a.tobler@schweiz.ch>
* testsuite/libffi.call/nested_struct2.c: Remove ffi_type_mylong
definition.
* testsuite/libffi.call/ffitest.h: Add ffi_type_mylong definition
here to be used by other test cases too.
* testsuite/libffi.call/nested_struct10.c: New test case.
* testsuite/libffi.call/nested_struct9.c: Likewise.
* testsuite/libffi.call/nested_struct8.c: Likewise.
* testsuite/libffi.call/nested_struct7.c: Likewise.
* testsuite/libffi.call/nested_struct6.c: Likewise.
* testsuite/libffi.call/nested_struct5.c: Likewise.
* testsuite/libffi.call/nested_struct4.c: Likewise.
From-SVN: r111151
2005-02-16 Paul Thomas <pault@gcc.gnu.org>
PR fortran/24557
* trans-expr.c (gfc_add_interface_mapping): Use the actual argument
for character(*) arrays, rather than casting to the type and kind
parameters of the formal argument.
2005-02-16 Paul Thomas <pault@gcc.gnu.org>
PR fortran/24557
* gfortran.dg/assumed_charlen_needed_1.f90: New test.
From-SVN: r111130
PR rtl-optimization/25636
* local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
when deciding whether an insn is an initializing insn.
From-SVN: r111129
2006-02-13 Arnaud Charlet <charlet@adacore.com>
Ben Brosgol <brosgol@adacore.com>
Robert Dewar <dewar@adacore.com>
* gnat_ugn.texi: Remove limitations with sparc m64 support.
Document that gnatbind -M option is for cross environments only.
Added description of using gnatmem to trace gnat rtl allocs and deallocs
Add note on use of $ to label implicit run time calls
Add documentation for -gnatyI (check mode IN)
Updated chapter on compatibility with HP Ada
VMS-oriented edits.
Ran spell and corrected errors
Add documentation for gnatbind -d and rework documentation of -D
at the same time.
Add subprogram/data elimination section.
Minor editing of annex A.
Add section for gnatcheck.
Add documentation for restriction No_Dispatching_Calls
Add documentation for pragma Ada_2005
Remove mention of obsolete pragma Propagate_Exceptions
Document that pragma Unreferenced can appear after DO in ACCEPT
Clarify Pure_Function for library level units
Mention Max/Min in connection with No_Implicit_Conditionals
No_Wide_Characters restriction is no longer partition-wide
Add a nice example for Universal_Literal_String attribute
Document that pragma No_Return can take multiple arguments
* ug_words: Added entry for gnatcheck
* g-ctrl_c.ads (Install_Handler): Enhance comments
* g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
* g-trasym.ads: Add documentation on how to do off line symbolic
traceback computation.
* s-fatgen.adb: Add comments for Unaligned_Valid
* stand.ads: Fix typo in comment
From-SVN: r111104
2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
* tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
(PPC VxWorks): Likewise.
(Generic unwinder): Define FORCE_CALL to 0 if not already defined.
(forced_callee): Make non-inlinable and non-pure.
(__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
From-SVN: r111103
2006-02-13 Bob Duff <duff@adacore.com>
* s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
Scan_Unsigned, so we do not scan leading blanks and sign twice.
Integer'Value("- 5") and Integer'Value("-+5") now correctly
raise Constraint_Error.
* s-vallli.adb (Scan_Long_Long_Integer): Call
Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
do not scan leading blanks and sign twice.
Integer'Value("- 5") and Integer'Value("-+5") now correctly
raise Constraint_Error.
* s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
Scan_Long_Long_Unsigned): Split out most of the processing from
Scan_Long_Long_Unsigned out into
Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
This prevents scanning leading blanks and sign twice.
Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
See RM-3.5(44).
* s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
out most of the processing from Scan_Unsigned out into
Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
This prevents scanning leading blanks and sign twice.
* s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
use with Modular'Value attribute.
(Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
attribute.
From-SVN: r111101
2006-02-13 Ed Schonberg <schonberg@adacore.com>
Robert Dewar <dewar@adacore.com>
* sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
preserve the source unit where the itype is declared, and prevent a
backend abort.
(Note_Implicit_Run_Time_Call): New procedure
(Write_Itype): Handle missing cases (E_Class_Wide_Type and
E_Subprogram_Type)
* sprint.ads: Document use of $ for implicit run time routine call
From-SVN: r111099
2006-02-13 Thomas Quinot <quinot@adacore.com>
* sinput-d.adb (Write_Line): Update the Source_Index_Table after each
line. This is necessary to allow In_Extended_Main_Unit to provide
correct results for itypes while writing out expanded source.
(Close_File): No need to update the source_index_table here since it's
now done for each line.
From-SVN: r111098
2006-02-13 Ed Schonberg <schonberg@adacore.com>
* sem_warn.adb (Check_One_Unit): If the unit appears in a limited_with
clause, use the limited view to determine whether any entity from it
is referenced.
From-SVN: r111097
2006-02-13 Ed Schonberg <schonberg@adacore.com>
Javier Miranda <miranda@adacore.com>
* sem_type.adb (Write_Overloads): Improve display of candidate
interpretations.
(Add_One_Interp): Do not add to the list of interpretations aliased
entities corresponding with an abstract interface type that is an
immediate ancestor of a tagged type; otherwise we have a dummy
conflict between this entity and the aliased entity.
(Disambiguate): The predefined equality on universal_access is not
usable if there is a user-defined equality with the proper signature,
declared in the same declarative part as the designated type.
(Find_Unique_Type): The universal_access equality operator defined under
AI-230 does not cover pool specific access types.
(Covers): If one of the types is a generic actual subtype, check whether
it matches the partial view of the other type.
From-SVN: r111096
2006-02-13 Ed Schonberg <schonberg@adacore.com>
Robert Dewar <dewar@adacore.com>
* sem_elab.adb (Same_Elaboration_Scope): A package that is a
compilation unit is an elaboration scope.
(Add_Task_Proc): Add '\' in 2-line warning message.
(Activate_All_Desirable): Deal with case of unit with'ed by parent
From-SVN: r111095
2006-02-13 Javier Miranda <miranda@adacore.com>
* sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
if this is the full-declaration associated with a private declaration
that implement interfaces, then the private type declaration must be
limited.
(Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
as aliased. The use of the 'access attribute is not available for such
object (for this purpose the object should be explicitly marked as
aliased, but being an anonymous type this is not possible).
From-SVN: r111094
2006-02-13 Bob Duff <duff@adacore.com>
* sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
redundant use clauses.
In particular, if the scope of two use clauses overlaps, but one is not
entirely included in the other, we should not warn. This can happen
with nested packages.
(Analyze_Subprogram_Renaming): Protect the compiler against previously
reported errors. The bug was reported when the compiler was built
with assertions enabled.
(Find_Type): If the node is a 'Class reference and the prefix is a
synchronized type without a corresponding record, return the type
itself.
From-SVN: r111093
2006-02-13 Ed Schonberg <schonberg@adacore.com>
Javier Miranda <miranda@adacore.com>
* sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
abstract interpretations on an operator, remove interpretations that
yield Address or a type derived from it, if one of the operands is an
integer literal.
(Try_Object_Operation.Try_Primitive_Operation,
Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
location when creating the new reference to a primitive or class-wide
operation as a part of rewriting a subprogram call.
(Try_Primitive_Operations): If context requires a function, collect all
interpretations after the first match, because there may be primitive
operations of the same type with the same profile and different return
types. From code reading.
(Try_Primitive_Operation): Use the node kind to choose the proper
operation when a function and a procedure have the same parameter
profile.
(Complete_Object_Operation): If formal is an access parameter and prefix
is an object, rewrite as an Access reference, to match signature of
primitive operation.
(Find_Equality_Type, Find_One_Interp): Handle properly equality given
by an expanded name with prefix Standard, when the operands are of an
anonymous access type.
(Remove_Abstract_Operations): If the operation is abstract because it is
inherited by a user-defined type derived from Address, remove it as
well from the set of candidate interpretations of an overloaded node.
(Analyze_Membership_Op): Membership test not applicable to cpp-class
types.
From-SVN: r111092