Arnaud Charlet [Wed, 5 Dec 2012 10:47:30 +0000 (11:47 +0100)]
[multiple changes]
2012-12-05 Ed Schonberg <schonberg@adacore.com>
* par-ch6.adb (P_Return_Object_Declaration): Do not check for
legality of Aliased keyword.
* sem_ch6.adb (Analyze_Function_Return): The keyword aliased is
legal in an extended return statement only if the return type
is immutably limited.
2012-12-05 Javier Miranda <miranda@adacore.com>
* exp_disp.adb (Expand_Interface_Thunk): Simplify
management of controlling formals. Required to avoid problems
with primitives of internally generated base types associated
with constrained tagged types.
Arnaud Charlet [Wed, 5 Dec 2012 10:38:36 +0000 (11:38 +0100)]
[multiple changes]
2012-12-05 Ed Schonberg <schonberg@adacore.com>
* sem_eval.adb: Remove spurious warnings.
2012-12-05 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Build_Explicit_Dereference): Set properly
the type of the prefix prior to rewriting, because subsequent
legality checks examine the original node.
* aspects.adb: Add Contract_Cases to the canonical aspects map.
* aspects.ads: Add aspect Contract_Cases in the various aspect
tables.
* par-prag.adb: The parser does not need to perform special
actions for pragma Contract_Cases.
* sem_ch6.adb (Expand_Contract_Cases): New routine.
(Process_Contract_Cases): Convert pragma Contract_Cases into pre-
and post- condition checks that verify the runtime state of all
case guards and their corresponding consequences.
* sem_ch13.adb (Analyze_Aspect_Specifications): Perform
various legality checks on aspect Contract_Cases. The aspect is
transformed into a pragma.
* sem_prag.adb: Add an entry in table Sig_Flags for pragma
Contract_Cases.
(Analyze_Pragma): Perform various legality
checks on pragma Contract_Cases. The pragma is associated with
the contract of the related subprogram.
(Chain_CTC): Omit pragma
Contract_Cases because it does not introduce a unique case name
and does not follow the syntax of Contract_Case and Test_Case.
* snames.ads-tmpl: Add new name Name_Contract_Cases. Add a
Pragma_Id for Contract_Cases.
Arnaud Charlet [Wed, 5 Dec 2012 10:35:24 +0000 (11:35 +0100)]
[multiple changes]
2012-12-05 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb (Preanalyze_Range): If the expression, which
denotes some domain of iteration, has a type with implicit
dereference, and does not have any iterable aspects, insert
dereference to obtain proper container type.
2012-12-05 Bob Duff <duff@adacore.com>
* par-ch8.adb (P_Use_Type_Clause): Fix the Sloc for "use all type ..."
to point to "use".
2012-12-05 Arnaud Charlet <charlet@adacore.com>
* make.adb (Compile): Always pass -x adascil in CodePeer mode.
Arnaud Charlet [Wed, 5 Dec 2012 10:29:59 +0000 (11:29 +0100)]
[multiple changes]
2012-12-05 Ed Schonberg <schonberg@adacore.com>
* s-rident.ads, restrict.ads: Remove discrepancies between the
documentation on implementation-defined restrictions, and
the internal data structure used for warnings and errors on
implementation-defined restriction violations.
2012-12-05 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Chain_PPC): Pre- and postcondition aspects
are legal on a subprogram body that acts as a spec.
2012-12-05 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Find_Selected_Component): If the selector name is
an overloadable entity but the name is not overloaded, generate
reference to it rather than delaying this until resolution.
2012-12-05 Robert Dewar <dewar@adacore.com>
* checks.ads, checks.adb (Activate_Overflow_Check): No effect for
MOD/REM/unary +
* exp_ch4.adb (Expand_N_Op_Mod): Remove call to set Do_Overflow_Check.
2012-12-05 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Find_Non_Universal_Interpretation): Use the
types of the right operand if the left operand is null.
* init.c (__gnat_install_handler): For the LEON VxWorks kernel
run-time library we need to install a trap handler directly in the
trap table (no support by the OS) for the software trap 0.
Robert Dewar [Wed, 5 Dec 2012 10:15:56 +0000 (10:15 +0000)]
gnat_rm.texi: Update overflow description.
2012-12-05 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Update overflow description. Pragma Overflow_Checks
changed to Overflow_Mode.
2012-12-05 Robert Dewar <dewar@adacore.com>
* checks.ads, exp_ch4.adb, gnat1drv.adb, par-prag.adb, sem_prag.adb,
snames.ads-tmpl, switch-c.adb, types.ads, checks.adb: Change pragma
Overflow_Checks to Overflow_Mode.
Separate overflow checking from overflow mode.
Several name changes to reflect this separation.
CHECKED mode is renamed STRICT mode.
Arnaud Charlet [Wed, 5 Dec 2012 10:12:49 +0000 (11:12 +0100)]
[multiple changes]
2012-12-05 Yannick Moy <moy@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): Move setting of flags for
Alfa mode before general treatment of flags, so that overflow checks
settings are set appropriately in Alfa mode. Also set the mode to
STRICT in Alfa mode if not already set by the user.
2012-12-05 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb: Minor reformatting.
2012-12-05 Steve Baird <baird@adacore.com>
* sinfo.ads: Improve comments about SCIL-related node kinds and selector
functions.
2012-12-05 Ed Schonberg <schonberg@adacore.com>
* sem_ch10.adb (Build_Limited_Views): Even though the unit is
not analyzed, place its entity on the name in the with clause,
so that warnings on unused with-clause are properly supported
for limited withs.
2012-12-05 Robert Dewar <dewar@adacore.com>
* gnat_ugn.texi: Update overflow description. Pragma
Overflow_Checks changed to Overflow_Mode.
Arnaud Charlet [Wed, 5 Dec 2012 10:10:04 +0000 (11:10 +0100)]
[multiple changes]
2012-12-05 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Build_Derived_Private_Type): Handle properly a
completion in a grand-child unit when the parent type is itself
a private type in a child unit whose full view is itself a
derivation from a private type.
2012-12-05 Gary Dismukes <dismukes@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference, case
Attribute_Valid): Remove code for issuing warning on Valid within
a predicate. Moved to Sem_Attr. Remove with and use of Errout.
* sem_attr.adb (Analyze_Attribute, case Attribute_Valid):
Test for prefix's subtype having a predicate and issue warning
about infinite recursion if Valid occurs within the subtype's
predicate. Warning moved here from Exp_Attr.
2012-12-05 Yannick Moy <moy@adacore.com>
* debug.adb: Minor comment addition.
2012-12-05 Yannick Moy <moy@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): In CodePeer mode, check
overflows by default, even when the user suppresses overflow checks.
* sem_attr.adb (Analyze_Attribute): Do not analyze the attribute
arguments when processing Loop_Entry. Rewrite the analysis of
attribute Loop_Entry to handle an optional loop name.
(Convert_To_Indexed_Component): New routine.
(Eval_Attribute): Remove ??? comment and explain
why Loop_Entry does not need to be evaluated.
2012-12-01 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
* testsuite-management/validate_failures.py
(IsInterestingResult): Only strip line a second time if we did split.
Rephrase return statement while at it.
(CollectSumFiles): Also ignore .git directory.
Steven Bosscher [Tue, 4 Dec 2012 18:38:26 +0000 (18:38 +0000)]
rtl.h (print_insn_with_notes): Remove prototype.
* rtl.h (print_insn_with_notes): Remove prototype.
(rtl_dump_bb_for_graph): New prototype.
* sched-vis.c (print_insn_with_notes): Make static again. Fix
printing of notes.
(rtl_dump_bb_for_graph): New function.
* cfghooks.h (struct cfg_hooks) <dump_bb_for_graph>: New hook.
(dump_bb_for_graph): New prototype.
* cfghooks.c (dump_bb_for_graph): New function.
* tree-cfg.c (gimple_cfg_hooks): Register gimple_dump_bb_for_graph
as dump_bb_for_graph hook implementation for GIMPLE.
* cfgrtl.c (rtl_cfg_hooks): Likewise for rtl_dump_bb_for_graph.
(cfg_layout_rtl_cfg_hooks): Likewise.
* graph.c (draw_cfg_node): Don't include sbitmap.h, rtl.h, tree.h,
gimple.h, and gimple-pretty-print.h.
(draw_cfg_node, draw_cfg_node_succ_edges): Use the uniqe function
definition number instead of the function declaration UID.
(print_graph_cfg): Take a struct function instead of a tree.
Use the dump_bb_for_graph hook to dump the basic block content.
* graph.h (print_graph_cfg): Update prototype.
* passes.c (execute_function_dump): Update print_graph_cfg call.
* Makefile.in (graph.o): Fixup dependencies.
Jakub Jelinek [Tue, 4 Dec 2012 13:21:11 +0000 (14:21 +0100)]
re PR testsuite/55587 ([ASAN] Testsuite test c-c++-common/asan/memcmp-1.c fails to link on targets without libasan/libsanitizer)
PR testsuite/55587
* lib/asan-dg.exp (asan_init): Return 1 if libasan has been found,
0 if not.
* g++.dg/asan/asan.exp: Don't run gcc-dg-runtest if [asan_init]
returned 0.
* gcc.dg/asan/asan.exp: Likewise.
Richard Biener [Tue, 4 Dec 2012 09:19:05 +0000 (09:19 +0000)]
re PR tree-optimization/55124 (ICE in find_or_generate_expression, at tree-ssa-pre.c:2803)
2012-12-04 Richard Biener <rguenther@suse.de>
PR tree-optimization/55124
* tree-ssa-pre.c (find_or_generate_expression): Instead of
ICEing when we are not able to generate an expression defer it
by signalling failure. Fix possible wrong-code issue by
not picking random REFERENCE expressions as fallback.
(create_component_ref_by_pieces_1): Adjust. Add failure paths.
(create_expression_by_pieces): Likewise.
(insert_into_preds_of_block): When expression generation failed
for one edge make sure to not insert a PHI node.
Eric Botcazou [Tue, 4 Dec 2012 09:05:49 +0000 (09:05 +0000)]
ia64.c (ia64_compute_frame_size): Allocate the scratch area if the function allocates dynamic stack space.
* config/ia64/ia64.c (ia64_compute_frame_size): Allocate the scratch
area if the function allocates dynamic stack space.
(ia64_initial_elimination_offset): Adjust offsets to above change.
Steven Bosscher [Mon, 3 Dec 2012 23:28:42 +0000 (23:28 +0000)]
gcse.c (struct reg_use): Remove unused struct.
* gcse.c (struct reg_use): Remove unused struct.
(gcse_emit_move_after): Do not create REG_EQUAL notes that reference
the SET_DEST of the instruction the note would be attached to.
* cse.c (cse_main): Add the DF_NOTE problem.
Janus Weil [Mon, 3 Dec 2012 22:06:41 +0000 (23:06 +0100)]
re PR fortran/55548 (SYSTEM_CLOCK with integer(8) provides nanosecond resolution, but only microsecond precision (without -lrt))
2012-12-03 Janus Weil <janus@gcc.gnu.org>
PR fortran/55548
* intrinsics/system_clock.c (gf_gettime_mono): Add argument 'tck',
which returns the clock resolution.
(system_clock_4): Get resolution from gf_gettime_mono, but limit to
1000/s.
(system_clock_8): Get resolution from gf_gettime_mono.
2012-12-03 Janus Weil <janus@gcc.gnu.org>
PR fortran/55548
* intrinsic.texi (SYSTEM_CLOCK): Update documentation of SYSTEM_CLOCK.
Tobias Burnus [Mon, 3 Dec 2012 21:13:42 +0000 (22:13 +0100)]
re PR fortran/37336 ([F03] Finish derived-type finalization)
2012-12-03 Tobias Burnus <burnus@net-b.de>
Janus Weil <janus@gcc.gnu.org>
PR fortran/37336
* class.c (gfc_is_finalizable): New function.
* gfortran.h (gfc_is_finalizable): Its prototype.
* module.c (mio_component): Read initializer for vtype's _final.
* resolve.c (resolve_fl_derived0): Call gfc_is_finalizable.
* trans-expr.c (gfc_vtable_final_get): New function.
(conv_parent_component_references): Fix comment.
(gfc_conv_variable): Fix for scalar coarray components.
* trans-intrinsic.c (conv_intrinsic_move_alloc): For BT_CLASS,
pass the BT_CLASS type and not the declared type to
gfc_deallocate_scalar_with_status.
* trans.h (gfc_vtable_final_get): New prototype.
Co-Authored-By: Janus Weil <janus@gcc.gnu.org>
From-SVN: r194104
Jakub Jelinek [Mon, 3 Dec 2012 17:28:10 +0000 (18:28 +0100)]
sanitizer.def: Add Address Sanitizer builtins.
* sanitizer.def: Add Address Sanitizer builtins.
Rename BUILT_IN_TSAN_READ_* to BUILT_IN_TSAN_READ* and
BUILT_IN_TSAN_WRITE_* to BUILT_IN_TSAN_WRITE*.
* Makefile.in (asan.o): Depend on langhooks.h.
(tsan.o): Depend on asan.h.
* asan.h (initialize_sanitizer_builtins): New prototype.
* asan.c: Include langhooks.h.
(report_error_func): Use builtin_decl_implicit of corresponding
BUILT_IN_ASAN_REPORT_{LOAD,STORE}*.
(asan_init_func): Removed.
(initialize_sanitizer_builtins): New function.
(asan_finish_file): Call it. Use builtin_decl_implicit
on BUILT_IN_ASAN_{INIT,{,UN}REGISTER_GLOBALS}.
(asan_instrument): Call initialize_sanitizer_builtins.
* builtins.def (DEF_SANITIZER_BUILTIN): Change condition to
(flag_asan || flag_tsan).
* tsan.c: Include asan.h and tsan.h.
(get_memory_access_decl): Rename BUILT_IN_TSAN_{READ,WRITE}_*
to BUILT_IN_TSAN_{READ,WRITE}*.
(tsan_pass): Call initialize_sanitizer_builtins.
(tsan_gate, tsan_gate_O0): Don't check if
builtin_decl_implicit_p (BUILT_IN_TSAN_INIT) is true.
(tsan_finish_file): Call initialize_sanitizer_builtins.
* builtin-types.def (BT_FN_VOID_PTR_PTRMODE): New fn type.
Jakub Jelinek [Mon, 3 Dec 2012 17:19:47 +0000 (18:19 +0100)]
re PR bootstrap/55380 (All search_line_fast implementations read beyond buffer)
PR bootstrap/55380
PR other/54691
* files.c (read_file_guts): Allocate extra 16 bytes instead of
1 byte at the end of buf. Pass size + 16 instead of size
to _cpp_convert_input.
* charset.c (_cpp_convert_input): Reallocate if there aren't
at least 16 bytes beyond to.len in the buffer. Clear 16 bytes
at to.text + to.len.
Aldy Hernandez [Mon, 3 Dec 2012 16:11:21 +0000 (16:11 +0000)]
re PR middle-end/55401 (uninstrumented path in TM clones are still instrumented)
PR middle-end/55401
* trans-mem.c (get_tm_region_blocks): Exclude uninstrumented
blocks from vector if requested.
(collect_bb2reg): Pass new argument to
get_tm_region_blocks.
(get_bb_regions_instrumented): Add INCLUDE_UNINSTRUMENTED_P
argument, and pass it to expand_regions.
(execute_tm_mark): Pass new argument to
get_bb_regions_instrumented.
(execute_tm_edges): Same.
Jakub Jelinek [Mon, 3 Dec 2012 15:04:57 +0000 (16:04 +0100)]
asan.c (instrument_mem_region_access): Don't instrument if base doesn't have pointer type or len integral type.
* asan.c (instrument_mem_region_access): Don't instrument
if base doesn't have pointer type or len integral type.
Add cast if len doesn't have size_t compatible type.
(instrument_builtin_call): Don't instrument BUILT_IN_ATOMIC_LOAD,
BUILT_IN_ATOMIC_TEST_AND_SET, BUILT_IN_ATOMIC_CLEAR,
BUILT_IN_ATOMIC_EXCHANGE, BUILT_IN_ATOMIC_COMPARE_EXCHANGE
and BUILT_IN_ATOMIC_STORE.
Steven Bosscher [Mon, 3 Dec 2012 13:16:55 +0000 (13:16 +0000)]
rtl.h (print_insn_with_notes): Prototype.
* rtl.h (print_insn_with_notes): Prototype.
* sched-vis.c (print_insn_with_notes): Export it.
* gimple-pretty-print.h (gimple_dump_bb_for_graph): Prototype.
* gimple-pretty-print.c (print_gimple_expr): Flush the buffer.
(pp_gimple_stmt_1): Don't do it here.
(gimple_dump_bb_for_graph): New function.
* tree-pretty-print.c (print_generic_expr): Flush the buffer here.
(dump_generic_node): Don't flush the buffer here.
* graph.h (print_rtl_graph_with_bb): Rename to print_graph_cfg.
* graph.c: Include gimple.h, dumpfile.h, and gimple-pretty-print.h.
(draw_cfg_node): Handle GIMPLE basic blocks also.
(print_rtl_graph_with_bb): Rename to print_graph_cfg.
* passes.c (finish_optimization_passes): Don't finish graph dumps here.
(execute_function_dump): Use print_graph_cfg. Enable dumping the CFG
for GIMPLE also.
(pass_init_dump_file): Wrap in TV_DUMP. Set up CFG graph dumps.
(pass_fini_dump_file): Wrap in TV_DUMP. Finish graph dumps.
(execute_one_pass): Don't set up graph dumps here.
Jakub Jelinek [Mon, 3 Dec 2012 11:49:41 +0000 (12:49 +0100)]
asan-dg.exp (asan_get_gtest_test_list, [...]): New procedures.
* lib/asan-dg.exp (asan_get_gtest_test_list,
asan_get_gtest_expect_death_list, asan-gtest): New procedures.
(proc ${tool}_load): Remember [asan_get_gtest_test_list "$output"]
and [asan_get_gtest_expect_death_list "$output"] in global vars.
(asan_symbolize): Sanitize [] characters from key.
* g++.dg/asan/asan_test_config.h: New file.
* g++.dg/asan/asan_globals_test.cc: New file.
* g++.dg/asan/asan_test_utils.h: New file.
* g++.dg/asan/dejagnu-gtest.h: New file.
* g++.dg/asan/asan_test.cc: New file.
* g++.dg/asan/asan_test.C: New test.
Paul Thomas [Sun, 2 Dec 2012 15:23:30 +0000 (15:23 +0000)]
resolve.c (resolve_allocate_deallocate, [...]): Recover revisions 193568 and 193778...
2012-12-02 Paul Thomas <pault@gcc.gnu.org>
* resolve.c (resolve_allocate_deallocate,
resolve_typebound_intrinsic_op): Recover revisions 193568 and
193778, which were accidentally reverted by the previous patch.
gcc/
* doc/extend.texi: Various corrections to punctuation and grammar
throughout the file. Use consistent terminology and proper names.
Correct some minor markup issues.