platform/upstream/gcc.git
7 years agoEliminate fixit_hint class hierarchy
David Malcolm [Mon, 1 May 2017 19:15:36 +0000 (19:15 +0000)]
Eliminate fixit_hint class hierarchy

The original implementation of fix-it hints (r230674) had an abstract
base class "fixit_hint" and three subclasses, representing
each of insertions, replacements, and deletions.

Having multiple classes for fix-it hints was a nuisance, as it required
per-class logic everywhere that the hints were handled.

In r239632 I eliminated the deletion subclass in favor of replacement
with the empty string (two subclasses are easier than three).

This patch eliminates the class hierarchy altogether by implementing
insertion in terms of replacement, by representing replacements via
a half-open interval (so that for an insertion, start == next location,
and we're effectively replacing an empty range at the insertion point
with the new string).

This greatly simplifies the code for handling fix-it hints; for example
it allows removal of a parallel class hierarchy of line_event within
edit-context.c.

It also improves consolidation of hints: we can now consolidate
insertions at the same location, affecting a couple of tests
(selftest::test_one_liner_many_fixits and
gcc.dg/Wmissing-braces-fixits.c).

gcc/ChangeLog:
* diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
to use new fixit_hint representation, using the "replace" logic.
(get_line_span_for_fixit_hint): Likewise.
(layout::print_any_fixits): Likewise.
(selftest::test_one_liner_many_fixits): Rename to...
(selftest::test_one_liner_many_fixits_1): ...this, and update
comment and expected output to reflect that the multiple fix-it
hints are now consolidated into one insertion.
(selftest::test_one_liner_many_fixits_2): New test.
(selftest::test_diagnostic_show_locus_one_liner): Update for
above.
(selftest::test_fixit_consolidation): Update for fix-it API
change.
* diagnostic.c (print_parseable_fixits): Likewise.
* edit-context.c (edited_line::m_line_events): Convert from
auto_vec <line_event *> to auto_vec <line_event>.
(class line_event): Convert from abstract base class to a concrete
class, taking over the role of replace_event.
(class insert_event): Delete.
(class replace_event): Rename to class line_event.  Convert to
half-open range.
(edit_context::add_fixits): Reimplement.
(edit_context::apply_insert): Delete.
(edit_context::apply_replace): Rename to...
(edit_context::apply_fixit): ...this.  Convert to half-open range.
(edited_file::apply_insert): Delete.
(edited_file::apply_replace): Rename to...
(edited_file::apply_fixit): ...this.
(edited_line::~edited_line): Drop deletion of events.
(edited_line::apply_insert): Delete.
(edited_line::apply_replace): Rename to...
(edited_line::apply_fixit): ...this.  Convert to half-open range.
Update for change to type of m_line_events.
* edit-context.h (edit_context::apply_insert): Delete.
(edit_context::apply_replace): Rename to...
(edit_context::apply_fixit): ...this.

gcc/testsuite/ChangeLog:
* gcc.dg/Wmissing-braces-fixits.c: Update expected output to
reflect insertion fix-it hints at the same location now being
consolidated.

libcpp/ChangeLog:
* include/line-map.h (source_range::intersects_line_p): Delete.
(rich_location::add_fixit): Delete.
(rich_location::maybe_add_fixit): New method.
(class fixit_hint): Reimplement in terms of...
(class fixit_replace): ...this.
(class fixit_insert): Delete.
* line-map.c (linemap_position_for_loc_and_offset): Drop overzealous
linemap_assert_fails.
(source_range::intersects_line_p): Rename to...
(fixit_hint::affects_line_p): New function.
(rich_location::add_fixit_insert_before): Reimplement in terms of
maybe_add_fixit, moving validation there.
(rich_location::add_fixit_insert_after): Likewise.
(column_before_p): Delete.
(rich_location::add_fixit_replace): Reimplement in terms of
maybe_add_fixit, moving validation there.  Convert closed input range
to half-open range.
(rich_location::add_fixit): Delete.
(rich_location::maybe_add_fixit): New function.
(fixit_insert::fixit_insert): Delete.
(fixit_insert::~fixit_insert): Delete.
(fixit_insert::affects_line_p): Delete.
(fixit_insert::maybe_append_replace): Delete.
(fixit_replace::fixit_replace): Rename to...
(fixit_hint::fixit_hint): ...this, rewriting as necessary.
(fixit_replace::~fixit_replace): Delete.
(fixit_replace::affects_line_p): Delete.
(fixit_replace::maybe_append_replace): Rename to...
(fixit_hint::maybe_append): ...this, rewriting as necessary.

From-SVN: r247445

7 years agogimple-ssa-sprintf.c (format_integer): Set knownrange when it's known.
Martin Sebor [Mon, 1 May 2017 18:45:46 +0000 (18:45 +0000)]
gimple-ssa-sprintf.c (format_integer): Set knownrange when it's known.

gcc/ChangeLog:
* gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
known.

gcc/testsuite/ChangeLog:
* tree-ssa/builtin-sprintf-warn-18.c: Adjust to avoid failures
on ILP32 targets.

From-SVN: r247444

7 years agoRequire linker plugin for pr78768.c
Tom de Vries [Mon, 1 May 2017 18:31:07 +0000 (18:31 +0000)]
Require linker plugin for pr78768.c

The test-case has an xfail-ed line.  For linkers without plugin support, that
line happens to xpass.  Require linker with plugin support, such that the line
is no longer xpass-ing, but unsupported.

2017-05-01  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/pr78768.c: Require linker plugin.

From-SVN: r247443

7 years agore PR fortran/37131 (inline matmul for small matrix sizes)
Thomas Koenig [Mon, 1 May 2017 17:45:52 +0000 (17:45 +0000)]
re PR fortran/37131 (inline matmul for small matrix sizes)

2017-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/37131
* frontend-passes.c (inline_matmul_assign): Also check bounds
for allocatable lhs and matrix-vector-multiplication.

2017-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/37131
* gfortran.dg/matmul_bounds_11.f90:  New test.

From-SVN: r247441

7 years agore PR tree-optimization/79715 (hand-rolled strdup with unused result not eliminated)
Martin Sebor [Mon, 1 May 2017 16:46:49 +0000 (16:46 +0000)]
re PR tree-optimization/79715 (hand-rolled strdup with unused result not eliminated)

gcc/testsuite/ChangeLog:
PR tree-optimization/79715
* gcc.dg/pr79715.c: New test.

From-SVN: r247440

7 years agore PR target/68491 (libgcc calls __get_cpuid with 0 level breaks on early 486)
Uros Bizjak [Mon, 1 May 2017 15:38:14 +0000 (17:38 +0200)]
re PR target/68491 (libgcc calls __get_cpuid with 0 level breaks on early 486)

PR target/68491
* config/i386/cpuid.h (__get_cpuid): Always return 0 when
__get_cpuid_max returns 0.
(__get_cpuid_count): Ditto.

From-SVN: r247439

7 years agoAdd and use effective target rdrand
Tom de Vries [Mon, 1 May 2017 14:15:33 +0000 (14:15 +0000)]
Add and use effective target rdrand

2017-05-01  Tom de Vries  <tom@codesourcery.com>

PR testsuite/65941
* lib/target-supports.exp (check_effective_target_rdrand): New proc.
* g++.dg/other/pr59492.C: Require effective target rdrand.

From-SVN: r247438

7 years agod-demangle.c (dlang_value): Add comment explaining why cases for digits are required.
Iain Buclaw [Mon, 1 May 2017 11:01:02 +0000 (11:01 +0000)]
d-demangle.c (dlang_value): Add comment explaining why cases for digits are required.

libiberty/ChangeLog:

* d-demangle.c (dlang_value): Add comment explaining why cases for
digits are required.
* testsuite/d-demangle-expected: Update integer value tests.

From-SVN: r247436

7 years agod-demangle.c (dlang_parse_symbol): Skip over anonymous symbols.
Iain Buclaw [Mon, 1 May 2017 10:50:58 +0000 (10:50 +0000)]
d-demangle.c (dlang_parse_symbol): Skip over anonymous symbols.

libiberty/ChangeLog:

* d-demangle.c (dlang_parse_symbol): Skip over anonymous symbols.
* testsuite/d-demangle-expected: Add tests.

From-SVN: r247434

7 years agod-demangle.c (dlang_identifier): Handle template constraint symbols.
Iain Buclaw [Mon, 1 May 2017 10:45:35 +0000 (10:45 +0000)]
d-demangle.c (dlang_identifier): Handle template constraint symbols.

libiberty/ChangeLog:

* d-demangle.c (dlang_identifier): Handle template constraint symbols.
(dlang_parse_template): Only advance if template symbol prefix is
followed by a digit.
* testsuite/d-demangle-expected: Add tests.

From-SVN: r247433

7 years agod-demangle.c (dlang_attributes): Handle scope attributes.
Iain Buclaw [Mon, 1 May 2017 10:39:52 +0000 (10:39 +0000)]
d-demangle.c (dlang_attributes): Handle scope attributes.

libiberty/ChangeLog:

* d-demangle.c (dlang_attributes): Handle scope attributes.
* testsuite/d-demangle-expected: Add tests.

From-SVN: r247432

7 years agotree.c (substitute_in_expr): Also inline a call if the replacement expression is...
Eric Botcazou [Mon, 1 May 2017 10:18:18 +0000 (10:18 +0000)]
tree.c (substitute_in_expr): Also inline a call if the replacement expression is another instance of one of...

* tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
replacement expression is another instance of one of its arguments.

From-SVN: r247431

7 years agore PR target/79430 (action of statement incorrectly optimised away)
Jakub Jelinek [Mon, 1 May 2017 09:50:59 +0000 (11:50 +0200)]
re PR target/79430 (action of statement incorrectly optimised away)

PR target/79430
* rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
check for stack push/pop autoinc.
* config/i386/i386.c (ix86_agi_dependent): Return false
if the only reason why modified_in_p returned true is that
addr is SP based and set_insn is a push or pop.

From-SVN: r247429

7 years agoAdd missing entry
Eric Botcazou [Mon, 1 May 2017 08:28:05 +0000 (08:28 +0000)]
Add missing entry

From-SVN: r247428

7 years ago* gcc-interface/decl.c (components_to_record): Add missing guard.
Eric Botcazou [Mon, 1 May 2017 08:24:40 +0000 (08:24 +0000)]
* gcc-interface/decl.c (components_to_record): Add missing guard.

From-SVN: r247427

7 years agodecl.c (components_to_record): Add more comments.
Eric Botcazou [Mon, 1 May 2017 08:12:31 +0000 (08:12 +0000)]
decl.c (components_to_record): Add more comments.

* gcc-interface/decl.c (components_to_record): Add more comments.
Put back pending fields onto the regular list if the misalignment
happens to cancel itself.

From-SVN: r247426

