* prj-nmsc.adb:
(Check_Library_Attributes): For a project qualified as a library project
that is not a library project, indicate in the error message which
attributes are missing (Library_Dir and/or Library_Name).
* sem_prag.adb (Analyze_Pragma, case Task_Name): Do not expand argument
of pragma. It will be recopied and analyzed when used in call to
Create_Task.
* sem_res.adb (Resolve_Call): Clarify use of secondary stack within
initialization operations and recognize use of it in procedure calls
within init_procs.
* exp_ch9.adb (Make_Task_Create_Call): Copy full tree of Task_Name
argument, because it may have side-effects.
* exp_ch2.adb: Remove obsolete comments on default functions
2009-04-10 Jose Ruiz <ruiz@adacore.com>
* adaint.c (RTX section): Do for RTX the same thing as we do for
Windows (include ctype.h and define a fallback ISALPHA if IN_RTS).
* vms_data.ads:
Change GNAT CHECK qualifier /DIAGNOSIS_LIMIT to /DIAGNOSTIC_LIMIT
New qualifier /LEXPAND_SOURCE=nnn for -gnatGnnn
New qualifier /LXDEBUG=nnn for -gnatDnnn
For H820-010
* gnat_ugn.texi:
Update documentation for VMS qualifiers equivalent to -gnatGnn and
-gnatDnn
2009-04-09 Nicolas Setton <setton@adacore.com>
* s-osinte-darwin.ads: (Pad_Type): Make this an array of unsigned_long,
to match layout of siginfo_t in sys/signal.h.
* gcc-interface/Makefile.in: Add section for x86_64 darwin.
2009-04-09 Thomas Quinot <quinot@adacore.com>
* g-socket.ads: (Fd_Set): Use Interfaces.C.long alignment.
2009-04-09 Nicolas Setton <setton@adacore.com>
* s-oscons-tmplt.c: Allow long lines in the generated spec.
Add generation of Darwin-specific constants needed when binding to the
pthread library.
Robert Dewar [Thu, 9 Apr 2009 12:56:35 +0000 (14:56 +0200)]
2009-04-09 Robert Dewar <dewar@adacore.com>
* checks.adb:
(Insert_Valid_Check): Avoid unnecessary generation of junk declaration
when no invalid values exist, Avoid duplicate read of atomic variable.
* cstand.adb (Build_Signed_Integer_Type): Set Is_Known_Valid
(Standard_Unsigned): Set Is_Known_Valid
* sem_ch3.adb (Analyze_Subtype_Declaration): Copy Is_Known_Valid on
subtype declaration if no constraint.
(Set_Modular_Size): Set Is_Known_Valid if appropriate
(Build_Derived_Numeric_Type): Copy Is_Known_Valid if no constraint
* lib-load.adb (Load_Unit): When loading the parent of a child unit
named in a with_clause, retain the with_clause to preserve a
limited_with indication.
* config/s390/s390.c (s390_compare_emitted): Remove.
(s390_emit_compare): Handle MODE_CC s390_compare_op0 like
s390_compare_emitted used to be handled. Assert that modes match.
(s390_emit_compare_and_swap): Use s390_emit_compare, do not
refer to sync_compare_and_swap_ccsi.
* config/s390/s390.h (s390_compare_emitted): Remove.
* config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
instead of s390_compare_emitted.
(stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
instead of s390_compare_emitted.
* config/s390/s390.md (cmpcc): New.
(sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
CC_REGNUM, do not pretend it's set.
(sync_compare_and_swap_cc*): Delete.
* config/s390/predicates.md (cc_reg_operand): New.
* expr.c (sync_compare_and_swap_cc): Delete.
* optabs.h (sync_compare_and_swap_cc): Delete.
* optabs.c (prepare_cmp_insn): Ignore which specific CCmode
is being used with can_compare_p.
(emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
(find_cc_set): New.
(expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
look for a MODE_CC set instead. Use emit_store_flag.
(expand_compare_and_swap_loop): Likewise, with some additional
complication to avoid a force_reg when useless. Use
emit_cmp_and_jump_insns.
* genopinit.c (optabs): Delete sync_compare_and_swap_cc.
* doc/md.texi (sync_compare_and_swap_cc): Merge with
sync_compare_and_swap documentation.
java:
2009-04-09 Paolo Bonzini <bonzini@gnu.org>
* builtins.c (compareAndSwapLong_builtin,
compareAndSwapInt_builtin, compareAndSwapObject_builtin,
VMSupportsCS8_builtin): Do not look at sync_compare_and_swap_cc.
Robert Dewar [Thu, 9 Apr 2009 10:45:44 +0000 (10:45 +0000)]
sem_ch7.adb, [...]: Code clean up...
2009-04-09 Robert Dewar <dewar@adacore.com>
* sem_ch7.adb, sem_ch10.adb, sem_prag.adb, sem_ch12.adb, sem_util.adb,
exp_ch13.adb, sem_ch6.adb, exp_disp.adb, sem_ch8.adb, sem_warn.adb,
sem_cat.adb: Code clean up: use Is_Package_Or_Generic_Package where
possible to replace an OR of two separate tests.
* exp_ch11.adb (Expand_Exception_Handlers, Prepend_Call_To_Handler):
Set Sloc of generated nodes for calls to Undefer_Aborts and
Save_Occurrence to No_Location, so the debugger ignores them and
therefore does not jump back and forth when single stepping.
Janus Weil [Thu, 9 Apr 2009 09:39:09 +0000 (11:39 +0200)]
re PR fortran/36704 (Procedure pointer as function result)
2009-04-09 Janus Weil <janus@gcc.gnu.org>
PR fortran/36704
* decl.c (add_hidden_procptr_result): New function for handling
procedure pointer return values by adding a hidden result variable.
(variable_decl,match_procedure_decl,gfc_match_function_decl,
gfc_match_subroutine,gfc_match_end,attr_decl1): Handle procedure pointer
return values.
* parse.c (parse_interface): Add EXTERNAL attribute only after
FUNCTION/SUBROUTINE declaration is complete.
* primary.c (replace_hidden_procptr_result): New function for replacing
function symbol by hidden result variable.
(gfc_match_rvalue,match_variable): Replace symbol by hidden result
variable.
* resolve.c (resolve_contained_fntype,resolve_function,resolve_variable,
resolve_symbol): Allow for procedure pointer function results.
(resolve_fl_procedure): Conflict detection moved here from
'check_conflict'.
* symbol.c (gfc_check_function_type): Allow for procedure pointer
function results.
(check_conflict): Move some conflict detection to resolution stage.
* trans-types.c (gfc_sym_type,gfc_get_function_type): Handle hidden
result variables.
Javier Miranda [Thu, 9 Apr 2009 09:35:24 +0000 (09:35 +0000)]
exp_disp.adb (Export_DT): Addition of a new argument (Index)...
2009-04-09 Javier Miranda <miranda@adacore.com>
* exp_disp.adb (Export_DT): Addition of a new argument (Index); used to
retrieve from the Dispatch_Table_Wrappers list the external name.
Addition of documentation.
(Make_Secondary_DT): Addition of a new argument (Suffix_Index) that is
used to export secondary dispatch tables (in the previous version of
the frontend only primary dispatch tables were exported). Addition of
documentation.
(Import_DT): New subprogram (internal of Make_Tags). Used to import a
dispatch table of a given tagged type.
(Make_Tags): Modified to import secondary dispatch tables.
Jan Hubicka [Thu, 9 Apr 2009 08:26:01 +0000 (10:26 +0200)]
except.c (find_prev_try): Break out from ....
* except.c (find_prev_try): Break out from ....
(duplicate_eh_regions): ... here; properly update prev_try pointers
when duplication part of tree.
(dump_eh_tree): Improve dumping.
(verify_eh_region): New.
(verify_eh_tree): Use it.
* sem_attr.adb (Check_Stream_Attribute): Check violation of
restriction No_Streams
* gnat_rm.texi: Clarify No_Streams restriction
* g-socket.adb: Minor reformatting.
2009-04-09 Thomas Quinot <quinot@adacore.com>
* g-socket.ads: Mark Initialize and Finalize as obsolesent interfaces.
2009-04-09 Geert Bosch <bosch@adacore.com>
* exp_fixd.adb (Build_Conversion): Accept new optional Trunc argument.
(Set_Result): Likewise.
(Expand_Convert_Float_To_Fixed): Have Set_Result truncate the
conversion, as required by RM 4.6(31).
c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC &ARRAY addresses by adjusting their types and...
2009-04-09 Richard Guenther <rguenther@suse.de>
* c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
&ARRAY addresses by adjusting their types and prepending
a conversion.
* tree-cfg.c (verify_gimple_assign_single): Verify that
addresses are correct.
tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant indices into an array reference if possible.
2009-04-09 Richard Guenther <rguenther@suse.de>
* tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
indices into an array reference if possible.
* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
Fold POINTER_PLUS_EXPR statements with invariant address.
* gcc.dg/tree-ssa/ssa-ccp-25.c: New testcase.
* gcc.dg/tree-ssa/ssa-ccp-26.c: Likewise.
hashtable.h (erase): Correctly handle erasing a reference to an entry in the hash table.
* include/backward/hashtable.h (erase): Correctly handle erasing a
reference to an entry in the hash table.
* testsuite/backward/hash_map/25896.cc: New.
* testsuite/backward/hash_set/25896.cc: New.
Jakub Jelinek [Wed, 8 Apr 2009 20:00:48 +0000 (22:00 +0200)]
dwarf2out.c (class_scope_p): New static inline.
* dwarf2out.c (class_scope_p): New static inline.
(class_or_namespace_scope_p): Use it.
(gen_variable_die): Use DW_TAG_member tag for static data member
declarations instead of DW_TAG_variable.
* g++.dg/debug/dwarf2/static-data-member1.C: New test.
* checks.adb (Enable_Overflow_Check): Do not enable if overflow checks
suppressed.
* exp_ch4.adb (Expand_Concatenate): Make sure checks are off for all
resolution steps.
2009-04-08 Robert Dewar <dewar@adacore.com>
* sem_ch12.adb (Analyze_Package_Instantiation): Remove test for
No_Local_Allocators restriction preventing local instantiation.
2009-04-08 Thomas Quinot <quinot@adacore.com>
* sem_eval.adb: Minor comment fix
2009-04-08 Thomas Quinot <quinot@adacore.com>
* g-socket.adb, g-socket.ads (GNAT.Sockets.Sockets_Library_Controller):
New limited controlled type used to automate the initialization and
finalization of the sockets implementation.
(GNAT.Sockets.Initialize, Finalize): Make these no-ops
2009-04-08 Vincent Celier <celier@adacore.com>
* prj-attr.adb: New read-only project-level attribute Project_Dir
* prj-proc.adb (Add_Attributes): New parameter Project_Dir, value of
read-only attribute of the same name.
(Process_Declarative_Items): Call Add_Attributes with Project_Dir
(Recursive_Process): Ditto
Janne Blomqvist [Wed, 8 Apr 2009 17:06:34 +0000 (20:06 +0300)]
open.c (already_open): Test for POSIX close return value.
2009-04-08 Janne Blomqvist <jb@gcc.gnu.org>
* io/open.c (already_open): Test for POSIX close return value.
* io/unit.c (close_unit_1): Likewise.
* io/unix.c (raw_close): Return 0 for success for preconnected units.
re PR tree-optimization/36291 (GCC is slow and memory-hungry building sipQtGuipart.cpp)
2009-04-08 Richard Guenther <rguenther@suse.de>
PR middle-end/36291
* tree-dfa.c (add_referenced_var): Do not recurse into
global initializers.
* tree-ssa-ccp.c (get_symbol_constant_value): Add newly
exposed variables.
(fold_const_aggregate_ref): Likewise.
Jan Hubicka [Wed, 8 Apr 2009 15:13:01 +0000 (17:13 +0200)]
tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
* tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
* function.h (rtl_eh): Remove exception_handler_label_map.
* except.c (ehl_hash, ehl_eq, add_ehl_entry,
remove_exception_handler_label, for_each_eh_label_1): Remove.
(rtl_remove_unreachable_regions): Remove.
(convert_from_eh_region_ranges): Do not remove unreachable regions.
(find_exception_handler_labels): Don't build the hashtable.
(maybe_remove_eh_handler): Remove.
(for_each_eh_label): Rewrite to walk the tree.
(rest_of_handle_eh): Do not cleanup cfg prior EH construction.
* except.h (maybe_remove_eh_handler): Remove.
* passes.c (init_optimization_passes): Schedule second EH cleanup
before out-of-ssa.
* cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
* g-socket.ads: Fix bad syntax in pragma Obsolescent
* par-ch2.adb (Scan_Pragma_Argument_Association): Check for error of
argument with no identifier following one that has an identifier. Was
missed in some cases.
* sem_prag.adb (Analyze_Pragma, case Check_Policy): Allow Policy
identifier.
(Analyze_Pragma, case Obsolescent): Allow Message, Version identifiers
* snames.adb, snames.ads: Add new standard names IDE and
Compiler_Command.
2009-04-08 Ed Schonberg <schonberg@adacore.com>
* exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe,
i.e. does not need a temporary to capture the value, if expression is
an acceess type, even if target type is a record whose size may not
have been determined yet.
* exp_disp.adb (Expand_Dispatching_Call): Set size info for generated
access_to_subprogram type, to avoid order-of-elaboration anomalies in
gigi.
Joseph Myers [Wed, 8 Apr 2009 14:11:46 +0000 (15:11 +0100)]
re PR middle-end/39614 (Internal error compiling CSiBE)
PR c/39614
PR c/39673
* c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
* c-convert.c (convert): Do not call fold on results of conversion
functions when the result is a C_MAYBE_CONST_EXPR.
* c-parser.c (c_parser_postfix_expression): Do not fold condition
of __builtin_choose_expr.
* c-typeck.c (remove_c_maybe_const_expr): New.
(build_unary_op, build_conditional_expr, build_compound_expr,
build_binary_op, c_objc_common_truthvalue_conversion): Call
remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
integer operands.
testsuite:
* gcc.c-torture/compile/pr39614-1.c,
gcc.c-torture/compile/pr39614-2.c,
gcc.c-torture/compile/pr39614-3.c,
gcc.c-torture/compile/pr39614-4.c,
gcc.c-torture/compile/pr39614-5.c,
gcc.c-torture/compile/pr39673-1.c,
gcc.c-torture/compile/pr39673-2.c: New tests.
* gcc.dg/gnu89-const-expr-2.c, gcc.dg/gnu99-const-expr-2.c: Test
more cases.
* gcc.dg/overflow-warn-1.c, gcc.dg/overflow-warn-2.c,
gcc.dg/overflow-warn-3.c, gcc.dg/overflow-warn-4.c: Update
expected errors.
* a-direio.ads (Bytes): Make sure value is non-zero
2009-04-08 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Is_Variable): If the prefix is an explicit dereference
that does not come from source, check for a rewritten function call in
prefixed notation before other forms of rewriting.
2009-04-08 Robert Dewar <dewar@adacore.com>
* Makefile.rtl: Remove s-strops and s-sopco? from the run time, since
these are now obsolescent units used only for bootrapping with an
older compiler.
* inline.adb (Back_End_Cannot_Inline): Do not mark a body as inlineable
by the back-end if it contains a call to a subprogram without a
previous spec that is declared in the same unit.
* errout.ads: Update comments on uses of dirs
2009-04-08 Robert Dewar <dewar@adacore.com>
* exp_ch4.adb (Expand_Concatenate): Make sure nodes are properly typed
* prj-nmsc.adb: Code clean up. Use renaming clauses.
2009-04-08 Robert Dewar <dewar@adacore.com>
* exp_ch4.adb (Expand_Concatenate): Further fixes to bounds handling
2009-04-08 Thomas Quinot <quinot@adacore.com>
* ali-util.adb: Minor comment fix
2009-04-08 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Analyze_Use_Type): Improve error message when clause
appears in a context clause, and the enclosing package is mentioned in
a limited_with_clause.
(Use_One_Type): Reject clause if type is still incomplete.
* prj-nmsc.adb (Check_File, Process_Sources_In_Multi_Language_Mode):
avoid copies of Source_Data variables when possible, since these
involve calls to memcpy() which are done too many times.
re PR c++/39637 (ICE on ill-formed sizeof(<parameter-pack>) in variadic template)
gcc/cp/ChangeLog:
2009-04-08 Dodji Seketeli <dodji@redhat.com>
PR c++/39637
* parser.c (cp_parser_enumerator_definition): Make sure the
initializer of the enumerator doesn't contain any bare parameter pack.