7 years agoDaily bump.
GCC Administrator [Mon, 1 May 2017 00:16:32 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r247425

7 years ago* fr.po: Update.
Joseph Myers [Sun, 30 Apr 2017 23:20:45 +0000 (00:20 +0100)]
* fr.po: Update.

From-SVN: r247420

7 years ago* fr.po: Update.
Joseph Myers [Sun, 30 Apr 2017 23:16:03 +0000 (00:16 +0100)]
* fr.po: Update.

From-SVN: r247418

7 years agore PR tree-optimization/79224 (Large C-Ray slowdown)
Jan Hubicka [Sun, 30 Apr 2017 15:02:11 +0000 (17:02 +0200)]
re PR tree-optimization/79224 (Large C-Ray slowdown)

PR ipa/79224
* ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
(account_size_time): Use two predicates - exec_pred and
nonconst_pred_ptr.
(evaluate_conditions_for_known_args): Compute both clause and
nonspec_clause.
(evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
(inline_summary_t::duplicate): Update.
(estimate_function_body_sizes): Caluculate exec and nonconst predicates
separately.
(compute_inline_parameters): Likewise.
(estimate_edge_size_and_time): Update caluclation of time.
(estimate_node_size_and_time): Compute both time and nonspecialized
time.
(estimate_ipcp_clone_size_and_time): Update.
(inline_merge_summary): Update.
(do_estimate_edge_time): Update.
(do_estimate_edge_size): Update.
(do_estimate_edge_hints): Update.
(inline_read_section, inline_write_summary): Stream both new predicates.
* ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
as argument.
(compute_inlined_call_time): Cleanup.
(big_speedup_p): Update.
(edge_badness): Update.
* ipa-inline.h (INLINE_TIME_SCALE): Remove.
(size_time_entry): Replace predicate by exec_predicate and
nonconst_predicate.
(edge_growth_cache_entry): Cache both time nad nonspecialized time.
(estimate_edge_time): Return also nonspec_time.
(reset_edge_growth_cache): Update.

From-SVN: r247417

7 years agoDaily bump.
GCC Administrator [Sun, 30 Apr 2017 00:16:25 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r247416

7 years agoparser.c (cp_parser_member_declaration): Add fix-it hints for stray comma and missing...
Volker Reichelt [Sat, 29 Apr 2017 22:27:13 +0000 (22:27 +0000)]
parser.c (cp_parser_member_declaration): Add fix-it hints for stray comma and missing semicolon at end of member declaration.

        * parser.c (cp_parser_member_declaration): Add fix-it hints for
        stray comma and missing semicolon at end of member declaration.

        * g++.dg/diagnostic/member-decl-1.C: New test.

From-SVN: r247412

7 years ago48362.cc: Replace a regexp-test by a note-test.
François Dumont [Sat, 29 Apr 2017 19:35:28 +0000 (19:35 +0000)]
48362.cc: Replace a regexp-test by a note-test.

2017-04-29  François Dumont  <fdumont@gcc.gnu.org>

* testsuite/libstdc++-prettyprinters/48362.cc: Replace a regexp-test
by a note-test.

From-SVN: r247411

7 years agore PR rtl-optimization/80491 (Compiler regression for long-add case.)
Jakub Jelinek [Sat, 29 Apr 2017 16:18:11 +0000 (18:18 +0200)]
re PR rtl-optimization/80491 (Compiler regression for long-add case.)

PR rtl-optimization/80491
* ifcvt.c (noce_process_if_block): When looking for x setter
with missing else_bb, don't check only the insn right before
cond_earliest, but look for the last insn that x is modified in
within the same bb.

From-SVN: r247410

7 years agore PR rtl-optimization/80491 (Compiler regression for long-add case.)
Jakub Jelinek [Sat, 29 Apr 2017 16:17:13 +0000 (18:17 +0200)]
re PR rtl-optimization/80491 (Compiler regression for long-add case.)

PR rtl-optimization/80491
* alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.

From-SVN: r247409

7 years agoAdd st[pr]ncpy to stmt_kills_ref_p
Marc Glisse [Sat, 29 Apr 2017 14:39:25 +0000 (16:39 +0200)]
Add st[pr]ncpy to stmt_kills_ref_p

2017-04-29  Marc Glisse  <marc.glisse@inria.fr>

PR tree-optimization/80487
gcc/
* tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.

gcc/testsuite/
* gcc.dg/tree-ssa/strncpy-1.c: New file.

From-SVN: r247408

7 years agore PR tree-optimization/79697 (unused realloc(0, n) not eliminated)
Prathamesh Kulkarni [Sat, 29 Apr 2017 10:05:13 +0000 (10:05 +0000)]
re PR tree-optimization/79697 (unused realloc(0, n) not eliminated)

2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

PR tree-optimization/79697
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
(propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
BUILT_IN_STRNDUP.
* gimple-fold.c (gimple_fold_builtin_realloc): New function.
(gimple_fold_builtin): Call gimple_fold_builtin_realloc.

testsuite/
* gcc.dg/tree-ssa/pr79697.c: New test.

From-SVN: r247407

7 years agoRequire effective target avx512f for tree-prof/pr66295.c
Tom de Vries [Sat, 29 Apr 2017 08:39:40 +0000 (08:39 +0000)]
Require effective target avx512f for tree-prof/pr66295.c

2017-04-29  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/tree-prof/pr66295.c: Require effective target avx512f.

From-SVN: r247406

7 years agoDaily bump.
GCC Administrator [Sat, 29 Apr 2017 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r247405

7 years agoPR tree-optimization/80523 - -Wformat-overflow doesn't consider -fexec-charset
Martin Sebor [Fri, 28 Apr 2017 22:29:40 +0000 (22:29 +0000)]
PR tree-optimization/80523 -  -Wformat-overflow doesn't consider -fexec-charset

gcc/ChangeLog:

PR tree-optimization/80523
* gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
(init_target_to_host_charmap, target_to_host, target_strtol10): New
functions.
(maybe_warn, format_directive, parse_directive): Use new functions.
(pass_sprintf_length::execute): Call init_target_to_host_charmap.

gcc/testsuite/ChangeLog:

PR tree-optimization/80523
* gcc.dg/tree-ssa/builtin-sprintf-warn-18.c: New test.

From-SVN: r247401

7 years agoReplace absolute linenrs in gfortran.dg
Tom de Vries [Fri, 28 Apr 2017 21:52:16 +0000 (21:52 +0000)]
Replace absolute linenrs in gfortran.dg

2017-04-28  Tom de Vries  <tom@codesourcery.com>

PR testsuite/80557
* gfortran.dg/gomp/appendix-a/a.24.1.f90: Replace absolute linenrs.
* gfortran.dg/gomp/appendix-a/a.31.3.f90: Same.

From-SVN: r247400

7 years agoReplace absolute linenrs in objc.dg,obj-c++.dg
Tom de Vries [Fri, 28 Apr 2017 21:24:00 +0000 (21:24 +0000)]
Replace absolute linenrs in objc.dg,obj-c++.dg

2017-04-28  Tom de Vries  <tom@codesourcery.com>

PR testsuite/80557
* obj-c++.dg/bitfield-1.mm: Replace absolute linenrs.
* obj-c++.dg/bitfield-4.mm: Same.
* obj-c++.dg/bitfield-5.mm: Same.
* obj-c++.dg/exceptions-3.mm: Same.
* obj-c++.dg/exceptions-5.mm: Same.
* obj-c++.dg/method-1.mm: Same.
* obj-c++.dg/method-12.mm: Same.
* obj-c++.dg/method-13.mm: Same.
* obj-c++.dg/method-15.mm: Same.
* obj-c++.dg/method-16.mm: Same.
* obj-c++.dg/property/at-property-18.mm: Same.
* obj-c++.dg/property/at-property-25.mm: Same.
* obj-c++.dg/property/at-property-5.mm: Same.
* obj-c++.dg/property/dynamic-2.mm: Same.
* obj-c++.dg/property/property-neg-3.mm: Same.
* obj-c++.dg/protocol-inheritance-1.mm: Same.
* obj-c++.dg/protocol-inheritance-2.mm: Same.
* obj-c++.dg/syntax-error-1.mm: Same.
* obj-c++.dg/try-catch-13.mm: Same.
* objc.dg/bitfield-4.m: Same.
* objc.dg/class-1.m: Same.
* objc.dg/method-11.m: Same.
* objc.dg/method-6.m: Same.
* objc.dg/method-7.m: Same.
* objc.dg/method-9.m: Same.
* objc.dg/missing-proto-3.m: Same.
* objc.dg/naming-2.m: Same.
* objc.dg/property/at-property-16.m: Same.
* objc.dg/property/at-property-18.m: Same.
* objc.dg/property/at-property-25.m: Same.
* objc.dg/property/at-property-5.m: Same.
* objc.dg/property/dynamic-2.m: Same.
* objc.dg/property/property-neg-3.m: Same.
* objc.dg/protocol-inheritance-1.m: Same.
* objc.dg/protocol-inheritance-2.m: Same.

From-SVN: r247399

7 years agoDrop Z from X + Z < Y + Z
Marc Glisse [Fri, 28 Apr 2017 20:51:05 +0000 (22:51 +0200)]
Drop Z from X + Z < Y + Z

2017-04-28  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.

gcc/testsuite/
* gcc.dg/tree-ssa/cmpexactdiv-2.c: Update for X-Z OP Y-Z.

From-SVN: r247398

7 years agoconfigure.ac (SYSTEM_HEADER_DIR, [...]): Set correctly.
Bernd Edlinger [Fri, 28 Apr 2017 20:15:00 +0000 (20:15 +0000)]
configure.ac (SYSTEM_HEADER_DIR, [...]): Set correctly.

2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
        target_header_dir): Set correctly.
        * configure: Regenerated.
        * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
        (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
        instead of SYSTEM_HEADER_DIR.

From-SVN: r247397

7 years agoRemove blank line
Eric Botcazou [Fri, 28 Apr 2017 17:10:02 +0000 (17:10 +0000)]
Remove blank line

From-SVN: r247395

7 years agoUpdate .po files.
Joseph Myers [Fri, 28 Apr 2017 16:16:03 +0000 (17:16 +0100)]
Update .po files.

* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
zh_TW.po: Update.

From-SVN: r247394

7 years ago[multiple changes]
Arnaud Charlet [Fri, 28 Apr 2017 13:48:59 +0000 (15:48 +0200)]
[multiple changes]

2017-04-28  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Complete_Object_Operation): When rewriting the
controlling actual in a prefixed call, preserve the original node
information if the prefix itself has been rewritten, for ASIS use.

2017-04-28  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch6.adb (Insert_Post_Call_Actions):
Code clean up. Insert the post-call actions after an enclosing
procedure call when N denotes a function call and appears as an
actual parameter in the procedure call.

2017-04-28  Eric Botcazou  <ebotcazou@adacore.com>

* freeze.adb (Check_Component_Storage_Order): If there is a clause
for the component, also reject the attribute if the component
doesn't end on a byte boundary and its scalar storage order is
different from that of the enclosing record type.

From-SVN: r247391

7 years ago[multiple changes]
Arnaud Charlet [Fri, 28 Apr 2017 13:47:23 +0000 (15:47 +0200)]
[multiple changes]

2017-04-28  Javier Miranda  <miranda@adacore.com>

* atree.ads (Info_Messages): Removed.
(Warning_Info_Messages): New counter.
(Report_Info_Messages): New counter.
* err_vars.ads Update documentation.
* errout.adb (Delete_Warning_And_Continuations): Update
Info_Message occurrences.
(Error_Msg_Internal): Update Info_Message occurrences.
(Delete_Warning): Update Info_Message occurrences.
(Write_Error_Summary): Update Info_Message occurrences.
(Output_Messages): Update Info_Message occurrences.
(To_Be_Removed): Update Info_Message occurrences.
(Reset_Warnings): Update Info_Message occurrences.
* errutil.adb (Error_Msg): Update Info_Message occurrences.
(Finalize): Update Info_Message occurrences.
(Initialize): Update Info_Message occurrences.
* erroutc.adb (Delete_Msg): Update Info_Message occurrences.
(Compilation_Errors): Update Info_Message_Occurences.

2017-04-28  Eric Botcazou  <ebotcazou@adacore.com>

        * exp_ch3.adb (Build_Init_Statements): Likewise on Nam.
        * freeze.adb (Check_Component_Storage_Order): And on Comp_Byte_Aligned.
        * sem_aggr.adb (Resolve_Record_Aggregate): Initialize Box_Node.
        * sem_attr.adb (Loop_Entry): Initialize Encl_Loop.
        * sem_ch12.adb (Build_Operator_Wrapper): Add pragma Warnings on Expr.
        * sem_ch13.adb (Validate_Address_Clauses): Initialize Y_Alignment and
        Y_Size.
        * sem_eval.adb (Why_Not_Static): Initialize Typ.
        * sem_prag.adb (Analyze_Pragma): Add pragma Warnings on Str.

From-SVN: r247390

7 years agoRemove superfluous "" in dg-(error|warning|message|bogus)
Tom de Vries [Fri, 28 Apr 2017 13:41:35 +0000 (13:41 +0000)]
Remove superfluous "" in dg-(error|warning|message|bogus)

find $(find -type d -name testsuite) -type f \
     | xargs sed -ri 's#(dg-(error|warning|message|bogus).*)" "" \}#\1" }#'

2017-04-28  Tom de Vries  <tom@codesourcery.com>

* g++.dg/abi/bitfield3.C: Remove superfluous "" in
dg-(error|warning|message|bogus).
* g++.dg/conversion/dr195-1.C: Same.
* g++.dg/conversion/dr195.C: Same.
* g++.dg/cpp0x/constexpr-reinterpret1.C: Same.
* g++.dg/cpp0x/gen-attrs-14.C: Same.
* g++.dg/cpp0x/inline-ns7.C: Same.
* g++.dg/cpp0x/variadic105.C: Same.
* g++.dg/cpp0x/variadic65.C: Same.
* g++.dg/expr/call2.C: Same.
* g++.dg/expr/member-of-incomplete-type-1.C: Same.
* g++.dg/expr/pmf-1.C: Same.
* g++.dg/ext/altivec-types-1.C: Same.
* g++.dg/ext/altivec-types-2.C: Same.
* g++.dg/ext/altivec-types-3.C: Same.
* g++.dg/ext/attrib14.C: Same.
* g++.dg/ext/complit1.C: Same.
* g++.dg/ext/forscope2.C: Same.
* g++.dg/ext/gnu-inline-global-reject.C: Same.
* g++.dg/ext/label13.C: Same.
* g++.dg/ext/member-attr.C: Same.
* g++.dg/ext/visibility/anon7.C: Same.
* g++.dg/ext/visibility/visibility-7.C: Same.
* g++.dg/ext/vla2.C: Same.
* g++.dg/inherit/access2.C: Same.
* g++.dg/inherit/covariant12.C: Same.
* g++.dg/inherit/covariant14.C: Same.
* g++.dg/inherit/namespace-as-base.C: Same.
* g++.dg/inherit/template-as-base.C: Same.
* g++.dg/lookup/ambig1.C: Same.
* g++.dg/lookup/ambig2.C: Same.
* g++.dg/lookup/ambig3.C: Same.
* g++.dg/lookup/class-member-1.C: Same.
* g++.dg/lookup/conv-1.C: Same.
* g++.dg/lookup/decl1.C: Same.
* g++.dg/lookup/koenig1.C: Same.
* g++.dg/lookup/scoped1.C: Same.
* g++.dg/lookup/scoped2.C: Same.
* g++.dg/lookup/two-stage4.C: Same.
* g++.dg/lookup/used-before-declaration.C: Same.
* g++.dg/lookup/using.C: Same.
* g++.dg/lookup/using17.C: Same.
* g++.dg/lookup/using2.C: Same.
* g++.dg/other/abstract2.C: Same.
* g++.dg/other/classkey1.C: Same.
* g++.dg/other/component1.C: Same.
* g++.dg/other/const1.C: Same.
* g++.dg/other/const2.C: Same.
* g++.dg/other/conversion1.C: Same.
* g++.dg/other/do1.C: Same.
* g++.dg/other/error1.C: Same.
* g++.dg/other/error10.C: Same.
* g++.dg/other/error3.C: Same.
* g++.dg/other/error4.C: Same.
* g++.dg/other/error5.C: Same.
* g++.dg/other/error8.C: Same.
* g++.dg/other/error9.C: Same.
* g++.dg/other/field1.C: Same.
* g++.dg/other/init1.C: Same.
* g++.dg/other/ptrmem2.C: Same.
* g++.dg/other/return1.C: Same.
* g++.dg/overload/builtin3.C: Same.
* g++.dg/overload/error1.C: Same.
* g++.dg/overload/error2.C: Same.
* g++.dg/overload/koenig2.C: Same.
* g++.dg/overload/pmf1.C: Same.
* g++.dg/parse/args1.C: Same.
* g++.dg/parse/attr3.C: Same.
* g++.dg/parse/constant4.C: Same.
* g++.dg/parse/crash10.C: Same.
* g++.dg/parse/crash18.C: Same.
* g++.dg/parse/crash19.C: Same.
* g++.dg/parse/crash20.C: Same.
* g++.dg/parse/crash21.C: Same.
* g++.dg/parse/crash22.C: Same.
* g++.dg/parse/crash32.C: Same.
* g++.dg/parse/decl-specifier-1.C: Same.
* g++.dg/parse/error58.C: Same.
* g++.dg/parse/local-class1.C: Same.
* g++.dg/parse/non-dependent2.C: Same.
* g++.dg/parse/parameter-declaration-1.C: Same.
* g++.dg/parse/ptrmem2.C: Same.
* g++.dg/parse/ptrmem3.C: Same.
* g++.dg/parse/saved1.C: Same.
* g++.dg/tc1/dr101.C: Same.
* g++.dg/tc1/dr142.C: Same.
* g++.dg/tc1/dr176.C: Same.
* g++.dg/template/conv4.C: Same.
* g++.dg/template/crash56.C: Same.
* g++.dg/template/dependent-expr2.C: Same.
* g++.dg/template/error1.C: Same.
* g++.dg/template/error2.C: Same.
* g++.dg/template/explicit6.C: Same.
* g++.dg/template/init-list.C: Same.
* g++.dg/template/local1.C: Same.
* g++.dg/template/lookup2.C: Same.
* g++.dg/template/meminit2.C: Same.
* g++.dg/template/nontype25.C: Same.
* g++.dg/template/ptrmem2.C: Same.
* g++.dg/template/qualttp19.C: Same.
* g++.dg/template/qualttp20.C: Same.
* g++.dg/template/ttp3.C: Same.
* g++.dg/template/unify4.C: Same.
* g++.dg/template/unify6.C: Same.
* g++.dg/template/unify7.C: Same.
* g++.dg/template/warn1.C: Same.
* g++.dg/tree-ssa/dom-invalid.C: Same.
* g++.dg/ubsan/shift-1.C: Same.
* g++.dg/warn/Wunused-2.C: Same.
* g++.dg/warn/Wunused-4.C: Same.
* g++.dg/warn/Wunused-6.C: Same.
* g++.dg/warn/deprecated-6.C: Same.
* g++.dg/warn/deprecated.C: Same.
* g++.dg/warn/effc1.C: Same.
* g++.dg/warn/effc3.C: Same.
* g++.dg/warn/incomplete1.C: Same.
* g++.dg/warn/inline1.C: Same.
* g++.dg/warn/noeffect2.C: Same.
* g++.dg/warn/noeffect4.C: Same.
* g++.dg/warn/oldcast1.C: Same.
* g++.dg/warn/sentinel.C: Same.
* g++.dg/warn/unit-1.C: Same.
* g++.old-deja/g++.pt/inherit2.C: Same.
* g++.old-deja/g++.pt/overload8.C: Same.
* gcc.dg/20000926-1.c: Same.
* gcc.dg/20040223-1.c: Same.
* gcc.dg/Warray-bounds-7.c: Same.
* gcc.dg/alias-1.c: Same.
* gcc.dg/alias-12.c: Same.
* gcc.dg/alias-13.c: Same.
* gcc.dg/alias-2.c: Same.
* gcc.dg/array-13.c: Same.
* gcc.dg/array-4.c: Same.
* gcc.dg/attr-ifunc-2.c: Same.
* gcc.dg/attr-invalid.c: Same.
* gcc.dg/attr-noinline.c: Same.
* gcc.dg/bitfld-2.c: Same.
* gcc.dg/c90-const-expr-7.c: Same.
* gcc.dg/c99-const-expr-7.c: Same.
* gcc.dg/cpp/20000625-1.c: Same.
* gcc.dg/cpp/charconst-4.c: Same.
* gcc.dg/cpp/include2.c: Same.
* gcc.dg/cpp/include2a.c: Same.
* gcc.dg/decl-4.c: Same.
* gcc.dg/deprecated-4.c: Same.
* gcc.dg/deprecated.c: Same.
* gcc.dg/dfp/altivec-types.c: Same.
* gcc.dg/float-range-1.c: Same.
* gcc.dg/pack-test-3.c: Same.
* gcc.dg/pr11492.c: Same.
* gcc.dg/pr15360-1.c: Same.
* gcc.dg/pr37908.c: Same.
* gcc.dg/pr53265.c: Same.
* gcc.dg/pr57287-2.c: Same.
* gcc.dg/pr57287.c: Same.
* gcc.dg/redecl-1.c: Same.
* gcc.dg/sync-3.c: Same.
* gcc.dg/two-types-1.c: Same.
* gcc.dg/two-types-2.c: Same.
* gcc.dg/two-types-4.c: Same.
* gcc.dg/two-types-5.c: Same.
* gcc.dg/two-types-6.c: Same.
* gcc.dg/two-types-7.c: Same.
* gcc.dg/two-types-8.c: Same.
* gcc.dg/two-types-9.c: Same.
* gcc.dg/uninit-I.c: Same.
* gcc.dg/uninit-pr19430.c: Same.
* gcc.dg/visibility-7.c: Same.
* gcc.dg/winline-10.c: Same.
* gcc.dg/winline-2.c: Same.
* gcc.dg/winline-3.c: Same.
* gcc.dg/winline-9.c: Same.
* gcc.target/i386/attr-returns_twice-1.c: Same.
* gcc.target/i386/chkp-const-check-2.c: Same.
* gcc.target/i386/chkp-label-address.c: Same.
* gcc.target/i386/chkp-remove-bndint-2.c: Same.
* gcc.target/i386/pr39162.c: Same.
* gcc.target/i386/sse-5.c: Same.
* gcc.target/powerpc/altivec-types-1.c: Same.
* gcc.target/powerpc/altivec-types-2.c: Same.
* gcc.target/powerpc/altivec-types-3.c: Same.
* gcc.target/powerpc/float128-mix.c: Same.
* gcc.target/powerpc/no-r11-3.c: Same.
* gcc.target/spu/Wmain.c: Same.
* gcc.target/spu/ea/errors2.c: Same.
* gfortran.dg/assignment_1.f90: Same.
* gfortran.dg/common_3.f90: Same.
* gfortran.dg/der_io_1.f90: Same.
* gfortran.dg/g77/20030326-1.f: Same.
* gfortran.dg/g77/9263.f: Same.
* gfortran.dg/g77/960317-1.f: Same.
* gfortran.dg/g77/970625-2.f: Same.
* gfortran.dg/g77/980615-0.f: Same.
* gfortran.dg/g77/check0.f: Same.
* gfortran.dg/g77/dnrm2.f: Same.
* gfortran.dg/g77/pr9258.f: Same.
* gfortran.dg/ichar_1.f90: Same.
* gfortran.dg/interface_1.f90: Same.
* gfortran.dg/namelist_1.f90: Same.
* gfortran.dg/namelist_2.f90: Same.
* gfortran.dg/namelist_3.f90: Same.
* gfortran.dg/namelist_print_2.f: Same.
* gfortran.dg/oldstyle_1.f90: Same.
* gfortran.dg/runtime_warning_1.f90: Same.
* gfortran.dg/underflow.f90: Same.
* gnat.dg/specs/integer_value.ads: Same.
* obj-c++.dg/fsf-package-0.m: Same.
* objc.dg/two-types-1.m: Same.

From-SVN: r247389

7 years agoMinor reformatting.
Arnaud Charlet [Fri, 28 Apr 2017 13:38:19 +0000 (15:38 +0200)]
Minor reformatting.

From-SVN: r247388

7 years ago[multiple changes]
Arnaud Charlet [Fri, 28 Apr 2017 13:37:44 +0000 (15:37 +0200)]
[multiple changes]

2017-04-28  Bob Duff  <duff@adacore.com>

* sem_util.ads, sem_util.adb (Might_Raise): New function
that replaces Is_Exception_Safe, but has the opposite
sense. Is_Exception_Safe was missing various cases -- calls inside
a pragma Debug, calls inside an 'if' or assignment statement,
etc. Might_Raise now walks the entire subtree looking for things
that can raise.
* exp_ch9.adb (Is_Exception_Safe): Remove.
(Build_Protected_Subprogram_Body): Replace call to
Is_Exception_Safe with "not Might_Raise". Misc cleanup (use
constants where possible).
* exp_ch7.adb: Rename Is_Protected_Body -->
Is_Protected_Subp_Body. A protected_body is something different
in the grammar.

2017-04-28  Eric Botcazou  <ebotcazou@adacore.com>

* inline.adb (Expand_Inlined_Call): Initialize Targ1 variable.
* par-ch3.adb (P_Component_Items): Initialize Decl_Node variable.
(P_Discrete_Choice_List): Initialize Expr_Node variable.
* par-ch9.adb (P_Task): Initialize Aspect_Sloc variable.
(P_Protected): Likewise.
* sem_case.adb (Check_Duplicates):
Add pragma Warnings on variable.
* sem_ch12.adb (Preanalyze_Actuals): Initialize Vis variable.
* sem_ch4.adb (List_Operand_Interps):  Add pragma Warnings on variable.
* sem_ch5.adb (Analyze_Assignment): Initialize Save_Full_Analysis.
(Analyze_Exit_Statement): Initialize Scope_Id variable.
(Analyze_Iterator_Specification): Initialize Bas variable.
* sem_ch9.adb (Allows_Lock_Free_Implementation): Initialize
Error_Count (Satisfies_Lock_Free_Requirements): Likewise.
(Analyze_Accept_Statement): Initialize Task_Nam.

2017-04-28  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb (Install_Primitive_Elaboration_Check):
Do not generate an elaboration check if all checks have been
suppressed.

2017-04-28  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Analyze_Aspect_Specifications, case
Interrupt_Handler and Attach_Handler): Generate reference
to protected operation to prevent spurious warnings about
unreferenced entities. Previous scheme failed with style checks
enabled.

2017-04-28  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb (Relocate_Pragmas_To_Body): A pragma Warnings
that follows an expression function must not be relocated to
the generated body, because it applies to the code that follows.

From-SVN: r247387

7 years ago[multiple changes]
Arnaud Charlet [Fri, 28 Apr 2017 13:34:44 +0000 (15:34 +0200)]
[multiple changes]

2017-04-28  Gary Dismukes  <dismukes@adacore.com>

* sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Test
Relaxed_RM_Semantics to avoid having CodePeer issue errors on
code that might violate the more stringent checking for 'Access
introduced in Ada 2005.

2017-04-28  Arnaud Charlet  <charlet@adacore.com>

* a-cforse.adb: minor style fix in comment.

From-SVN: r247386

7 years ago[multiple changes]
Arnaud Charlet [Fri, 28 Apr 2017 13:33:16 +0000 (15:33 +0200)]
[multiple changes]

2017-04-28  Eric Botcazou  <ebotcazou@adacore.com>

* exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): Also
initialize Block_Decls variable.
(Expand_Entry_Barrier): Add pragma Warnings on Func_Body variable.
(Build_Dispatching_Requeue): Add pragma Warnings on Op variable.
* exp_disp.adb (Expand_Interface_Actuals): Initialize
Formal_DDT and Actual_DDT variables.
(Expand_Interface_Thunk): Initialize Iface_Formal.
(Make_DT): Initialize Size_Comp.
(Make_Select_Specific_Data_Table): Initialize Decls.
* exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies):
Also initialize more RPC_Receiver_* variables.
(Build_To_Any_Function): Initialize Cstr_Formal.
* exp_prag.adb (Expand_Pragma_Contract_Cases): Initialize Msg_Str.

2017-04-28  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Freeze_Type_Refs): For an interface conversion
node between access types, freeze the designated type as well,
so that dispatch table pointers are created in the proper scope,
and not in the constructed body of the expression function.

2017-04-28  Bob Duff  <duff@adacore.com>

* alloc.ads (Nodes_Initial): Go back to previous value. The large
value makes large compilations faster, but small compilations slower.

2017-04-28  Arnaud Charlet  <charlet@adacore.com>

* sem_util.adb: minor typos in Is_Child_Or_Sibling.

2017-04-28  Hristian Kirtchev  <kirtchev@adacore.com>

* erroutc.adb (Compilation_Errors): Do not consider info messages
as suitable warnings when warnings must be treated as errors.
* sem_ch7.adb (Analyze_Package_Specification): Do not consider
internally-generated packages when outputting completion
information.
* errout.adb (Output_Messages): Do not consider info messages as
suitable warnings when warnings must be treated as errors.
* errutil.adb (Finalize): Do not consider info messages as
suitable warnings when warnings must be treated as errors.

2017-04-28  Eric Botcazou  <ebotcazou@adacore.com>

* warnsw.ads: Minor fix for incorrect wording in comment.

2017-04-28  Ed Schonberg  <schonberg@adacore.com>

* sem_res.adb (In_Instance_Code): New predicate in
Valid_Conversion, to determine whether a type conversion appears
as (or within) an actual for a formal object.  Type conversions
in instances are not rechecked in Valid_Conversion because
visibility changes between generic location andi instance may
lead to spurious errors, but conversions within an actual must be
fully checked, and they are not fully resolved when pre-analyzing
the actuals.

From-SVN: r247385

7 years agoexp_ch6.adb (Expand_N_Extended_Return_Statement): Use New_Copy_Tree instead of Reloca...
Hristian Kirtchev [Fri, 28 Apr 2017 13:29:34 +0000 (13:29 +0000)]
exp_ch6.adb (Expand_N_Extended_Return_Statement): Use New_Copy_Tree instead of Relocate_Node as any subsequent copies of the...

2017-04-28  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch6.adb (Expand_N_Extended_Return_Statement): Use
New_Copy_Tree instead of Relocate_Node as any subsequent copies
of the relocated node will have mangled Parent pointers.
* sem_util.adb (Build_NCT_Hash_Tables): Reset both hash
tables used in conjunction with entity and itype replication.
(Visit_Entity): Rewrite the restriction on which entities
require duplication.  The restriction now includes all types.

2017-04-28  Hristian Kirtchev  <kirtchev@adacore.com>

* a-cofuse.ads, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfinve.adb,
a-cfinve.ads, a-cforma.adb, a-cforma.ads, a-cofuma.adb, a-cofuma.ads,
a-cfhama.adb, a-cfhama.ads, a-cforse.adb: Minor reformatting and code
cleanups.

From-SVN: r247384

7 years agoexp_util.adb, [...]: Minor reformatting.
Hristian Kirtchev [Fri, 28 Apr 2017 13:26:33 +0000 (13:26 +0000)]
exp_util.adb, [...]: Minor reformatting.

2017-04-28  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_util.adb, g-dyntab.adb, par-ch4.adb, sem_util.adb, sem_attr.adb,
gnat1drv.adb, exp_disp.adb, namet.adb, alloc.ads: Minor reformatting.

From-SVN: r247383

7 years agoFix date.
Arnaud Charlet [Fri, 28 Apr 2017 13:25:26 +0000 (15:25 +0200)]
Fix date.

From-SVN: r247382

7 years ago[multiple changes]
Arnaud Charlet [Fri, 28 Apr 2017 13:25:02 +0000 (15:25 +0200)]
[multiple changes]

2017-04-27  Gary Dismukes  <dismukes@adacore.com>

* exp_util.adb: Minor reformatting.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb: Fix copy/pasto.

From-SVN: r247381

7 years agoipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
Jan Hubicka [Fri, 28 Apr 2017 13:04:48 +0000 (15:04 +0200)]
ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.

* ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
(estimate_local_effects): Likewise.
* ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
* ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
do_estimate_edge_time, estimate_edge_time): Likewise.
* ipa-inline-analysis.c (estimate_node_size_and_time,
estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
(estimate_time_after_inlining): Remove.

From-SVN: r247380

7 years agoPR libstdc++/80553 don't allow destroying non-destructible types
Jonathan Wakely [Fri, 28 Apr 2017 12:56:53 +0000 (13:56 +0100)]
PR libstdc++/80553 don't allow destroying non-destructible types

PR libstdc++/80553
* include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
assertions to ensure type is destructible.
(destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
* include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
Move to stl_construct.h.
* testsuite/20_util/specialized_algorithms/memory_management_tools/
destroy_neg.cc: New test.
* testsuite/23_containers/vector/cons/destructible_neg.cc: New test.

From-SVN: r247379

7 years agoRemove superfluous "" in dg-error.
Jonathan Wakely [Fri, 28 Apr 2017 12:56:38 +0000 (13:56 +0100)]
Remove superfluous "" in dg-error.

* testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
superfluous "" in dg-error.

From-SVN: r247378

7 years agoEnhance documentation of gcov.
Martin Liska [Fri, 28 Apr 2017 12:51:57 +0000 (14:51 +0200)]
Enhance documentation of gcov.

2017-04-28  Martin Liska  <mliska@suse.cz>

* doc/gcov.texi: Enhance documentation of gcov.

From-SVN: r247377

7 years agoSort options of gcov, gcov-dump and gcov-tool both in --help and documentation
Martin Liska [Fri, 28 Apr 2017 12:51:40 +0000 (14:51 +0200)]
Sort options of gcov, gcov-dump and gcov-tool both in --help and documentation

2017-04-28  Martin Liska  <mliska@suse.cz>

* doc/gcov.texi: Sort options in alphabetic order.
* doc/gcov-dump.texi: Likewise.
* doc/gcov-tool.texi: Likewise.
* gcov.c (print_usage): Likewise.
* gcov-dump.c (print_usage): Likewise.
* gcov-tool.c (print_merge_usage_message): Likewise.
(print_rewrite_usage_message): Likewise.
(print_overlap_usage_message): Likewise.

From-SVN: r247376

7 years agoFix format_gcov to not print misleading values (PR gcov-profile/53915)
Martin Liska [Fri, 28 Apr 2017 12:51:22 +0000 (14:51 +0200)]
Fix format_gcov to not print misleading values (PR gcov-profile/53915)

2017-04-28  Martin Liska  <mliska@suse.cz>

PR gcov-profile/53915
* gcov.c (format_gcov): Print 'NAN %' when top > bottom.

From-SVN: r247375

7 years agoMake gcno more precise about BBs really belonging to a line (PR gcov-profile/79891).
Martin Liska [Fri, 28 Apr 2017 12:51:05 +0000 (14:51 +0200)]
Make gcno more precise about BBs really belonging to a line (PR gcov-profile/79891).

2017-04-28  Martin Liska  <mliska@suse.cz>

PR gcov-profile/79891
* gcov.c (add_line_counts): Assign BBs to lines just if the BB
is marked by compiler as living on a line.
(get_cycles_count): Remove usage of the union.
(output_intermediate_file): Likewise.
(find_source): Fix GNU coding style.
(accumulate_line_counts): Remove old non-all block mode.
(output_lines): Remove usage of the union.
* profile.c (output_location): Include all BBs, even if
belonging to a same line (and file) as a previous BB.
2017-04-28  Martin Liska  <mliska@suse.cz>

PR gcov-profile/79891
* gcc.misc-tests/gcov-17.c: New test.
* gcc.misc-tests/gcov-18.c: New test.

From-SVN: r247374

7 years agoIntroduce new option -w which shows verbose informations.
Martin Liska [Fri, 28 Apr 2017 12:50:47 +0000 (14:50 +0200)]
Introduce new option -w which shows verbose informations.

2017-04-28  Martin Liska  <mliska@suse.cz>

* gcov.c (process_args): Handle new argument 'w'.
(read_graph_file): Assign ID to BBs.
(output_branch_count): Display BB # if verbose flag is set.
(output_lines): Likewise for arcs.
(print_usage): Add '--verbose' option help.
* doc/gcov.texi: Document --verbose (-w) option.

From-SVN: r247373

7 years agoSimplify representation of locations of a block.
Martin Liska [Fri, 28 Apr 2017 12:50:29 +0000 (14:50 +0200)]
Simplify representation of locations of a block.

2017-04-28  Martin Liska  <mliska@suse.cz>

* gcov.c (struct block_location_info): New struct.
(process_file): Fill up the new structure.
(read_graph_file): Replace usage of encoding by the newly added
struct.
(add_line_counts): Likewise.
(accumulate_line_counts): Remove usage of the union.
(function_info::function_info): New function.
(function_info::~function_info): Likewise.
(process_file): Call delete instead of release_function.
(release_function): Release the function.
(release_structures): Call delete instead of release_function.
(solve_flow_graph): Replace usage of num_blocks.
(find_exception_blocks): Likewise.
(output_lines): Fix GNU coding style.

From-SVN: r247372

7 years agoRemove .gcno file when compilation does not success (PR driver/56469).
Martin Liska [Fri, 28 Apr 2017 12:50:08 +0000 (14:50 +0200)]
Remove .gcno file when compilation does not success (PR driver/56469).

2017-04-28  Martin Liska  <mliska@suse.cz>

PR driver/56469
* coverage.c (coverage_remove_note_file): New function.
* coverage.h: Declare the function.
* toplev.c (finalize): Clean if an error has been seen.

From-SVN: r247371

7 years agogcno file: do not stream block flags (PR gcov-profile/80031).
Martin Liska [Fri, 28 Apr 2017 12:49:26 +0000 (14:49 +0200)]
gcno file: do not stream block flags (PR gcov-profile/80031).

2017-04-28  Martin Liska  <mliska@suse.cz>

PR gcov-profile/80031
* gcov-dump.c (tag_blocks): Just print number of basic blocks.
* gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
* gcov.c (read_graph_file): Read just number of blocks.
* profile.c (branch_prob): Do not stream 0 flags per a basic
block.

From-SVN: r247370

7 years agoFix indentation of gcov-dump.
Martin Liska [Fri, 28 Apr 2017 12:48:44 +0000 (14:48 +0200)]
Fix indentation of gcov-dump.

2017-04-28  Martin Liska  <mliska@suse.cz>

* gcov-dump.c (tag_*): Add new argument to declarations.
(dump_gcov_file): Likewise.
(tag_blocks): Add and use new argument depth.
(tag_arcs): Likewise.
(tag_lines): Likewise.
(tag_counters): Likewise.
(tag_summary): Likewise.
(dump_working_sets): Use depth to do a proper indentation.

From-SVN: r247369

7 years agore PR bootstrap/80531 (RC1 bootstrap comparison failure)
Jakub Jelinek [Fri, 28 Apr 2017 11:15:55 +0000 (13:15 +0200)]
re PR bootstrap/80531 (RC1 bootstrap comparison failure)

PR bootstrap/80531
* cgraph.h (symtab_node::debug_symtab): No longer inline.
* symtab.c (symtab_node::debug_symtab): Move definition here.

From-SVN: r247367

7 years agolto-streamer.h (LTO_major_version): Bump to 7.
Richard Biener [Fri, 28 Apr 2017 08:42:56 +0000 (08:42 +0000)]
lto-streamer.h (LTO_major_version): Bump to 7.

2017-04-28  Richard Biener  <rguenther@suse.de>

* lto-streamer.h (LTO_major_version): Bump to 7.

From-SVN: r247365

7 years agoRemove superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus)
Tom de Vries [Fri, 28 Apr 2017 07:26:32 +0000 (07:26 +0000)]
Remove superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus)

find $(find -type d -name testsuite) -type f \
     | xargs sed -ri \
       's#(dg-(error|warning|message|bogus).*) \{ target \*-\*-\* \} \}#\1 }#'

2017-04-28  Tom de Vries  <tom@codesourcery.com>

* g++.dg/parse/error2.C: Remove superfluous '{ target *-*-* }' in
dg-(error|warning|message|bogus).
* g++.dg/parse/parameter-declaration-1.C: Same.
* g++.dg/warn/Wstrict-aliasing-float-ref-int-obj.C: Same.
* gcc.dg/Wpointer-sign-Wall.c: Same.
* gcc.dg/Wpointer-sign-pedantic.c: Same.
* gcc.dg/cpp/19990413-1.c: Same.
* gcc.dg/dg-test-1.c: Same.
* gcc.dg/empty-source-2.c: Same.
* gcc.dg/empty-source-3.c: Same.
* gcc.dg/format/c99-printf-1.c: Same.
* gcc.dg/format/c99-scanf-1.c: Same.
* gcc.dg/label-decl-2.c: Same.
* gcc.dg/m-un-2.c: Same.
* gcc.dg/uninit-pr20644-O0.c: Same.
* gfortran.dg/pr70006.f90: Same.
* obj-c++.dg/fsf-package-0.m: Same.

* testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).

From-SVN: r247364

7 years agoRemove superfluous ' . ' in dg-(error|warning|message|bogus)
Tom de Vries [Fri, 28 Apr 2017 07:26:18 +0000 (07:26 +0000)]
Remove superfluous ' . ' in dg-(error|warning|message|bogus)

find $(find -type d -name testsuite) -type f \
     | xargs sed -ri 's#(dg-(error|warning|message|bogus).*) \. \}#\1 }#'

2017-04-28  Tom de Vries  <tom@codesourcery.com>

* c-c++-common/Wimplicit-fallthrough-6.c: Remove superfluous ' . ' in
dg-(error|warning|message|bogus).
* c-c++-common/Wimplicit-fallthrough-7.c: Same.
* c-c++-common/cilk-plus/AN/pr61963.c: Same.
* c-c++-common/cilk-plus/CK/no_args_error.c: Same.
* c-c++-common/pr20000.c: Same.
* c-c++-common/pr49706.c: Same.
* g++.dg/ext/utf16-4.C: Same.
* g++.dg/parse/error2.C: Same.
* g++.dg/warn/Wtype-limits-Wextra.C: Same.
* g++.dg/warn/Wtype-limits.C: Same.
* g++.dg/warn/overflow-warn-1.C: Same.
* g++.dg/warn/overflow-warn-3.C: Same.
* gcc.dg/Wpointer-sign-Wall.c: Same.
* gcc.dg/Wpointer-sign-pedantic.c: Same.
* gcc.dg/Wtype-limits-Wextra.c: Same.
* gcc.dg/Wtype-limits.c: Same.
* gcc.dg/cpp/19990413-1.c: Same.
* gcc.dg/dg-test-1.c: Same.
* gcc.dg/empty-source-2.c: Same.
* gcc.dg/empty-source-3.c: Same.
* gcc.dg/label-decl-2.c: Same.
* gcc.dg/m-un-2.c: Same.
* gcc.dg/uninit-pr19430-O0.c: Same.
* gcc.dg/uninit-pr19430.c: Same.
* gcc.dg/uninit-pr20644-O0.c: Same.
* gcc.dg/utf16-4.c: Same.
* gfortran.dg/pr70006.f90: Same.
* obj-c++.dg/fsf-package-0.m: Same.

From-SVN: r247363

7 years agotree-vrp.c (assert_info): New struct.
Richard Biener [Fri, 28 Apr 2017 06:42:20 +0000 (06:42 +0000)]
tree-vrp.c (assert_info): New struct.

2017-04-28  Richard Biener  <rguenther@suse.de>

* tree-vrp.c (assert_info): New struct.
(add_assert_info): New helper.
(register_edge_assert_for_2): Refactor to add asserts to a vector
of assert_info.
(register_edge_assert_for_1): Likewise.
(register_edge_assert_for): Likewise.
(finish_register_edge_assert_for): New helper actually registering
asserts where live on edge.
(find_conditional_asserts): Adjust.
(find_switch_asserts): Likewise.
(evrp_dom_walker::try_find_new_range): Generalize.
(evrp_dom_walker::before_dom_children): Use register_edge_assert_for.

* gcc.dg/tree-ssa/evrp7.c: New testcase.
* gcc.dg/tree-ssa/evrp8.c: Likewise.
* gcc.dg/tree-ssa/evrp9.c: Likewise.
* gcc.dg/tree-ssa/vrp35.c: Disable EVRP.
* gcc.dg/tree-ssa/vrp36.c: Likewise.
* gcc.dg/tree-ssa/pr49039.c: Likewise.

From-SVN: r247362

7 years agoDaily bump.
GCC Administrator [Fri, 28 Apr 2017 00:16:23 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r247361

7 years agore PR sanitizer/80349 (UBSAN: compile time crash with "type mismatch in binary expres...
Marek Polacek [Thu, 27 Apr 2017 21:12:29 +0000 (21:12 +0000)]
re PR sanitizer/80349 (UBSAN: compile time crash with "type mismatch in binary expression" message)

PR sanitizer/80349
* fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
arg10 and arg11 to itype.

* c-c++-common/ubsan/pr80349.c: New test.

From-SVN: r247352

7 years agore PR bootstrap/80531 (RC1 bootstrap comparison failure)
Jakub Jelinek [Thu, 27 Apr 2017 20:03:01 +0000 (22:03 +0200)]
re PR bootstrap/80531 (RC1 bootstrap comparison failure)

PR bootstrap/80531
* configure.tgt (*-*-aix*): Add -frandom-seed=$@ to XCFLAGS to avoid
bootstrap compare failures.

From-SVN: r247350

7 years ago* doc/extend.texi (Object Size Checking): Improve grammar.
Jonathan Wakely [Thu, 27 Apr 2017 18:44:25 +0000 (19:44 +0100)]
* doc/extend.texi (Object Size Checking): Improve grammar.

From-SVN: r247349

7 years agoparser.c (cp_parser_cast_expression): Add target type of cast to diagnostic.
Volker Reichelt [Thu, 27 Apr 2017 16:10:54 +0000 (16:10 +0000)]
parser.c (cp_parser_cast_expression): Add target type of cast to diagnostic.

        * parser.c (cp_parser_cast_expression): Add target type of cast to
        diagnostic.
        * error.c (type_to_string): Add '{enum}' suffix to enumeration types.

        * g++.dg/cpp1z/direct-enum-init1.C: Adjust for more verbose enum
        diagnostics.
        * g++.dg/warn/pr12242.C: Likewise.

From-SVN: r247347

7 years agoRemove reundant const-qualification from cast targets
Jonathan Wakely [Thu, 27 Apr 2017 15:17:05 +0000 (16:17 +0100)]
Remove reundant const-qualification from cast targets

* include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
(PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
* testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
Likewise.

From-SVN: r247346

7 years ago* gcc.c-torture/execute/alias-3.c: Skip on AIX.
David Edelsohn [Thu, 27 Apr 2017 14:43:05 +0000 (14:43 +0000)]
* gcc.c-torture/execute/alias-3.c: Skip on AIX.

From-SVN: r247343

7 years agoFix test-case on ppc64le (PR testsuite/79455).
Martin Liska [Thu, 27 Apr 2017 14:28:06 +0000 (16:28 +0200)]
Fix test-case on ppc64le (PR testsuite/79455).

2017-04-27  Martin Liska  <mliska@suse.cz>

PR testsuite/79455
* c-c++-common/tsan/race_on_mutex.c: Make the scanned pattern
more generic.

From-SVN: r247342

7 years ago[AArch64] Fix for gcc-7 regression PR 80530
Richard Earnshaw [Thu, 27 Apr 2017 14:09:55 +0000 (14:09 +0000)]
[AArch64] Fix for gcc-7 regression PR 80530

This patch fixes the regression caused by the changes to add square root
estimation when compiling for xgene-1 or exynos-m1 targets.

The issue is that the expand path for the reciprocal estimate square
root pattern assumes that pattern cannot fail once it has been decided
that this expansion path is available, but because the logic deep inside
aarch64_emit_approx_sqrt() differs from use_rsqrt_p() the two disagree
as to what is safe.

This patch refactors the logic to ensure that we cannot unknowingly make
different choices here.

PR target/80530
* config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
that the logic for permitting reciprocal estimates matches that
in use_rsqrt_p.

From-SVN: r247340

7 years agoMake-lang.in: Define EH_MECHANISM while building raise-gcc.c.
Tristan Gingold [Thu, 27 Apr 2017 13:54:41 +0000 (13:54 +0000)]
Make-lang.in: Define EH_MECHANISM while building raise-gcc.c.

2017-04-27  Tristan Gingold  <gingold@adacore.com>

* gcc-interface/Make-lang.in: Define EH_MECHANISM while building
raise-gcc.c. Fix include search path for raise-gcc.c

From-SVN: r247339

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 13:53:26 +0000 (15:53 +0200)]
[multiple changes]

2017-04-27  Eric Botcazou  <ebotcazou@adacore.com>

* fe.h (Warn_On_Questionable_Layout): Declare.
* warnsw.ads (Warn_On_Record_Holes): Move down.
(Warn_On_Questionable_Layout): New boolean variable.
(Warning_Record): Add Warn_On_Questionable_Layout field.
* warnsw.adb (All_Warnings): Set Warn_On_Questionable_Layout.
(Restore_Warnings): Likewise.
(Save_Warnings): Likewise.
(Set_Dot_Warning_Switch): Handle 'q' and 'Q' letters.
* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust call to
components_to_record.
(gnu_field_to_gnat): New function.
(warn_on_field_placement): Likewise.
(components_to_record): Add GNAT_RECORD_TYPE and remove REORDER
parameters.  Rename local variables and adjust recursive call.
Rework final scan of the field list and implement warnings on the
problematic placement of specific sorts of fields.

2017-04-27  Bob Duff  <duff@adacore.com>

* errout.adb, exp_aggr.adb, exp_attr.adb, exp_code.adb, fname.adb,
* fname.ads, freeze.adb, inline.adb, lib.adb, lib.ads, lib-list.adb,
* lib-load.adb, lib-writ.adb, par.adb, restrict.adb, rtsfind.adb,
* sem.adb, sem_cat.adb, sem_ch10.adb, sem_ch12.adb, sem_ch3.adb,
* sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_elab.adb,
* sem_intr.adb, sem_res.adb, sem_util.adb, sem_warn.adb, sprint.adb:
For efficiency, cache results of Is_Internal_File_Name and
Is_Predefined_File_Name in the Units table. This avoids a lot
of repeated text processing.

2017-04-27  Emmanuel Briot  <briot@adacore.com>

* g-comlin.adb (Sort_Sections): remove useless test.

2017-04-27  Claire Dross  <dross@adacore.com>

* a-cfhase.adb, a-cfhase.ads (=): Generic parameter removed to
allow the use of regular equality over elements in contracts.
(Formal_Model): Ghost package containing model functions that are
used in subprogram contracts.
(Current_To_Last): Removed, model functions should be used instead.
(First_To_Previous): Removed, model functions should be used instead.
(Strict_Equal): Removed, model functions should be used instead.
(No_Overlap): Removed, model functions should be used instead.
(Equivalent_Keys): Functions over cursors are removed. They were
awkward with explicit container parameters.
* a-cforse.adb, a-cforse.ads (=): Generic parameter removed to
allow the use of regular equality over elements in contracts.
(Formal_Model): Ghost package containing model functions that
are used in subprogram contracts.
(Current_To_Last): Removed, model functions should be used instead.
(First_To_Previous): Removed, model functions should be used instead.
(Strict_Equal): Removed, model functions should be used instead.
(No_Overlap): Removed, model functions should be used instead.

2017-04-27  Yannick Moy  <moy@adacore.com>

* gnat1drv.adb: Code cleanup.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* exp_util.adb (Replace_Entity): The prefix of a 'Result
attribute reference in a post- condition is the subprogram to
which the condition applies. If the condition is inherited
by a type extension, the prefix becomes a reference to the
inherited operation, but there is no need to create a wrapper
for this operation, because 'Result is expanded independently
when elaborating the postconditions.

From-SVN: r247338

7 years agosinput.adb: Minor code cleanup.
Bob Duff [Thu, 27 Apr 2017 13:43:49 +0000 (13:43 +0000)]
sinput.adb: Minor code cleanup.

2017-04-27  Bob Duff  <duff@adacore.com>

* sinput.adb: Minor code cleanup.
* namet.adb (Append): Create faster versions of
Append(String) and Append(Name_Id) by using slice assignment
instead of loops.
* sem_util.adb (In_Instance): Speed this up by removing
unnecessary tests; Is_Generic_Instance is defined for all
entities.
* sem_util.ads, sem_util.adb (In_Parameter_Specification):
Remove unused function.
* alloc.ads (Nodes_Initial): Use a much larger value, because
the compiler was spending a lot of time copying the nodes table
when it grows. This number was chosen in 1996, so is rather out
of date with current memory sizes. Anyway, it's virtual memory.
Get rid of Orig_Nodes_...; use Node_... instead.
* atree.adb (Lock): Do not release the Nodes tables; it's a
waste of time.
Orig_Nodes_ ==> Nodes_
* nlists.adb: Orig_Nodes_ ==> Nodes_
* g-table.adb: Remove unused "with" clause.
* g-table.ads, table.ads: Remove Big_Table_Type, which should
not be used by clients.
* g-dyntab.adb (Last_Allocated): New function
to encapsulate T.P.Last_Allocated, which I'm thinking of changing.

From-SVN: r247335

7 years agore PR c++/80534 (7.1 RC - internal compiler error: in finish_member_declaration,...
Jakub Jelinek [Thu, 27 Apr 2017 13:42:37 +0000 (15:42 +0200)]
re PR c++/80534 (7.1 RC - internal compiler error: in finish_member_declaration, at cp/semantics.c:2963)

PR c++/80534
* tree.c (type_cache_hasher::equal): Only compare
TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
(build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
non-aggregate element types.
* tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
about the flag on ARRAY_TYPEs in the comment, formatting fix.
c-family/
* c-common.c (complete_array_type): Only hash TYPE_TYPELESS_STORAGE
flag on non-aggregate element types.
testsuite/
* g++.dg/other/pr80534-1.C: New test.
* g++.dg/other/pr80534-2.C: New test.

From-SVN: r247334

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 13:38:28 +0000 (15:38 +0200)]
[multiple changes]

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_eval.adb (Subtypes_Statically_Compatible): Remove duplicated
check.
(Subtypes_Statically_Match): Remove duplicate check.
* sem_prag.adb (Check_Arg_Is_External_Name): Remove duplicate check.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_aggr.adb (Replace_Type): Remove the special processing
for selected components.
* exp_attr.adb (Expand_N_Attribute_Reference): Merge the
processing for attributes Fixed_Value and Integer_Value.
* exp_util.adb (Side_Effect_Free): Merge the processing for
qualified expressions, type conversions, and unchecked type
conversions.
* g-comlin.adb (Is_In_Config): Merge the processing for No_Space
and Optional.
* par-ch3.adb (P_Declarative_Items): Merge the processing for
tokens function, not, overriding, and procedure.
* sem_ch6.adb (Fully_Conformant_Expressions): Merge the processing
for qualified expressions, type conversions, and unchecked
type conversions.
* sem_util.adb (Compile_Time_Constraint_Error): Merge the
processing for Ada 83 and instances.
(Object_Access_Level): Merge the processing for indexed components
and selected components.
* uname.adb (Add_Node_Name): Merge the processing for stubs.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb (Install_Primitive_Elaboration_Check):
Do not generate the check when restriction No_Elaboration_Code
is in effect.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* exp_disp.adb (Build_Class_Wide_Check): New subsidiary
of Expand_Dispatching_Call. If the denoted subprogram has a
class-wide precondition, this is the only precondition that
applies to the call, rather that the class-wide preconditions
that may apply to the body that is executed. (This is specified
in AI12-0195).

From-SVN: r247333

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 13:22:35 +0000 (15:22 +0200)]
[multiple changes]

2017-04-27  Yannick Moy  <moy@adacore.com>

* gnat1drv.adb (Adjust_Global_Switches): Issue
a warning in GNATprove mode if the runtime library does not
support IEEE-754 floats.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb (Inherit_Class_Wide_Pre): If the parent operation
is itself inherited it does not carry any contract information,
so examine its parent operation which is its Alias.

From-SVN: r247332

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 13:18:28 +0000 (15:18 +0200)]
[multiple changes]

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_attr.adb (Analyze_Attribute, case 'Image): In Ada2012 the
prefix can be an object reference in which case Obj'Image (X)
can only be interpreted as an indexing of the parameterless
version of the attribute.
* par-ch4.adb (P_Name): An attribute reference can be the prefix of
an indexing or a slice operation if the attribute does not require
parameters. In Ada2012 'Image also belongs in this category,
and A'Image (lo .. hi) is legal and must be parsed as a slice.

2017-04-27  Yannick Moy  <moy@adacore.com>

* exp_ch4.adb: Minor reformatting.
* gnat1drv.adb (Adjust_Global_Switches): When in GNATprove mode,
disable the CodePeer and C generation modes. Similar to the
opposite actions done in CodePeer mode.

From-SVN: r247331

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 13:15:40 +0000 (15:15 +0200)]
[multiple changes]

2017-04-27  Yannick Moy  <moy@adacore.com>

* sem_res.adb: Remove duplicate code.
* sem_attr.adb: Delete duplicate code.

2017-04-27  Bob Duff  <duff@adacore.com>

* g-dyntab.adb: Reduce the amount of copying in
Release. No need to copy items past Last.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb Add with and use clauses for Sem_Disp.
(Install_Primitive_Elaboration_Check): New routine.
* checks.ads (Install_Primitive_Elaboration_Check): New routine.
* exp_attr.adb (Expand_N_Attribute_Reference): Clean up the
processing of 'Elaborated.
* exp_ch6.adb (Expand_N_Subprogram_Body): Install a primitive
elaboration check.

From-SVN: r247330

7 years agog-dyntab.ads, [...]: Remove incorrect assertion.
Bob Duff [Thu, 27 Apr 2017 13:05:10 +0000 (13:05 +0000)]
g-dyntab.ads, [...]: Remove incorrect assertion.

2017-04-27  Bob Duff  <duff@adacore.com>

* g-dyntab.ads, g-dyntab.adb, g-table.ads: Remove incorrect assertion.
If the table grows and then shrinks back to empty, we won't necessarily
point back to the empty array. Code cleanups.
* sinput.ads: Add 'Base to Size clause to match the declared
component subtypes.

From-SVN: r247329

7 years agoa-cforma.adb, [...] (=): Generic parameter removed to allow the use of regular equali...
Claire Dross [Thu, 27 Apr 2017 12:55:29 +0000 (12:55 +0000)]
a-cforma.adb, [...] (=): Generic parameter removed to allow the use of regular equality over elements in...

2017-04-27  Claire Dross  <dross@adacore.com>

* a-cforma.adb, a-cforma.ads (=): Generic parameter removed to
allow the use of regular equality over elements in contracts.
(Formal_Model): Ghost package containing model functions that
are used in subprogram contracts.
(Current_To_Last): Removed, model functions should be used instead.
(First_To_Previous): Removed, model functions should be used instead.
(Strict_Equal): Removed, model functions should be used instead.
(No_Overlap): Removed, model functions should be used instead.
* a-cofuma.adb, a-cofuma.ads (Enable_Handling_Of_Equivalence)
Boolean generic parameter to disable contracts for equivalence
between keys.
(Witness): Create a witness of a key that is used for handling of
equivalence between keys.
(Has_Witness): Check whether a witness is contained in a map.
(W_Get): Get the element associated to a witness.
(Lift_Equivalent_Keys): Removed, equivalence between keys is handled
directly.
* a-cofuse.adb, a-cofuse.ads (Enable_Handling_Of_Equivalence)
Boolean generic parameter to disable contracts for equivalence
between keys.
* a-cfhama.adb, a-cfhama.ads (Formal_Model.P) Disable handling
of equivalence on functional maps.
* a-cfdlli.adb, a-cfdlli.ads (Formal_Model.P) Disable handling
of equivalence on functional maps.

From-SVN: r247328

7 years agore PR middle-end/80533 (Alias analysis of zero length array does not recognize access...
Richard Biener [Thu, 27 Apr 2017 12:34:45 +0000 (12:34 +0000)]
re PR middle-end/80533 (Alias analysis of zero length array does not recognize accesses beyond end of array)

2017-04-27  Richard Biener  <rguenther@suse.de>

PR middle-end/80533
* emit-rtl.c (set_mem_attributes_minus_bitpos): When
stripping ARRAY_REFs from MEM_EXPR make sure we're not
keeping a reference to a trailing array.

From-SVN: r247327

7 years agoexp_ch9.adb (Expand_Entry_Barrier): Code cleanup.
Hristian Kirtchev [Thu, 27 Apr 2017 12:18:31 +0000 (12:18 +0000)]
exp_ch9.adb (Expand_Entry_Barrier): Code cleanup.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch9.adb (Expand_Entry_Barrier): Code
cleanup. Do not perform the optimization which removes the
declarations of the discriminant and component renamings when
validity checks on operands and attributes are in effect.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_spark.adb, exp_util.adb, sem_ch7.adb, g-dyntab.adb, g-dyntab.ads,
freeze.adb, a-cfinve.ads, a-cofuma.adb, a-cofuma.ads, a-cfhama.adb,
a-cfhama.ads, a-cofove.ads: Minor reformatting.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* g-debpoo.adb (Dump_Gnatmem): Protect against a possible null
pointer dereference.
* g-spipat.adb (Dump): Code clean up. Protect against a possible
null pointer dereference.

From-SVN: r247326

7 years agog-dyntab.ads, [...]: Default for Table_Low_Bound.
Bob Duff [Thu, 27 Apr 2017 12:10:04 +0000 (12:10 +0000)]
g-dyntab.ads, [...]: Default for Table_Low_Bound.

2017-04-27  Bob Duff  <duff@adacore.com>

* g-dyntab.ads, g-dyntab.adb: Default for Table_Low_Bound.
Rename Empty --> Empty_Table_Ptr, and don't duplicate code for it.
Free renames Init, since they do the same thing.
* g-table.ads: Default for Table_Low_Bound.
* table.ads: Default for Table_Low_Bound, Table_Initial, and
Table_Increment.

From-SVN: r247324

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 12:09:11 +0000 (14:09 +0200)]
[multiple changes]

2017-04-27  Bob Duff  <duff@adacore.com>

* g-dyntab.ads, g-dyntab.adb: Add assertions to subprograms that
can reallocate.
* atree.adb, elists.adb, fname-uf.adb, ghost.adb, inline.adb,
* lib.adb, namet.adb, nlists.adb, sem.adb, sinput.adb, stringt.adb:
Reorder code so that above assertions do not fail.
* table.ads: Remove obsolete comment on Locked.

2017-04-27  Claire Dross  <dross@adacore.com>

* a-cfdlli.ads: Code cleanup.

2017-04-27  Yannick Moy  <moy@adacore.com>

* exp_spark.adb (Expand_SPARK_Freeze_Type): Build a DIC procedure
when needed for proof. (Expand_SPARK): Call the new procedure.
* exp_util.ads Fix typo.

2017-04-27  Gary Dismukes  <dismukes@adacore.com>

* a-cofuma.ads, a-cfhama.ads: Minor reformatting, grammar, and typo
fixes.

From-SVN: r247323

7 years agore PR middle-end/80539 (gcc ICE at -O2 and above on valid code on x86_64-linux-gnu...
Richard Biener [Thu, 27 Apr 2017 11:42:57 +0000 (11:42 +0000)]
re PR middle-end/80539 (gcc ICE at -O2 and above on valid code on x86_64-linux-gnu in "chrec_fold_plus_poly_poly")

2017-04-27  Richard Biener  <rguenther@suse.de>

PR middle-end/80539
* tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
being in loop-closed SSA form conservatively.
(chrec_fold_multiply_poly_poly): Likewise.

* gcc.dg/torture/pr80539.c: New testcase.

From-SVN: r247322

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 11:01:32 +0000 (13:01 +0200)]
[multiple changes]

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_elab.adb Add new type Visited_Element
and update the contents of table Elab_Visited. Various code clean up.
(Check_Elab_Call): Determine whether a prior call to
the same subprogram was already examined within the same context.
(Check_Internal_Call_Continue): Register the subprogram being
called as examined within a particular context. Do not suppress
elaboration warnings.

2017-04-27  Gary Dismukes  <dismukes@adacore.com>

* xoscons.adb, osint.ads: Minor reformatting.

2017-04-27  Bob Duff  <duff@adacore.com>

* g-dyntab.ads, g-dyntab.adb: Misc cleanup. Rename
Table_Count_Type --> Table_Last_Type, because the name
was confusing (a "count" usually starts at zero).  Add
functionality supported or needed by other tables packages
(Move, Release_Threshold).
* g-table.ads, g-table.adb: This is now just a thin wrapper
around g-dyntab.ads/g-dyntab.adb.  Add functionality supported
or needed by other tables packages (Save, Restore).
* table.ads, table.adb: This is now just a thin wrapper around
* g-table.ads/g-table.adb.
* namet.h, scos.h, uintp.h: These files are reaching into the
private data of some instances of g-table, whose names changed,
so the above change requires some adjustment here. It now uses
public interfaces.

2017-04-27  Bob Duff  <duff@adacore.com>

* namet.adb, namet.ads: Minor: remove unused procedures.

2017-04-27  Eric Botcazou  <ebotcazou@adacore.com>

* checks.adb (Apply_Scalar_Range_Check): Initialize Ok variable too.
(Minimize_Eliminate_Overflows): Initialize Llo and Lhi.
Add pragma Warnings on Rtype variable in nested block. *
* exp_ch3.adb (Build_Init_Statements): Initialize VAR_LOC.
* exp_ch4.adb (Expand_Concatenate): Initialize 3 variables.
(Size_In_Storage_Elements): Add pragma Warnings on Res variable.
* exp_ch7.adb (Build_Adjust_Statements): Initialize Bod_Stmts.
(Process_Component_List_For_Finalize): Initialize Counter_Id.
(Build_Finalize_Statements): Initialize Bod_Stmts.
* exp_disp.adb (Expand_Dispatching_Call): Initialize SCIL_Node.

2017-04-27  Claire Dross  <dross@adacore.com>

* a-cfhama.adb, a-cfhamai.ads (=): Generic parameter removed to
allow the use of regular equality over elements in contracts.
(Formal_Model): Ghost package containing model functions that are
used in subprogram contracts.
(Current_To_Last): Removed, model
functions should be used instead.
(First_To_Previous): Removed, model functions should be used instead.
(Strict_Equal): Removed, model functions should be used instead.
(No_Overlap): Removed, model functions should be used instead.
(Equivalent_Keys): Functions over cursors are removed. They were
awkward with explicit container parameters.
* a-cofuma.adb, a-cofuma.ads (Lift_Equivalent_Keys): New lemma
(proof only) procedure to help GNATprove when equivalence over
keys is not equality.

From-SVN: r247320

7 years agoexp_util.adb, [...]: Minor reformatting and code cleanups.
Hristian Kirtchev [Thu, 27 Apr 2017 10:58:25 +0000 (10:58 +0000)]
exp_util.adb, [...]: Minor reformatting and code cleanups.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_util.adb, a-cfdlli.adb, a-cfdlli.ads, exp_ch9.adb, g-dyntab.adb,
sem_dim.adb, a-cfinve.adb, a-cfinve.ads, a-cofove.adb, a-cofove.ads:
Minor reformatting and code cleanups.

From-SVN: r247319

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 10:56:46 +0000 (12:56 +0200)]
[multiple changes]

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* freeze.adb (Build_Inherited_Condition_Pragmas): New procedure,
subsidiary of Check_Inherited_Conditions, to build pragmas for an
operation whose ancestor has classwide pre/postconditions. This
is used both to check the legality of the inheritance in Ada
and in SPARK, and to determine whether a wrapper is needed for
an inherited operation.
* exp_util.adb (Build_Class_Wide_Expression, Replace_Entity):
Improve placement of error message for inherited classwide
conditions that become illegal on type derivation.

2017-04-27  Yannick Moy  <moy@adacore.com>

* sem_ch12.adb (Analyze_Generic_Package_Declaration): Set
SPARK_Mode from context on generic package.
* sem_ch7.adb (Analyze_Package_Declaration): Simplify code to remove
useless test.

2017-04-27  Claire Dross  <dross@adacore.com>

* a-cofuve.ads (Range_Shifted): Rewrite precondition to avoid
overflows in computations.
* a-cofove.ads (Capacity_Range): Rewrite last bound to avoid
overflows in computations.
(Insert): Rewrite precondition to avoid overflows in computations.
* a-cfinve.ads (Capacity_Range): Rewrite last bound to avoid
overflows in computations.
(Insert): Rewrite precondition to avoid overflows in computations.

From-SVN: r247318

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 10:55:17 +0000 (12:55 +0200)]
[multiple changes]

2017-04-27  Steve Baird  <baird@adacore.com>

* exp_ch9.adb (Expand_N_Asynchronous_Select): Initialize the Cancel
flag when it is declared in order to avoid confusing CodePeer about
the possibility of an uninitialized variable read.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_dim.adb (Analyze_Dimension_Object_Declaration): There is
no dimensionality error if the subtype of the expression is
identical to the nominal subtype in the declaration, even though
the expression itself may have been constant-folded and lack a
dimension vector.
* sem_dim.ads: Add comments on setting of dimension vectors and
its interaction with node rewritings and side-effect removal.

2017-04-27  Bob Duff  <duff@adacore.com>

* debug.adb: Minor comment correction.
* sem_dim.ads: Minor reformatting and typo fixes.

2017-04-27  Bob Duff  <duff@adacore.com>

* g-table.adb, g-table.adsa, scos.h: From the C side, access First and
Last of the tables via function calls, rather than relying on layout
of data structures.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* exp_util.adb: No wrapper in GNATprove mode.

2017-04-27  Yannick Moy  <moy@adacore.com>

* sem_res.adb (Resolve_Comparison_Op): Always
evaluate comparisons between values of universal types.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_elab.adb (Check_Internal_Call_Continue): Do not generate
an elaboration counter nor a check when in GNATprove mode.
* sem_util.adb (Build_Elaboration_Entity): Do not create an
elaboration counter when in GNATprove mode.

From-SVN: r247317

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 10:52:44 +0000 (12:52 +0200)]
[multiple changes]

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* freeze.adb: copy-paste typo.

2017-04-27  Yannick Moy  <moy@adacore.com>

* sem_prag.adb (Analyze_Pre_Post_In_Decl_Part):
Use correct test to detect call in GNATprove mode instead of
compilation.

2017-04-27  Claire Dross  <dross@adacore.com>

* a-cfdlli.adb, a-cfdlli.ads (Formal_Model.M_Elements_In_Union):
New property function expressing that the element of a
sequence are contained in the union of two sequences.
(Formal_Model.M_Elements_Included): New property function
expressing that the element of a sequence are another sequence.
(Generic_Sorting): Use new property functions to state that
elements are preserved by Sort and Merge.
* a-cofove.adb, a-cofove.ads (=): Generic parameter removed to
allow the use of regular equality over elements in contracts.
(Formal_Model): Ghost package containing model functions
that are used in subprogram contracts. (Capacity):
On unbounded containers, return the maximal capacity.
(Current_To_Last): Removed, model functions should be used instead.
(First_To_Previous): Removed, model functions should be used instead.
(Append): Default parameter value replaced
by new wrapper to allow more precise contracts.
(Insert): Subprogram restored, it seems it was useful to users even if
it is inefficient.
(Delete): Subprogram restored, it seems it was useful to users even if
it is inefficient.
(Prepend): Subprogram restored, it seems it was useful to users even
if it is inefficient.
(Delete_First): Subprogram restored, it seems it
was useful to users even if it is inefficient. (Delete_Last):
Default parameter value replaced by new wrapper to allow more
precise contracts.
(Generic_Sorting.Merge): Subprogram restored.
* a-cfinve.adb, a-cfinve.ads (=): Generic parameter removed to
allow the use of regular equality over elements in contracts.
(Formal_Model): Ghost package containing model functions
that are used in subprogram contracts. (Capacity):
On unbounded containers, return the maximal capacity.
(Current_To_Last): Removed, model functions should be used
instead.
(First_To_Previous): Removed, model functions should be used instead.
(Append): Default parameter value replaced
by new wrapper to allow more precise contracts.
(Insert): Subprogram restored, it seems it was useful to users even if
it is inefficient.
(Delete): Subprogram restored, it seems it was useful to users even if
it is inefficient.
(Prepend): Subprogram restored, it seems it was useful to users even
if it is inefficient.
(Delete_First): Subprogram restored, it seems it
was useful to users even if it is inefficient. (Delete_Last):
Default parameter value replaced by new wrapper to allow more
precise contracts.
(Generic_Sorting.Merge): Subprogram restored.
(Vector): Do not reuse formal vectors, as it is no longer possible
to supply them with an equality function over elements.

2017-04-27  Bob Duff  <duff@adacore.com>

* g-dyntab.adb (Release): When allocating the new
table, use the correct slice of the old table to initialize it.

From-SVN: r247316

7 years agoeinfo.ads: Minor fixes in comments.
Arnaud Charlet [Thu, 27 Apr 2017 10:32:23 +0000 (12:32 +0200)]
einfo.ads: Minor fixes in comments.

* einfo.ads: Minor fixes in comments.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb: disable clones in SPARK_Mode.

2017-04-27  Gary Dismukes  <dismukes@adacore.com>

* sem_util.ads, contracts.adb: Minor reformatting.

From-SVN: r247315

7 years agoMinor reformatting.
Arnaud Charlet [Thu, 27 Apr 2017 10:20:52 +0000 (12:20 +0200)]
Minor reformatting.

From-SVN: r247314

7 years agosem_util.adb, [...] (Build_Class_Wide_Clone_Body): Build body of subprogram that...
Ed Schonberg [Thu, 27 Apr 2017 10:20:36 +0000 (10:20 +0000)]
sem_util.adb, [...] (Build_Class_Wide_Clone_Body): Build body of subprogram that has a class-wide condition that contains calls to...

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_util.adb, sem_util.ads (Build_Class_Wide_Clone_Body):
Build body of subprogram that has a class-wide condition that
contains calls to other primitives.
(Build_Class_Wide_Clone_Call); Build a call to the common
class-wide clone of a subprogram with classwide conditions. The
body of the subprogram becomes a wrapper for a call to the
clone. The inherited operation becomes a similar wrapper to which
modified conditions apply, and the call to the clone includes
the proper conversion in a call the parent operation.
(Build_Class_Wide_Clone_Decl (Spec_Id : Entity_Id): For a
subprogram that has a classwide condition that contains calls to
other primitives, build an internal subprogram that is invoked
through a type-specific wrapper for all inherited subprograms
that may have a modified condition.
* sem_prag.adb (Check_References): If subprogram has a classwide
condition, create entity for corresponding clone, to be invoked
through wrapper subprograns.
(Analyze_Pre_Post_Condition_In_Decl_Part): Do not emit error
message about placement if pragma isi internally generated.
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): If subprogram has
a classwide clone, build body of clone as copy of original body,
and rewrite original body as a wrapper as a wrapper for a call to
the clone, so that it incorporates the original pre/postconditions
of the subprogram.
* freeze.adb (Check_Inherited_Conditions): For an inherited
subprogram that inherits a classwide condition, build spec and
body of corresponding wrapper so that call to inherited operation
gets the modified conditions.
* contracts.adb (Analyze_Contracts): If analysis of classwide
condition has created a clone for a primitive operation, analyze
declaration of clone.

From-SVN: r247313

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 10:17:42 +0000 (12:17 +0200)]
[multiple changes]

2017-04-27  Steve Baird  <baird@adacore.com>

* exp_util.adb (Build_Allocate_Deallocate_Proc):
Add "Suppress => All_Checks" to avoid generating unnecessary
checks.

2017-04-27  Yannick Moy  <moy@adacore.com>

* debug.adb: Reserve debug flag 'm' for no inlining in GNATprove.
* sem_ch6.adb (Anayze_Subprogram_Body_Helper): Skip creation of
inlining body in GNATprove mode when switch -gnatdm used.
* sem_res.adb (Resolve_Call): Skip detection of lack of inlining
in GNATprove mode when switch -gnatdm used.

2017-04-27  Arnaud Charlet  <charlet@adacore.com>

* sem_ch13.adb (Analyze_Attribute_Definition_Clause
[Attribute_Address]): Call Set_Address_Taken when ignoring rep
clauses, so that we keep an indication of the address clause
before removing it from the tree.

From-SVN: r247312

7 years agoexp_util.ads, [...] (Evaluate_Name): Force evaluation of expression being qualified...
Yannick Moy [Thu, 27 Apr 2017 10:14:56 +0000 (10:14 +0000)]
exp_util.ads, [...] (Evaluate_Name): Force evaluation of expression being qualified...

2017-04-27  Yannick Moy  <moy@adacore.com>

* exp_util.ads, exp_util.adb (Evaluate_Name): Force evaluation
of expression being qualified, when not an object name, or else
evaluate the underlying name.

From-SVN: r247311

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 10:12:12 +0000 (12:12 +0200)]
[multiple changes]

2017-04-27  Jerome Lambourg  <lambourg@adacore.com>

* bindusg.adb, bindgen.adb, gnatbind.adb, opt.ads: add -nognarl switch.

2017-04-27  Justin Squirek  <squirek@adacore.com>

* exp_ch7.adb (Build_Finalize_Statements): Move Num_Comps to
Process_Component_List_For_Finalization as a local variable.
(Process_Component_For_Finalize): Add an extra parameter to avoid
global references.
(Process_Component_List_For_Finalization): Correct calls to
Process_Component_For_Finalize to take Num_Comps as a parameter.

From-SVN: r247310

7 years ago[multiple changes]
Arnaud Charlet [Thu, 27 Apr 2017 10:00:42 +0000 (12:00 +0200)]
[multiple changes]

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch8.adb (Find_Direct_Name): Account for the case where
a use-visible entity is defined within a nested scope of an
instance when giving priority to entities which were visible in
the original generic.
* sem_util.ads, sem_util.adb (Nearest_Enclosing_Instance): New routine.

2017-04-27  Tristan Gingold  <gingold@adacore.com>

* raise-gcc.c: Don't use unwind.h while compiling
for the frontend, but mimic host behavior.

2017-04-27  Javier Miranda  <miranda@adacore.com>

* sem_ch3.adb (Build_Discriminated_Subtype):
Propagate Has_Pragma_Unreferenced_Objects to the built subtype.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_prag.adb (Analyze_Global_Item):
Do not consider discriminants because they are not "entire
objects". Remove the discriminant-related checks because they are
obsolete.
(Analyze_Input_Output): Do not consider discriminants
because they are not "entire objects".

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Do not
perform check if the current scope does not come from source,
as is the case for a rewritten task body, because check has
been performed already, and may not be doable because of changed
visibility.

From-SVN: r247309