gcc.git
7 years agoFix formating.
Andrew Pinski [Mon, 9 Jan 2017 18:51:40 +0000 (10:51 -0800)]
Fix formating.

From-SVN: r244234

7 years ago[PR 78365] Prudent type handling in IPA VR-prop
Martin Jambor [Mon, 9 Jan 2017 18:26:37 +0000 (19:26 +0100)]
[PR 78365] Prudent type handling in IPA VR-prop

2017-01-09  Martin Jambor  <mjambor@suse.cz>

PR ipa/78365
PR ipa/78599
* ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
* ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
(propagate_vr_accross_jump_function): Use the above function for all
value range computations for pass-through jump functions and type
converasion from explicit value range values.
        (ipcp_propagate_stage): Do not attempt to deduce types of formal
        parameters from TYPE_ARG_TYPES.
* ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
(ipa_write_node_info): Stream type of the actual argument.
(ipa_read_node_info): Likewise. Also remove trailing whitespace.

testsuite/
* gcc.dg/torture/pr78365.c: New test.

From-SVN: r244232

7 years agoPR79017 workaround incomplete C99 math on darwin
Jonathan Wakely [Mon, 9 Jan 2017 17:15:58 +0000 (17:15 +0000)]
PR79017 workaround incomplete C99 math on darwin

PR libstdc++/79017
* acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
functions separately on darwin and if they're missing define
_GLIBCXX_NO_C99_ROUNDING_FUNCS.
* config.h.in: Regenerate.
* configure: Regenerate.
* include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
(llrintf, llrintl, llround, llroundf, llroundl): Do not define.

From-SVN: r244231

7 years ago* vi.po: Update.
Joseph Myers [Mon, 9 Jan 2017 16:55:06 +0000 (16:55 +0000)]
* vi.po: Update.

From-SVN: r244230

7 years ago* da.po, es.po, sv.po, vi.po: Update.
Joseph Myers [Mon, 9 Jan 2017 16:54:40 +0000 (16:54 +0000)]
* da.po, es.po, sv.po, vi.po: Update.

From-SVN: r244229

7 years agore PR c++/78948 ([C++17] constexpr if instantiating too eagerly)
Jakub Jelinek [Mon, 9 Jan 2017 16:24:19 +0000 (17:24 +0100)]
re PR c++/78948 ([C++17] constexpr if instantiating too eagerly)

PR c++/78948
* g++.dg/cpp1z/constexpr-if10.C: Fix PR number in comment.
(main): Use int* instead of long long.

From-SVN: r244228

7 years agoDo not error when -E provided (PR pch/78970).
Martin Liska [Mon, 9 Jan 2017 15:24:35 +0000 (16:24 +0100)]
Do not error when -E provided (PR pch/78970).

2017-01-09  Martin Liska  <mliska@suse.cz>

PR pch/78970
* gcc.c (driver_handle_option): Handle OPT_E and set
have_E.
(lookup_compiler): Do not show error message with have_E.

From-SVN: r244227

7 years agoDefine testsuite macro for correct thread_local destructors
Jonathan Wakely [Mon, 9 Jan 2017 13:06:03 +0000 (13:06 +0000)]
Define testsuite macro for correct thread_local destructors

* testsuite/30_threads/condition_variable/members/3.cc: Use new macro
to detect correct thread_local destructors.
* testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS):
Define.

From-SVN: r244226

7 years agoPR66414 optimize std::string::find
Jonathan Wakely [Mon, 9 Jan 2017 13:05:58 +0000 (13:05 +0000)]
PR66414 optimize std::string::find

2017-01-09  Jonathan Wakely  <jwakely@redhat.com>
    Aditya Kumar  <hiraditya@msn.com>

PR libstdc++/66414
* include/bits/basic_string.tcc
(basic_string::find(const CharT*, size_type, size_type)): Optimize.

Co-Authored-By: Aditya Kumar <hiraditya@msn.com>
From-SVN: r244225

7 years agoeinfo.ads, einfo.adb: Remove uses of flags Has_Default_Init_Cond...
Hristian Kirtchev [Mon, 9 Jan 2017 12:03:27 +0000 (12:03 +0000)]
einfo.ads, einfo.adb: Remove uses of flags Has_Default_Init_Cond...

2017-01-09  Hristian Kirtchev  <kirtchev@adacore.com>

* einfo.ads, einfo.adb: Remove uses of flags Has_Default_Init_Cond,
Is_Default_Init_Cond_Procedure, and
Has_Inherited_Default_Init_Cond.  Add uses of flags
Has_Own_DIC, Is_DIC_Procedure, and Has_Inherited_DIC.
(Default_Init_Cond_Procedure): Removed.
(DIC_Procedure): New routine.
(Has_Default_Init_Cond): Removed.
(Has_DIC): New routine.
(Has_Inheritable_Invariants): The attribute applies to the base type.
(Has_Inherited_Default_Init_Cond): Removed.
(Has_Inherited_DIC): New routine.
(Has_Inherited_Invariants): The attribute applies to the base type.
(Has_Own_DIC): New routine.
(Has_Own_Invariants): The attribute applies to the base type.
(Is_Default_Init_Cond_Procedure): Removed.
(Is_DIC_Procedure): New routine.
(Set_Default_Init_Cond_Procedure): Removed.
(Set_DIC_Procedure): New routine.
(Set_Has_Default_Init_Cond): Removed.
(Set_Has_Inheritable_Invariants): The attribute applies
to the base type.
(Set_Has_Inherited_Default_Init_Cond): Removed.
(Set_Has_Inherited_DIC): New routine.
(Set_Has_Inherited_Invariants): The attribute applies to the base type.
(Set_Has_Own_DIC): New routine.
(Set_Has_Own_Invariants): The attribute applies to the base type.
(Set_Is_Default_Init_Cond_Procedure): Removed.
(Set_Is_DIC_Procedure): New routine.
(Write_Entity_Flags): Update the output of all flags related to
default initial condition.
* exp_ch3.adb (Expand_N_Object_Declaration): Update the generation
of the call to the DIC procedure.
(Freeze_Type): Generate the body of the DIC procedure.
* exp_ch7.adb (Build_Invariant_Procedure_Body): Replace
all occurrences of Create_Append with Append_New_To. Do
not generate an invariant procedure for a class-wide type.
The generated body acts as a freeze action of the working type.
(Build_Invariant_Procedure_Declaration): Do not generate an
invariant procedure for a class-wide type.
(Create_Append): Removed.
* exp_util.adb: Add with and use clauses for Sem_Ch3, sem_ch6,
sem_Ch12, Sem_Disp, and GNAT.HTable. Move the handling of
class-wide pre/postcondition description and data structures from
Sem_Prag.
(Build_Class_Wide_Expression): Moved from Sem_Prag.
(Build_DIC_Call): New routine.
(Build_DIC_Procedure_Body): New routine.
(Build_DIC_Procedure_Declaration): New routine.
(Entity_Hash): Moved from Sem_Prag.
(Find_DIC_Type): New routine.
(Update_Primitives_Mapping): Reimplemented.
(Update_Primitives_Mapping_Of_Types): New routine.
* exp_util.ads (Build_Class_Wide_Expression): Moved from Sem_Prag.
(Build_DIC_Call): New routine.
(Build_DIC_Procedure_Body): New routine.
(Build_DIC_Procedure_Declaration): New routine.
(Update_Primitives_Mapping): Moved from Sem_Prag.
(Update_Primitives_Mapping_Of_Types): New routine.
* nlists.adb (Append_New): New routine.
(Append_New_To): New routine.
* nlists.ads (Append_New): New routine.
(Append_New_To): New routine.
* sem_ch3.adb (Analyze_Declarations): Do not generate the bodies
of DIC procedures here. This is now done at the end of the
visible declarations, private declarations, and at the freeze
point of a type.
(Analyze_Private_Extension_Declaration):
A private extension inherits the DIC pragma of a parent type.
(Analyze_Subtype_Declaration): No need to propagate invariant
attributes to a subtype as those apply to the base type.
(Build_Derived_Record_Type): No need to inherit invariants here
as this is now done in Build_Derived_Type.
(Build_Derived_Type): Inherit both the DIC pragma and invariants from
a parent type.
(Process_Full_View): Update the propagation of DIC attributes.
(Propagate_Default_Init_Cond_Attributes): Removed.
* sem_ch7.adb Add with and use clauses for Exp_Util.
(Analyze_Package_Specification): Create the body of the DIC
procedure at the end of the visible and private declarations.
(Preserve_Full_Attributes): Propagate DIC attributes.
* sem_ch9.adb (Analyze_Protected_Type_Declaration): Propagate
DIC attributes.
(Analyze_Task_Type_Declaration): Propagate DIC attributes.
* sem_elab.adb (Check_A_Call): Update the call to
Is_Nontrivial_Default_Init_Cond_Procedure.
* sem_prag.adb Remove the with and use clauses for
GNAT.HTable. Move the handling of class- wide pre/postcondition
description and data structures to Exp_Util.
(Analyze_Pragma): Create the declaration of the DIC procedure. There
is no need to propagate invariant-related attributes at this point
as this is done in Build_Invariant_Procedure_Declaration.
(Build_Class_Wide_Expression): Moved to Exp_Util.
(Entity_Hash): Moved to Exp_Util.
(Update_Primitives_Mapping): Moved to Exp_Util.
* sem_prag.ads (Build_Class_Wide_Expression): Moved to Exp_Util.
(Update_Primitives_Mapping): Moved to Exp_Util.
* sem_util.adb: Remove with and use clauses for Ghost
and Sem_Ch13.
(Build_Default_Init_Cond_Call): Removed.
(Build_Default_Init_Cond_Procedure_Bodies): Removed.
(Build_Default_Init_Cond_Procedure_Declaration): Removed.
(Get_Views): Reimplemented.
(Has_Full_Default_Initialization): Reimplement the section on DIC.
(Inherit_Default_Init_Cond_Procedure): Removed.
(Is_Nontrivial_Default_Init_Cond_Procedure): Removed.
(Is_Nontrivial_DIC_Procedure): New routine.
(Is_Verifiable_DIC_Pragma): New routine.
(Propagate_DIC_Attributes): New routine.
* sem_util.ads (Build_Default_Init_Cond_Call): Removed.
(Build_Default_Init_Cond_Procedure_Bodies): Removed.
(Build_Default_Init_Cond_Procedure_Declaration): Removed.
(Inherit_Default_Init_Cond_Procedure): Removed.
(Is_Nontrivial_Default_Init_Cond_Procedure): Removed.
(Is_Nontrivial_DIC_Procedure): New routine.
(Is_Verifiable_DIC_Pragma): New routine.
(Propagate_DIC_Attributes): New routine.
* sem_warn.adb (Is_OK_Fully_Initialized): Reimplement the section
on DIC.
* sinfo.ads, sinfo.adb: Add new attribute Expression_Copy along with
usage in nodes.
(Expression_Copy): New routine along with pragma Inline.
(Set_Expression_Copy): New routine along with pragma Inline.

From-SVN: r244224

7 years agore PR tree-optimization/78938 (ICE in expand_vec_cond_expr, at optabs.c:5636 w/ ...
Jakub Jelinek [Mon, 9 Jan 2017 11:44:52 +0000 (12:44 +0100)]
re PR tree-optimization/78938 (ICE in expand_vec_cond_expr, at optabs.c:5636 w/ -mavx512bw -ftree-loop-vectorize -O1)

PR tree-optimization/78938
* tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
{EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
fixes.

* gcc.dg/vect/pr78938.c: New test.

From-SVN: r244223

7 years ago[tree-ssa-address] Avoid creating non-canonical RTL in gen_addr_rtx
Kyrylo Tkachov [Mon, 9 Jan 2017 09:42:10 +0000 (09:42 +0000)]
[tree-ssa-address] Avoid creating non-canonical RTL in gen_addr_rtx

* tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
is const0_rtx.

* gcc.dg/20161219.c: New test.

From-SVN: r244219

7 years agore PR tree-optimization/78997 (ICE on valid code at -O3 on x86_64-linux-gnu: verify_g...
Richard Biener [Mon, 9 Jan 2017 08:25:13 +0000 (08:25 +0000)]
re PR tree-optimization/78997 (ICE on valid code at -O3 on x86_64-linux-gnu: verify_gimple failed)

2017-01-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/78997
* tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
name condition properly.

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

From-SVN: r244218

7 years agore PR debug/79000 (ICE: in gen_member_die, at dwarf2out.c:23995)
Richard Biener [Mon, 9 Jan 2017 08:22:58 +0000 (08:22 +0000)]
re PR debug/79000 (ICE: in gen_member_die, at dwarf2out.c:23995)

2017-01-09  Richard Biener  <rguenther@suse.de>

PR debug/79000
* dwarf2out.c (is_cxx): New overload with context.
(is_naming_typedef_decl): Use it.

* g++.dg/lto/pr79000_0.C: New testcase.
* g++.dg/lto/pr79000_1.c: Likewise.

From-SVN: r244217

7 years agoinvoke.texi (Option Summary): Correct spacing in option lists and add line breaks...
Sandra Loosemore [Mon, 9 Jan 2017 06:43:18 +0000 (01:43 -0500)]
invoke.texi (Option Summary): Correct spacing in option lists and add line breaks to fix over-long lines.

2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* invoke.texi (Option Summary): Correct spacing in option lists
and add line breaks to fix over-long lines.

From-SVN: r244216

7 years agore PR middle-end/17660 (manual's description of __attribute__((mode)) is poor, arrang...
Sandra Loosemore [Mon, 9 Jan 2017 03:06:23 +0000 (22:06 -0500)]
re PR middle-end/17660 (manual's description of __attribute__((mode)) is poor, arrangement is confusing)

2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>

PR middle-end/17660

gcc/
* extend.texi (Common Variable Attributes): Add xref to GCC
Internals manual to explain mode attribute keywords.

From-SVN: r244215

7 years agore PR other/16519 (-pthread undocumented)
Sandra Loosemore [Mon, 9 Jan 2017 02:39:24 +0000 (21:39 -0500)]
re PR other/16519 (-pthread undocumented)

2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>

PR other/16519

gcc/
* doc/invoke.texi (Option Summary): Move -pthread to Linker Options
and Preprocessor Options.
(Options for Linking): Document -pthread here....
(RS/6000 and PowerPC Options): ...not here.
(Solaris 2 Options): ...or here.
* doc/cppopts.texi: Document -pthread.

From-SVN: r244214

7 years agoDaily bump.
GCC Administrator [Mon, 9 Jan 2017 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r244213

7 years agoPR tree-optimization/78913 - Probably misleading error reported by -Wformat-length
Martin Sebor [Sun, 8 Jan 2017 23:42:09 +0000 (23:42 +0000)]
PR tree-optimization/78913 - Probably misleading error reported by -Wformat-length

PR tree-optimization/78913 - Probably misleading error reported by -Wformat-length
PR middle-end/77708 - -Wformat-length %s warns for snprintf

gcc/ChangeLog:

PR middle-end/77708
* doc/invoke.texi (Warning Options): Document -Wformat-truncation.
* gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
New member functions.
(format_directive): Used them.
(add_bytes): Same.
(pass_sprintf_length::handle_gimple_call): Same.
* graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
to avoid truncation for any argument.
(extract_affine_mul): Same.
* tree.c (get_file_function_name): Same.

gcc/c-family/ChangeLog:

PR middle-end/77708
* c.opt (-Wformat-truncation): New option.

gcc/fortran/ChangeLog:

PR tree-optimization/78913
PR middle-end/77708
* trans-common.c (build_equiv_decl): Increase buffer size to avoid
truncation for any argument.
* trans-types.c (gfc_build_logical_type): Same.

gcc/testsuite/ChangeLog:

PR middle-end/77708
* gcc.dg/tree-ssa/builtin-snprintf-warn-1.c: New test.
* gcc.dg/tree-ssa/builtin-snprintf-warn-2.c: New test.
* gcc.dg/tree-ssa/builtin-sprintf-warn-6.c: XFAIL test cases failing
due to bug 78969.
* gcc.dg/format/pr78569.c: Adjust.

From-SVN: r244210

7 years ago* download_ecj: Remove.
Gerald Pfeifer [Sun, 8 Jan 2017 17:50:21 +0000 (17:50 +0000)]
* download_ecj: Remove.

From-SVN: r244209

7 years agore PR rtl-optimization/79003 (r238991 breaks ODR)
Jakub Jelinek [Sun, 8 Jan 2017 16:43:30 +0000 (17:43 +0100)]
re PR rtl-optimization/79003 (r238991 breaks ODR)

PR bootstrap/79003
* Makefile.in (CFLAGS, CPPFLAGS, LDFLAGS): Remove -fno-lto.
(NOLTO_FLAGS): New variable.
(ALL_CFLAGS): Use it.
* configure.ac (nolto_flags): New ACX_PROG_CC_WARNING_OPTS,
check for whether -fno-lto works.
* configure: Regenerated.

From-SVN: r244208

7 years agore PR middle-end/77484 (Static branch predictor causes ~6-8% regression of SPEC2000...
Jan Hubicka [Sun, 8 Jan 2017 09:53:06 +0000 (10:53 +0100)]
re PR middle-end/77484 (Static branch predictor causes ~6-8% regression of SPEC2000 GAP)

PR middle-end/77484
* predict.def (PRED_INDIR_CALL): Set to 86.

From-SVN: r244207

7 years agoPR c++/78948 - instantiation from discarded statement
Jason Merrill [Sun, 8 Jan 2017 06:36:10 +0000 (01:36 -0500)]
PR c++/78948 - instantiation from discarded statement

PR c++/78948 - instantiation from discarded statement
* parser.h (struct cp_parser): Remove in_discarded_stmt field.
* cp-tree.h (in_discarded_stmt): Declare it.
(struct saved_scope): Add discarded_stmt bitfield.
(in_discarded_stmt): New macro.
* decl2.c (mark_used): Check it.
* parser.c (cp_parser_selection_statement): Adjust.
(cp_parser_jump_statement): Adjust.

From-SVN: r244206

7 years agore PR preprocessor/54124 (GCC 4.7.1 manual: -dM and similar options hard to find)
Sandra Loosemore [Sun, 8 Jan 2017 01:42:26 +0000 (20:42 -0500)]
re PR preprocessor/54124 (GCC 4.7.1 manual:  -dM and similar options hard to find)

2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>

PR preprocessor/54124

gcc/
* doc/cppopts.texi: Reformat -d subtable to list the full name
of the options.  Add cross-reference to the docs for the general
compiler -d options.
* doc/invoke.texi (Developer Options): Add cross-reference to the
preprocessor-specific -d option documentation.

From-SVN: r244205

7 years agoDaily bump.
GCC Administrator [Sun, 8 Jan 2017 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r244204

7 years agore PR preprocessor/13498 (CPP include search path documentation is incorrect)
Sandra Loosemore [Sat, 7 Jan 2017 22:46:13 +0000 (17:46 -0500)]
re PR preprocessor/13498 (CPP include search path documentation is incorrect)

2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>

PR preprocessor/13498

gcc/
* doc/cpp.texi (Search Path): Rewrite to remove obsolete and
redudant material, and reflect new command-line options.
(System Headers): Likewise.

From-SVN: r244201

7 years agocppdiropts.texi: Merge documentation of -I, -iquote, -isystem, and -idirafter.
Sandra Loosemore [Sat, 7 Jan 2017 22:37:55 +0000 (17:37 -0500)]
cppdiropts.texi: Merge documentation of -I, -iquote, -isystem, and -idirafter.

2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* doc/cppdiropts.texi: Merge documentation of -I, -iquote,
-isystem, and -idirafter.  Copy-edit.
* doc/cppopts.texi: Copy-edit.  Remove contradiction about
default for -ftrack-macro-expansion.  Delete obsolete and
badly-formatted implementation details about -fdebug-cpp output.
* doc/cppwarnopts.texi: Copy-edit.

From-SVN: r244200

7 years agoFix linemap corruption after very wide source lines (PR c++/72803)
David Malcolm [Sat, 7 Jan 2017 21:33:59 +0000 (21:33 +0000)]
Fix linemap corruption after very wide source lines (PR c++/72803)

PR c++/72803 describes an issue where a fix-it hint is to be emitted at
column 512 of a 511-column source line, leading to an ICE.

The root cause is a bug in linemap_line_start, when transitioning from
lines >= 512 in width to narrow lines.

The wide line in the reproducer has a line map with:
  m_column_and_range_bits = 15, m_range_bits = 5
giving 10 effective bits for representing columns, so that columns <= 1023
can be represented.

When parsing the following line,
  linemap_line_start (..., ..., max_column_hint=0);
is called.  This leads to the "add_map" logic, due to this condition:
      || (max_column_hint <= 80 && effective_column_bits >= 10)
i.e. the new line is sufficiently narrower than the old one to
potentially use a new linemap (so as to conserve values within the
location_t space).

It then attempts to avoid allocating a new line map.  Part of the logic
to determine if we really need a new line map is this condition:
   SOURCE_COLUMN (map, highest) >= (1U << column_bits)
The above condition is incorrect: we need to determine if the highest
column we've handed out will fit within the proposed *effective* column
bits, but "column_bits" here is the column plus the range bits, rather
than just the column bits.

Hence in this case linemap_line_start erroneously decides that we don't
need a new line map, and updates the column bits within the existing
line map, so any location_t values we've already handed out within it
that are offset from the start by
  >= (1<<new_column_and_range_bits)
effectively change meaning, leading to incorrect line&column information
when decoding them, and various "interesting" ways for the linemap
code to fail.

The fix is to use the effective column bits in the above conditional.

gcc/ChangeLog:
PR c++/72803
* input.c (selftest::test_accessing_ordinary_linemaps): Verify
that the transition from a max line width >= 1<<10 to narrower
lines works correctly.

gcc/testsuite/ChangeLog:
PR c++/72803
* g++.dg/diagnostic/pr72803.C: New test case.

libcpp/ChangeLog:
PR c++/72803
* line-map.c (linemap_line_start): When determining if the highest
column given out so far will fit into a proposed change to the
current map, use the effective number of column bits, rather than
the total number of column + range bits.

From-SVN: r244199

7 years ago[-fcompare-debug] var tracking options are not optimization options
Alexandre Oliva [Sat, 7 Jan 2017 19:53:13 +0000 (19:53 +0000)]
[-fcompare-debug] var tracking options are not optimization options

If we include them in the ICF hash, they may cause congruence_groups to
be processed in a different order due to different hashes, which in turn
causes different funcdef_nos to be assigned to functions.  Since these
numbers are included in -fcompare-debug dumps, they cause failures.

Since these options are not optimization options, in that they do not
(or should not, save for bugs like this) affect the executable code
output by the compiler, they should not be marked as such.

This patch replaces the Optimization flag in the var-tracking options
with the newly-introduced PerFunction flag, so that it can still be
controlled on a per-function basis, but that disregards it in the hash
computation used by ICF.

This fixes -fcompare-debug failures in numerous LTO testcases.

for  gcc/ChangeLog

* doc/options.texi (PerFunction): New.
* opt-functions.awk (switch_flags): Map both Optimization and
PerFunction to CL_OPTIMIZATION.
* opth-gen.awk: Test for PerFunction flag along with
Optimization.
* optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
it only when the latter is present.  Skip those that don't in
the hash function generator.
* common.opt (fvar-tracking): Mark as PerFunction instead of
Optimization.
(fvar-tracking-assignments): Likewise.
(fvar-tracking-assignments-toggle): Likewise.
(fvar-tracking-uninit): Likewise.

From-SVN: r244198

7 years agoattr-alloc_size-3.c: Remove regex made redundant by r243461.
Martin Sebor [Sat, 7 Jan 2017 19:45:33 +0000 (19:45 +0000)]
attr-alloc_size-3.c: Remove regex made redundant by r243461.

gcc/testsuite/ChangeLog:

* gcc.dg/attr-alloc_size-3.c: Remove regex made redundant by r243461.
* gcc.dg/attr-alloc_size-4.c: Same.

From-SVN: r244197

7 years agore PR fortran/78781 ([Coarray] ICE in gfc_deallocate_scalar_with_status, at fortran...
Andre Vehreschild [Sat, 7 Jan 2017 17:26:58 +0000 (18:26 +0100)]
re PR fortran/78781 ([Coarray] ICE in gfc_deallocate_scalar_with_status, at fortran/trans.c:1588)

gcc/fortran/ChangeLog:

2017-01-07  Andre Vehreschild  <vehre@gcc.gnu.org>

PR fortran/78781
PR fortran/78935
* expr.c (gfc_check_pointer_assign): Return the same error message for
rewritten coarray pointer assignments like for plain ones.
* gfortran.h: Change prototype.
* primary.c (caf_variable_attr): Set attributes used ones only only
ones.  Add setting of pointer_comp attribute.
(gfc_caf_attr): Add setting of pointer_comp attribute.
* trans-array.c (gfc_array_allocate): Add flag that the component to
allocate is not an ultimate coarray component.  Add allocation of
pointer arrays.
(structure_alloc_comps): Extend nullify to treat pointer components in
coarrays correctly.  Restructure nullify to remove redundant code.
(gfc_nullify_alloc_comp): Allow setting caf_mode flags.
* trans-array.h: Change prototype of gfc_nullify_alloc_comp ().
* trans-decl.c (generate_coarray_sym_init): Call nullify_alloc_comp for
derived type coarrays with pointer components.
* trans-expr.c (gfc_trans_structure_assign): Also treat pointer
components.
(trans_caf_token_assign): Handle assignment of token of scalar pointer
components.
(gfc_trans_pointer_assignment): Call above routine.
* trans-intrinsic.c (conv_expr_ref_to_caf_ref): Add treating pointer
components.
(gfc_conv_intrinsic_caf_get): Likewise.
(conv_caf_send): Likewise.
* trans-stmt.c (gfc_trans_allocate): After allocating a derived type in
a coarray pre-register the tokens.
(gfc_trans_deallocate): Simply determining the coarray type (scalar or
array) and deregistering it correctly.
* trans-types.c (gfc_typenode_for_spec): Replace in_coarray flag by the
actual codim to allow lookup of array types in the cache.
(gfc_build_array_type): Likewise.
(gfc_get_array_descriptor_base): Likewise.
(gfc_get_array_type_bounds): Likewise.
(gfc_get_derived_type): Likewise.
* trans-types.h: Likewise.
* trans.c (gfc_deallocate_with_status): Enable deregistering of all kind
of coarray components.
(gfc_deallocate_scalar_with_status): Use free() in fcoarray_single mode
instead of caf_deregister.

libgfortran/ChangeLog:

2017-01-07  Andre Vehreschild  <vehre@gcc.gnu.org>

PR fortran/78781
PR fortran/78935
* caf/single.c (send_by_ref): Fix addressing of non-allocatable scalar
destination components.

gcc/testsuite/ChangeLog:

2017-01-07  Andre Vehreschild  <vehre@gcc.gnu.org>

* gfortran.dg/coarray/ptr_comp_1.f08: New test.
* gfortran.dg/coarray/ptr_comp_2.f08: New test.
* gfortran.dg/coarray/ptr_comp_3.f08: New test.
* gfortran.dg/coarray/ptr_comp_4.f08: New test.
* gfortran.dg/coarray_ptr_comp_1.f08: New test.
* gfortran.dg/coarray_ptr_comp_2.f08: New test.
* gfortran.dg/coarray_ptr_comp_3.f08: New test.

From-SVN: r244196

7 years agore PR translation/79018 (translatable string typo in params.def:1105)
Jakub Jelinek [Sat, 7 Jan 2017 08:37:06 +0000 (09:37 +0100)]
re PR translation/79018 (translatable string typo in params.def:1105)

PR translation/79018
* params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
the and store.

From-SVN: r244195

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

From-SVN: r244191

7 years ago* fr.po: Update.
Joseph Myers [Fri, 6 Jan 2017 22:20:46 +0000 (22:20 +0000)]
* fr.po: Update.

From-SVN: r244187

7 years agoAdd more tests for std::basic_string::find
Jonathan Wakely [Fri, 6 Jan 2017 21:22:40 +0000 (21:22 +0000)]
Add more tests for std::basic_string::find

* testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
* testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.

From-SVN: r244185

7 years agore PR target/57583 (large switches with jump tables are horribly broken on m68k)
Mikael Pettersson [Fri, 6 Jan 2017 21:21:02 +0000 (21:21 +0000)]
re PR target/57583 (large switches with jump tables are horribly broken on m68k)

2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>

PR target/57583
* config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
* config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
TARGET_LONG_JUMP_TABLE_OFFSETS.
* config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
* config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
* config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
(ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
* config/m68k/m68k.md (tablejump expander): Likewise.
(*tablejump_pcrel_hi): Renamed from unnamed insn, reject
TARGET_LONG_JUMP_TABLE_OFFSETS.
(*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
* doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.

From-SVN: r244184

7 years agoMake MicroBlaze support DWARF EH (old Xilinx patch, needed for glibc build).
Edgar E. Iglesias [Fri, 6 Jan 2017 20:54:34 +0000 (20:54 +0000)]
Make MicroBlaze support DWARF EH (old Xilinx patch, needed for glibc build).

This patch, taken from
<https://git.busybox.net/buildroot/tree/package/gcc/5.4.0/840-microblaze-enable-dwarf-eh-support.patch>
and with a few formatting cleanups and an update for the removal of
gen_rtx_raw_REG, enables DWARF EH support for MicroBlaze.

This is needed for building glibc with a compiler that includes shared
libgcc; right now all glibc builds for MicroBlaze are failing with my
bot for lack of this support.  (It's dubious if we should have glibc
ports at all where required support is missing in FSF GCC.)

Tested building glibc with build-many-glibcs.py.  I have *not* done
any other testing or any execution testing for MicroBlaze.

2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
    David Holsgrove <david.holsgrove@xilinx.com>

* common/config/microblaze/microblaze-common.c
(TARGET_EXCEPT_UNWIND_INFO): Remove.
* config/microblaze/microblaze-protos.h (microblaze_eh_return):
New prototype.
* config/microblaze/microblaze.c (microblaze_must_save_register)
(microblaze_expand_epilogue, microblaze_return_addr): Handle
calls_eh_return.
(microblaze_eh_return): New function.
* config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
(EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
(EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
* config/microblaze/microblaze.md (eh_return): New pattern.

Co-Authored-By: David Holsgrove <david.holsgrove@xilinx.com>
From-SVN: r244183

7 years agosystem.h (GCC_DIAGNOSTIC_PUSH_IGNORED, [...]): Define.
Jakub Jelinek [Fri, 6 Jan 2017 18:41:23 +0000 (19:41 +0100)]
system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, [...]): Define.

* system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
GCC_DIAGNOSTIC_STRINGIFY): Define.

* simplify.c (simplify_transformation_to_array): Use
GCC_DIAGNOSTIC_PUSH_IGNORED and GCC_DIAGNOSTIC_POP instead of
#pragma GCC diagnostic {push,ignored,pop}.

From-SVN: r244179

7 years agoread-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
Jakub Jelinek [Fri, 6 Jan 2017 18:40:31 +0000 (19:40 +0100)]
read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.

* read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare
warning.

From-SVN: r244178

7 years agomemcmp-1.c: New.
Aaron Sawdey [Fri, 6 Jan 2017 18:06:35 +0000 (18:06 +0000)]
memcmp-1.c: New.

2017-01-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
* gcc.dg/memcmp-1.c: New.
* gcc.dg/strncmp-1.c: New.
New testcases to check that builtin expansion of memcmp and strncmp works properly.

From-SVN: r244177

7 years agoAdd missing <cassert> include to testcase
Jonathan Wakely [Fri, 6 Jan 2017 17:51:24 +0000 (17:51 +0000)]
Add missing <cassert> include to testcase

* testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
Include <cassert> header.

From-SVN: r244176

7 years ago[ARM] Implement support for ACLE Coprocessor MCRR and MRRC intrinsics
Andre Vieira [Fri, 6 Jan 2017 17:49:12 +0000 (17:49 +0000)]
[ARM] Implement support for ACLE Coprocessor MCRR and MRRC intrinsics

gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/arm/arm.md (<mcrr>): New.
(<mrrc>): New.
* config/arm/arm.c (arm_arch5te): New.
(arm_option_override): Set arm_arch5te.
(arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
and mrrc2.
* config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
(arm_mcrr_qualifiers): ... this. New.
(MRRC_QUALIFIERS): Define to...
(arm_mrrc_qualifiers): ... this. New.
* config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
__arm_mrrc2): New.
* config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
* config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
(MRRCI, mrrc, MRRC): New.
* config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
VUNSPEC_MRRC2): New.

gcc/testsuite/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc.target/arm/acle/mcrr: New.
* gcc.target/arm/acle/mcrr2: New.
* gcc.target/arm/acle/mrrc: New.
* gcc.target/arm/acle/mrrc2: New.

From-SVN: r244175

7 years ago[ARM] Implement support for ACLE Coprocessor MCR and MRC intrinsics
Andre Vieira [Fri, 6 Jan 2017 17:40:50 +0000 (17:40 +0000)]
[ARM] Implement support for ACLE Coprocessor MCR and MRC intrinsics

gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/arm/arm.md (<mcr>): New.
(<mrc>): New.
* config/arm/arm.c (arm_coproc_builtin_available): Add
support for mcr, mrc, mcr2 and mrc2.
* config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
(arm_mcr_qualifiers): ... this. New.
(MRC_QUALIFIERS): Define to ...
(arm_mrc_qualifiers): ... this. New.
(MCR_QUALIFIERS): Define to ...
(arm_mcr_qualifiers): ... this. New.
* config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
__arm_mrc2): New.
* config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
* config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
* config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
VUNSPEC_MRC2): New.

gcc/testsuite/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc.target/arm/acle/mcr.c: New.
* gcc.target/arm/acle/mrc.c: New.
* gcc.target/arm/acle/mcr2.c: New.
* gcc.target/arm/acle/mrc2.c: New.

From-SVN: r244174

7 years ago[ARM] Implement support for ACLE Coprocessor LDC and STC intrinsics
Andre Vieira [Fri, 6 Jan 2017 17:37:39 +0000 (17:37 +0000)]
[ARM] Implement support for ACLE Coprocessor LDC and STC intrinsics

gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/arm/arm.md (*ldc): New.
(*stc): New.
(<ldc>): New.
(<stc>): New.
* config/arm/arm.c (arm_coproc_builtin_available): Add
support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
(arm_coproc_ldc_stc_legitimate_address): New.
* config/arm/arm-builtins.c (arm_type_qualifiers): Add
'qualifier_const_pointer'.
(LDC_QUALIFIERS): Define to...
(arm_ldc_qualifiers): ... this. New.
(STC_QUALIFIERS): Define to...
(arm_stc_qualifiers): ... this. New.
* config/arm/arm-protos.h
(arm_coproc_ldc_stc_legitimate_address): New.
* config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
__arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
* config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
stc2, stcl, stc2l): New.
* config/arm/constraints.md (Uz): New.
* config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
* config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
VUNSPEC_STC2L): New.

gcc/testsuite/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc.target/arm/acle/ldc: New.
* gcc.target/arm/acle/ldc2: New.
* gcc.target/arm/acle/ldcl: New.
* gcc.target/arm/acle/ldc2l: New.
* gcc.target/arm/acle/stc: New.
* gcc.target/arm/acle/stc2: New.
* gcc.target/arm/acle/stcl: New.
* gcc.target/arm/acle/stc2l: New.

From-SVN: r244173

7 years ago[ARM] Implement support for ACLE Coprocessor CDP intrinsics
Andre Vieira [Fri, 6 Jan 2017 17:35:23 +0000 (17:35 +0000)]
[ARM] Implement support for ACLE Coprocessor CDP intrinsics

gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/arm/arm.md (<cdp>): New.
* config/arm/arm.c (neon_const_bounds): Rename this ...
(arm_const_bounds): ... this.
(arm_coproc_builtin_available): New.
* config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
(arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
(CDP_QUALIFIERS): Define to...
(arm_cdp_qualifiers): ... this. New.
(void_UP): Define.
(arm_expand_builtin_args): Add case for 6 arguments.
* config/arm/arm-protos.h (neon_const_bounds): Rename this ...
(arm_const_bounds): ... this.
(arm_coproc_builtin_available): New.
* config/arm/arm_acle.h (__arm_cdp): New.
(__arm_cdp2): New.
* config/arm/arm_acle_builtins.def (cdp): New.
(cdp2): New.
* config/arm/iterators.md (CDPI,CDP,cdp): New.
* config/arm/neon.md: Rename all 'neon_const_bounds' to
'arm_const_bounds'.
* config/arm/types.md (coproc): New.
* config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
* gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
* gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.

gcc/testsuite/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc.target/arm/acle/acle.exp: Run tests for different options
and make sure fat-lto-objects is used such that we can still do
assemble scans.
* gcc.target/arm/acle/cdp.c: New.
* gcc.target/arm/acle/cdp2.c: New.
* lib/target-supports.exp (check_effective_target_arm_coproc1_ok): New.
(check_effective_target_arm_coproc1_ok_nocache): New.
(check_effective_target_arm_coproc2_ok): New.
(check_effective_target_arm_coproc2_ok_nocache): New.
(check_effective_target_arm_coproc3_ok): New.
(check_effective_target_arm_coproc3_ok_nocache): New.
(check_effective_target_arm_coproc4_ok): New.
(check_effective_target_arm_coproc4_ok_nocache): New.

From-SVN: r244172

7 years ago[ARM] Move CRC builtins to refactored framework
Andre Vieira [Fri, 6 Jan 2017 17:28:47 +0000 (17:28 +0000)]
[ARM] Move CRC builtins to refactored framework

gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
(UBINOP_QUALIFIERS): New.
(si_UP): Define.
(acle_builtin_data): New. Change comment.
(arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
arm_acle_builtins.def.
(ARM_BUILTIN_ACLE_PATTERN_START): Define.
(arm_init_acle_builtins): New.
(CRC32_BUILTIN): Remove.
(bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
crc32cb, crc32ch and crc32cw.
(arm_init_crc32_builtins): Remove.
(arm_init_builtins): Use arm_init_acle_builtins rather
than arm_init_crc32_builtins.
(arm_expand_acle_builtin): New.
(arm_expand_builtin): Use 'arm_expand_acle_builtin'.
* config/arm/arm_acle_builtins.def: New.

From-SVN: r244171

7 years ago[ARM] Refactor NEON builtin framework to work for other builtins
Andre Vieira [Fri, 6 Jan 2017 17:26:11 +0000 (17:26 +0000)]
[ARM] Refactor NEON builtin framework to work for other builtins

gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
(arm_builtin_datum): ... this.
(arm_init_neon_builtin): Rename to ...
(arm_init_builtin): ... this. Add a new parameters PREFIX
and USE_SIG_IN_NAME.
(arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
'arm_init_builtin'. Replace type 'neon_builtin_datum' with
'arm_builtin_datum'.
(arm_init_vfp_builtins): Likewise.
(builtin_arg): Rename enum's replacing 'NEON_ARG' with
'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
(arm_expand_neon_args): Rename to ...
(arm_expand_builtin_args): ... this. Rename builtin_arg
enum values and differentiate between ARG_BUILTIN_MEMORY
and ARG_BUILTIN_NEON_MEMORY.
(arm_expand_neon_builtin_1): Rename to ...
(arm_expand_builtin_1): ... this. Rename builtin_arg enum
values, arm_expand_builtin_args and add bool parameter NEON.
(arm_expand_neon_builtin): Use arm_expand_builtin_1.
(arm_expand_vfp_builtin): Likewise.
(NEON_MAX_BUILTIN_ARGS): Remove, it was unused.

From-SVN: r244170

7 years agoCheck for __cxa_thread_atexit for freebsd crosses
Jonathan Wakely [Fri, 6 Jan 2017 17:06:24 +0000 (17:06 +0000)]
Check for __cxa_thread_atexit for freebsd crosses

PR libstdc++/78968
* crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
* configure: Regenerate.

From-SVN: r244169

7 years agoFix changelog entry.
Jan Hubicka [Fri, 6 Jan 2017 16:16:49 +0000 (16:16 +0000)]
Fix changelog entry.

From-SVN: r244168

7 years agore PR middle-end/77484 (Static branch predictor causes ~6-8% regression of SPEC2000...
Jan Hubicka [Fri, 6 Jan 2017 16:10:09 +0000 (17:10 +0100)]
re PR middle-end/77484 (Static branch predictor causes ~6-8% regression of SPEC2000 GAP)

PR middle-end/77484
* predict.def (PRED_POLYMORPHIC_CALL): Set to 58
* predict.c (tree_estimate_probability_bb): Reverse direction of
polymorphic call predictor.

From-SVN: r244167

7 years agoruntime: actually remove go-alloc.h
Ian Lance Taylor [Fri, 6 Jan 2017 16:06:42 +0000 (16:06 +0000)]
runtime: actually remove go-alloc.h

Accidentally omitted from the commit of CL 34797 (SVN revision 244036).

From-SVN: r244166

7 years agore PR go/78978 (runtime/pprof FAILs on Solaris 2/x86)
Ian Lance Taylor [Fri, 6 Jan 2017 16:04:01 +0000 (16:04 +0000)]
re PR go/78978 (runtime/pprof FAILs on Solaris 2/x86)

PR go/78978
    libgo: build with -Wa,-nH if possible on Solaris

    By default the Solaris assembler records the required hardware
    capability in the object file.  This means that the AES hashing code
    breaks on systems that do not support AES, even though the code uses a
    runtime check to only actually invoke the AES instructions on systems
    that support it.  An earlier fix for the problem only fixed the shared
    library, not the static libgo.a.  Fix the problem for real by using an
    assembler option to not record the hardware capability.

    For GCC PR 78978.

    Patch by Rainer Orth.

    Reviewed-on: https://go-review.googlesource.com/34910

From-SVN: r244165

7 years agoPR middle-end/78605 - bogus -Wformat-length=1 with %f
Martin Sebor [Fri, 6 Jan 2017 15:45:42 +0000 (15:45 +0000)]
PR middle-end/78605 - bogus -Wformat-length=1 with %f

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

From-SVN: r244164

7 years agoUse fold expressions to reduce std::variant instantiation depth
Barrett Adair [Fri, 6 Jan 2017 15:27:01 +0000 (15:27 +0000)]
Use fold expressions to reduce std::variant instantiation depth

2017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
    Jonathan Wakely  <jwakely@redhat.com>

* include/std/variant (variant, swap): Replace __and_ usage with fold
expressions.

Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r244163

7 years agoBuild libgo with -Wa,-nH if possible (PR go/78978) [non-libgo parts]
Rainer Orth [Fri, 6 Jan 2017 14:33:47 +0000 (14:33 +0000)]
Build libgo with -Wa,-nH if possible (PR go/78978) [non-libgo parts]

libstdc++-v3:
PR go/78978
* acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
* configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
GLIBCXX_CHECK_ASSEMBLER_HWCAP.
* fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
HWCAP_FLAGS.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Makefile.in, doc/Makefile.in, include/Makefile.in,
libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.

config:
PR go/78978
* hwcaps.m4 (GCC_CHECK_ASSEMBLER_HWCAP): New macro.

From-SVN: r244162

7 years agopasses.c: split out pass-skipping logic into subroutines
David Malcolm [Fri, 6 Jan 2017 14:15:20 +0000 (14:15 +0000)]
passes.c: split out pass-skipping logic into subroutines

gcc/ChangeLog:
* passes.c (execute_one_pass): Split out pass-skipping logic
into...
(determine_pass_name_match): ...this new function and...
(should_skip_pass_p): ...this new function.

From-SVN: r244160

7 years agolto-partition.c (promote_symbol): Write to dump file sooner, include alias promoting...
Nathan Sidwell [Fri, 6 Jan 2017 14:08:02 +0000 (14:08 +0000)]
lto-partition.c (promote_symbol): Write to dump file sooner, include alias promoting too.

* lto-partition.c (promote_symbol): Write to dump file sooner,
include alias promoting too.

From-SVN: r244159

7 years agoipa-visibility.c (function_and_variable_visibility): Reformat comments and long lines.
Nathan Sidwell [Fri, 6 Jan 2017 14:04:05 +0000 (14:04 +0000)]
ipa-visibility.c (function_and_variable_visibility): Reformat comments and long lines.

gcc/
* ipa-visibility.c (function_and_variable_visibility): Reformat
comments and long lines.  Remove extrneous if.
* symtab.c (symtab_node::make_decl_local): Fix code format.
(symtab_node::set_section_for_node): Fix comment typo.

gcc/lto/
* lto-partition.c (lto_balanced_map): Reformat/respell comment.
(may_need_named_section_p): Likewise.
(rename_statics): Likewise.
(lto_promote_cross_file_statics): Likewise.

From-SVN: r244156

7 years agoFix lto-bootstrap (PR bootstrap/79003).
Martin Liska [Fri, 6 Jan 2017 13:56:48 +0000 (14:56 +0100)]
Fix lto-bootstrap (PR bootstrap/79003).

2017-01-06  Martin Liska  <mliska@suse.cz>

PR bootstrap/79003
* lra-constraints.c: Rename invariant to lra_invariant.
* predict.c (set_even_probabilities): Initialize e to NULL.
2017-01-06  Martin Liska  <mliska@suse.cz>

PR bootstrap/79003
* Makefile.in: Add -fno-lto to {C,CPP,LD}FLAGS.

From-SVN: r244155

7 years ago[multiple changes]
Arnaud Charlet [Fri, 6 Jan 2017 13:28:43 +0000 (14:28 +0100)]
[multiple changes]

2017-01-06  Bob Duff  <duff@adacore.com>

* bindgen.adb (Gen_Adainit, Gen_Adafinal): Change
"Bind_Main_Program" to "not Bind_For_Library", because otherwise
we won't generate the call to s_stalib_adafinal when the main
is not written in Ada.

2017-01-06  Bob Duff  <duff@adacore.com>

* sem_prag.adb: Minor: remove pragma Warnings.

2017-01-06  Tristan Gingold  <gingold@adacore.com>

* Makefile.rtl: Do not compile s-stchop by default.

From-SVN: r244154

7 years agoDon't redefine _GLIBCXX_ASSERTIONS if already defined
Jonathan Wakely [Fri, 6 Jan 2017 12:34:11 +0000 (12:34 +0000)]
Don't redefine _GLIBCXX_ASSERTIONS if already defined

* include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition.

From-SVN: r244151

7 years agoPR78991 make __gnu_cxx::__ops constructors explicit
Jonathan Wakely [Fri, 6 Jan 2017 12:33:58 +0000 (12:33 +0000)]
PR78991 make __gnu_cxx::__ops constructors explicit

PR libstdc++/78991
* include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val)
(_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val)
(_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and
move function objects.
(__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter)
(__iter_comp_val, __iter_comp_iter, __negate): Move function objects.
* testsuite/25_algorithms/sort/78991.cc: New test.

From-SVN: r244150

7 years agoMinor reformatting.
Arnaud Charlet [Fri, 6 Jan 2017 12:06:54 +0000 (13:06 +0100)]
Minor reformatting.

From-SVN: r244149

7 years agoaspects.adb, [...]: Reverted previous change for now.
Patrick Bernardi [Fri, 6 Jan 2017 12:06:41 +0000 (12:06 +0000)]
aspects.adb, [...]: Reverted previous change for now.

2017-01-06  Patrick Bernardi  <bernardi@adacore.com>

* aspects.adb, aspects.ads, exp_ch3.adb, exp_ch9.adb, par-prag.adb,
sem_ch13.adb, sem_prag.adb, sem_prag.ads, snames.adb-tmpl,
snames.ads-tmpl, s-secsta.adb, s-secsta.ads, s-tarest.adb,
s-tarest.ads, s-taskin.adb, s-taskin.ads, s-tassta.adb, s-tassta.ads:
Reverted previous change for now.

From-SVN: r244148

7 years agoexp_ch3.adb (Build_Initialization_Call): Apply predicate check to default discriminan...
Ed Schonberg [Fri, 6 Jan 2017 12:04:33 +0000 (12:04 +0000)]
exp_ch3.adb (Build_Initialization_Call): Apply predicate check to default discriminant value if checks are enabled.

2017-01-06  Ed Schonberg  <schonberg@adacore.com>

* exp_ch3.adb (Build_Initialization_Call): Apply predicate
check to default discriminant value if checks are enabled.
(Build_Assignment): If type of component has static predicate,
apply check to its default value, if any.

From-SVN: r244147

7 years agoaspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size.
Patrick Bernardi [Fri, 6 Jan 2017 12:02:09 +0000 (12:02 +0000)]
aspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size.

2017-01-06  Patrick Bernardi  <bernardi@adacore.com>

* aspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size.
* exp_ch3.adb (Build_Init_Statements): As part of initialising
the value record of a task, set its _Secondary_Stack_Size field
if present.
* exp_ch9.adb (Expand_N_Task_Type_Declaration): Create
a _Secondary_Stack_Size field in the value record of
the task if a Secondary_Stack_Size rep item is present.
(Make_Task_Create_Call): Include secondary stack size
parameter. If No_Secondary_Stack restriction is in place, passes
stack size of 0.
* par-prag.adb, sem_prag.adb, sem_prag.ads: Added new pragma
Secondary_Stack_Size.
* s-secsta.adb, s-secsta.ads (Minimum_Secondary_Stack_Size): New
function to define the overhead of the secondary stack.
* s-tarest.adb (Create_Restricted_Task,
Create_Restricted_Task_Sequential): Functions now include
Secondary_Stack_Size parameter to pass to Initialize_ATCB.
* s-tarest.adb (Create_Restricted_Task,
Create_Restricted_Task_Sequential): Calls to Initialize_ATCB
now include Secondary_Stack_Size parameter.
(Task_Wrapper):
Secondary stack now allocated to the size specified by the
Secondary_Stack_Size parameter in the task's ATCB.
* s-taskin.adb, s-taskin.adb (Common_ATCB, Initialise_ATCB): New
Secondary_Stack_Size component.
* s-tassta.adb, s-tassta.ads (Create_Restricted_Task,
Create_Restricted_Task_Sequential): Function now include
Secondary_Stack_Size parameter.
(Task_Wrapper): Secondary stack
now allocated to the size specified by the Secondary_Stack_Size
parameter in the task's ATCB.
* sem_ch13.adb (Analyze_Aspect_Specification): Add support
for Secondary_Stack_Size aspect, turning the aspect into its
corresponding internal attribute.
(Analyze_Attribute_Definition):
Process Secondary_Stack_Size attribute.
* snames.adb-tmpl, snames.ads-tmpl: Added names
Name_Secondary_Stack_Size, Name_uSecondary_Stack_Size,
Attribute_Secondary_Stack_Size and Pragma_Secondary_Stack_Size.

From-SVN: r244146

7 years agoa-direio.adb, [...]: Add Flush to Sequential_IO and Direct_IO.
Pascal Obry [Fri, 6 Jan 2017 11:58:56 +0000 (11:58 +0000)]
a-direio.adb, [...]: Add Flush to Sequential_IO and Direct_IO.

2017-01-06  Pascal Obry  <obry@adacore.com>

* a-direio.adb, a-direio.ads, a-sequio.adb, a-sequio.ads: Add Flush to
Sequential_IO and Direct_IO.

From-SVN: r244145

7 years agosnames.ads-tmpl (Renamed): New name for the pragma argument.
Bob Duff [Fri, 6 Jan 2017 11:56:16 +0000 (11:56 +0000)]
snames.ads-tmpl (Renamed): New name for the pragma argument.

2017-01-06  Bob Duff  <duff@adacore.com>

* snames.ads-tmpl (Renamed): New name for the pragma argument.
* par-ch2.adb: Allow the new pragma (with analysis deferred
to Sem_Prag).
* sinfo.ads, sinfo.adb (Map_Pragma_Name, Pragma_Name_Mapped):
Keep a mapping from new pragma names to old names.
* sem_prag.adb: Check legality of pragma Rename_Pragma, and
implement it by calling Map_Pragma_Name.
* checks.adb, contracts.adb, einfo.adb, errout.adb,
* exp_attr.adb, exp_ch3.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
* exp_prag.adb, exp_util.adb, freeze.adb, frontend.adb, ghost.adb,
* inline.adb, lib-writ.adb, scans.adb, scans.ads, sem_attr.adb,
* sem_aux.adb, sem_ch10.adb, sem_ch13.adb, sem_ch6.adb, sem_ch9.adb,
* sem_elab.adb, sem_res.adb, sem_util.adb, sem_util.ads,
* sem_warn.adb: Call Pragma_Name_Mapped instead of Pragma_Name
as appropriate.

From-SVN: r244144

7 years agoexp_ch9.adb: Minor reformatting.
Hristian Kirtchev [Fri, 6 Jan 2017 11:54:00 +0000 (11:54 +0000)]
exp_ch9.adb: Minor reformatting.

2017-01-06  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch9.adb: Minor reformatting.

From-SVN: r244143

7 years agoexp_ch9.ads, [...] (Build_Entry_Names): Remove (unused).
Tristan Gingold [Fri, 6 Jan 2017 11:50:15 +0000 (11:50 +0000)]
exp_ch9.ads, [...] (Build_Entry_Names): Remove (unused).

2017-01-06  Tristan Gingold  <gingold@adacore.com>

* exp_ch9.ads, exp_ch9.adb (Build_Entry_Names): Remove (unused).
* rtsfind.ads (RE_Task_Entry_Names_Array, RO_ST_Set_Entry_Names)
(RE_Protected_Entry_Names_Array, RO_PE_Set_Entry_Names): Remove
(unused).
* s-taskin.ads, s-taskin.adb (Set_Entry_Names,
Task_Entry_Names_Array, Task_Entry_Names_Access): Remove.
* s-tpoben.ads, s-tpoben.adb (Set_Entry_Names,
Protected_Entry_Names_Array, Protected_Entry_Names_Access): Remove.

From-SVN: r244142

7 years ago[multiple changes]
Arnaud Charlet [Fri, 6 Jan 2017 11:42:39 +0000 (12:42 +0100)]
[multiple changes]

2017-01-06  Bob Duff  <duff@adacore.com>

* sinfo.ads, sinfo.adb (Map_Pragma_Name): Preparation work,
dummy implementation of Map_Pragma_Name.

2017-01-06  Tristan Gingold  <gingold@adacore.com>

* exp_ch9.adb (Expand_N_Protected_Type_Declaration): Make the
entry_body variable constant.
* s-taprob.ads (Entry_Body_Access): Move to s-tposen.
* s-tpoben.ads (Protected_Entry_Body_Access): Now access
to constant.
* s-tposen.ads (Entry_Body_Access): Moved from s-taprob,
now access to constant.

From-SVN: r244141

7 years ago[multiple changes]
Arnaud Charlet [Fri, 6 Jan 2017 11:25:31 +0000 (12:25 +0100)]
[multiple changes]

2017-01-06  Gary Dismukes  <dismukes@adacore.com>

* einfo.ads, sem_res.adb, sem_attr.adb, sem_ch6.adb: Minor
reformatting and typo fixes.

2017-01-06  Bob Duff  <duff@adacore.com>

* snames.ads-tmpl: New names for pragma renaming.
* snames.adb-tmpl (Is_Configuration_Pragma_Name): Minor cleanup.
* par-prag.adb: Add new pragma name to case statement.
* sem_prag.adb (Rename_Pragma): Initial cut at semantic analysis
of the pragma.
* sinfo.ads, sinfo.adb (Pragma_Name_Mapped): Preparation work,
Dummy implementation of Pragma_Name_Mapped.

From-SVN: r244140

7 years agoexp_ch6.adb (Expand_Protected_Subprogram_Call): Add guard to better detect call withi...
Ed Schonberg [Fri, 6 Jan 2017 11:24:02 +0000 (11:24 +0000)]
exp_ch6.adb (Expand_Protected_Subprogram_Call): Add guard to better detect call within an entry_wrapper.

2017-01-06  Ed Schonberg  <schonberg@adacore.com>

* exp_ch6.adb (Expand_Protected_Subprogram_Call): Add guard to
better detect call within an entry_wrapper.
* sem_res.adb (Resolve_Call): A protected call within an
entity_wrapper is analyzed in the context of the protected
object but corresponds to a pre-analysis and is not an access
before elaboration.
* sem_attr.adb: Minor reformatting.

From-SVN: r244139

7 years ago[multiple changes]
Arnaud Charlet [Fri, 6 Jan 2017 11:22:32 +0000 (12:22 +0100)]
[multiple changes]

2017-01-06  Justin Squirek  <squirek@adacore.com>

* sem_attr.adb (Analyze_Attribute): Modify semantic checks for
Finalization_Size to allow a prefix of any non-class-wide type.
* sem_attr.ads Modify comment for Finalization_Size to include
definite type use case.

2017-01-06  Ed Schonberg  <schonberg@adacore.com>

* einfo.ads, einfo.adb (Is_Entry_Wrapper): New flag, defined
on procedures that are wrappers created for entries that have
preconditions.
* sem_ch6.adb (Analyze_Subrogram_Body_Helper): If the subprogram
body is an entry_wrapper, compile it in the context of the
synchronized type, because a precondition may refer to funtions
of the type.
* exp_ch9.adb (Build_Contract_Wrapper): Set Is_Entry_Wrapper on
body entity.
* exp_ch6.adb (Expand_Protected_Subprogram_Call): if the call is
within an Entry_Wrapper this is an external call whose target
is the synchronized object that is the actual in the call to
the wrapper.

From-SVN: r244138

7 years ago[multiple changes]
Arnaud Charlet [Fri, 6 Jan 2017 11:19:47 +0000 (12:19 +0100)]
[multiple changes]

2017-01-06  Yannick Moy  <moy@adacore.com>

* sem_attr.adb (Analyze_Attribute/Attribute_Loop_Entry): Analyze node
in tree, which means not analyzing the previous prefix if the node has
been rewritten into its prefix.

2017-01-06  Gary Dismukes  <dismukes@adacore.com>

* s-tpobop.adb: Minor reformatting.

From-SVN: r244137

7 years ago[multiple changes]
Arnaud Charlet [Fri, 6 Jan 2017 11:15:32 +0000 (12:15 +0100)]
[multiple changes]

2017-01-06  Ed Schonberg  <schonberg@adacore.com>

* checks.adb (Ensure_Valid): Do not generate a validity check
within a generated predicate function, validity checks will have
been applied earlier when required.

2017-01-06  Tristan Gingold  <gingold@adacore.com>

* s-tpoben.ads (Protection_Entries): Add comment and reorder
components for performances.
* s-tpobop.adb (PO_Do_Or_Queue): Implement Max_Queue_Length runtime
semantic.

From-SVN: r244136

7 years ago[multiple changes]
Arnaud Charlet [Fri, 6 Jan 2017 11:10:13 +0000 (12:10 +0100)]
[multiple changes]

2017-01-06  Ed Schonberg  <schonberg@adacore.com>

* sem_eval.adb (Check_Expression_Against_Static_Predicate):
If expression is compile-time known and obeys a static predicate
it must be labelled as static, to prevent spurious warnings and
run-time errors, e.g. in case statements. This is relevant when
the expression is the result of constant-folding a type conversion
whose expression is a variable with a known static value.

2017-01-06  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_attr.adb, sem_attr.ads: Minor reformatting.

From-SVN: r244135

7 years agoexp_attr.adb (Expand_N_Attribute_Reference): Add entry for expansion of Finalization_...
Justin Squirek [Fri, 6 Jan 2017 11:07:56 +0000 (11:07 +0000)]
exp_attr.adb (Expand_N_Attribute_Reference): Add entry for expansion of Finalization_Size attribute.

2017-01-06  Justin Squirek  <squirek@adacore.com>

* exp_attr.adb (Expand_N_Attribute_Reference): Add entry for
expansion of Finalization_Size attribute.
* sem_attr.adb (Analyze_Attribute): Add entry to check the
semantics of Finalization_Size.
(Eval_Attribute): Add null entry for Finalization_Size.
* sem_attr.ads: Add Finalization_Size to the implementation
dependent attribute list.
* snames.ads-tmpl: Add name entry for Finalization_Size attribute.

From-SVN: r244134

7 years ago[multiple changes]
Arnaud Charlet [Fri, 6 Jan 2017 11:06:24 +0000 (12:06 +0100)]
[multiple changes]

2017-01-06  Ed Schonberg  <schonberg@adacore.com>

* sem_ch5.adb (Analyze_Loop_Statement): If the loop includes an
iterator specification with a serious syntactic error, transform
construct into an infinite loop in order to continue analysis
and prevent a compiler abort.

2017-01-06  Tristan Gingold  <gingold@adacore.com>

* exp_ch9.adb (Expand_N_Protected_Type_Declaration): Do not generate
max_queue_lengths_array if unused.

2017-01-06  Bob Duff  <duff@adacore.com>

* errout.adb (Set_Msg_Text): Protect against out-of-bounds
array access, in case "\" is at the end of Text.
* stylesw.adb (Set_Style_Check_Options): Don't include input
characters in the error message template, because they could
be control characters such as "\", which Errout will try to
interpret.

2017-01-06  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Find_Indexing_Operations, Inspect_Declarations):
For a private type examine the visible declarations that follow
the partial view, not just the private declarations that follow
the full view.

2017-01-06  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch5.adb, sem_ch3.adb, checks.adb: Minor reformatting and
code cleanup.

From-SVN: r244133

7 years agoexp_ch5.adb (Get_Default_Iterator): For a derived type...
Ed Schonberg [Fri, 6 Jan 2017 11:03:36 +0000 (11:03 +0000)]
exp_ch5.adb (Get_Default_Iterator): For a derived type...

2017-01-06  Ed Schonberg  <schonberg@adacore.com>

* exp_ch5.adb (Get_Default_Iterator): For a derived type, the
alias of the inherited op is the parent iterator, no need to
examine dispatch table positions which might not be established
yet if type is not frozen.
* sem_disp.adb (Check_Controlling_Formals): The formal of a
predicate function may be a subtype of a tagged type.
* sem_ch3.adb (Complete_Private_Subtype): Adjust inheritance
of representation items for the completion of a type extension
where a predicate applies to the partial view.
* checks.ads, checks.adb (Apply_Predicate_Check): Add optional
parameter that designates function whose actual receives a
predicate check, to improve warning message when the check will
lead to infinite recursion.
* sem_res.adb (Resolve_Actuals): Pass additional parameter to
Apply_Predicate_Check.

From-SVN: r244132

7 years agoMinor reformatting.
Arnaud Charlet [Fri, 6 Jan 2017 11:02:11 +0000 (12:02 +0100)]
Minor reformatting.

From-SVN: r244131

7 years ago[multiple changes]
Arnaud Charlet [Fri, 6 Jan 2017 11:01:21 +0000 (12:01 +0100)]
[multiple changes]

2017-01-06  Tristan Gingold  <gingold@adacore.com>

* s-rident.ads (Profile_Info): Remove No_Entry_Queue from
Gnat_Extended_Ravenscar.
* exp_ch9.adb, s-tpoben.adb, s-tpoben.ads: Fix spelling.

2017-01-06  Gary Dismukes  <dismukes@adacore.com>

* sem_util.ads: Minor typo fix and reformatting.

From-SVN: r244130

7 years ago[multiple changes]
Arnaud Charlet [Fri, 6 Jan 2017 10:48:39 +0000 (11:48 +0100)]
[multiple changes]

2017-01-06  Yannick Moy  <moy@adacore.com>

* ghost.adb Minor fixing of references to SPARK RM.
(Check_Ghost_Context): Check whether reference is to a lvalue
before issuing an error about violation of SPARK RM 6.9(13)
when declaration has Ghost policy Check and reference has Ghost
policy Ignore.
* sem_util.adb Minor indentation.
* sem_ch10.adb (Analyze_Package_Body_Stub, Analyze_Protected_Body_Stub,
Analyze_Task_Body_Stub): Set Ekind of the defining identifier.
* sem_util.ads (Unique_Defining_Entity): Document the result
for package body stubs.

2017-01-06  Tristan Gingold  <gingold@adacore.com>

* raise-gcc.c (abort): Macro to call Abort_Propagation.
* s-tpoben.ads (Protected_Entry_Queue_Max_Access): Make it access
constant.
* exp_ch9.adb (Expand_N_Protected_Type_Declaration):
Do not generate the Entry_Max_Queue_Lengths_Array if all default
values.
* exp_util.adb (Corresponding_Runtime_Package): Consider
Max_Queue_Length pragma.

From-SVN: r244129

7 years ago[multiple changes]
Arnaud Charlet [Fri, 6 Jan 2017 10:43:33 +0000 (11:43 +0100)]
[multiple changes]

2017-01-06  Justin Squirek  <squirek@adacore.com>

* exp_ch9.adb (Expand_N_Protected_Type_Declaration):
Remove declaration generation in the case of
System_Tasking_Protected_Objects_Single_Entry being used,
and add a warning message when this is detected to occur.
(Make_Initialize_Protection): Remove reference pass in the case
of System_Tasking_Protected_Objects_Single_Entry.
* rtsfind.ads: Remove RE_Protected_Entry_Queue_Max
* s-tposen.adb (Initialize_Protection_Entry): Remove
Entry_Queue_Max parameter.
* s-tposen.ads: Remove the types use to store the entry queue
maximum.
* sem_prag.adb (Analyze_Pragma): Remove entry families restriction

2017-01-06  Yannick Moy  <moy@adacore.com>

* sem_util.adb, sem_util.ads (Get_Enum_Lit_From_Pos): Strengthen
behavior of function, to also accept out of range positions
and raise Constraint_Error in such case, and to copy sloc from
literal if No_Location passed as location.
* uintp.adb, uintp.ads (UI_To_Int, UI_To_CC): Strengthen behavior
of functions to raise Constraint_Error in case of value not in
appropriate range.

2017-01-06  Tristan Gingold  <gingold@adacore.com>

* sem_util.adb, s-taprop-linux.adb (Finalize_TCB): Remove call to
Invalidate_Stack_Cache.

2017-01-06  Eric Botcazou  <ebotcazou@adacore.com>

* s-os_lib.adb: Minor fix to the signature of Readlink.

2017-01-06  Javier Miranda  <miranda@adacore.com>

* sem_ch6.adb (Conforming_Types): Handle another
confusion between views in a nested instance with an actual
private type whose full view is not in scope.

2017-01-06  Arnaud Charlet  <charlet@adacore.com>

* exp_ch5.adb (Expand_N_If_Statement): Obey existing comment and
mark a rewritten if statement as explicit (Comes_From_Source).

From-SVN: r244128

7 years agosem_prag.adb, [...]: Minor typo fixes.
Gary Dismukes [Fri, 6 Jan 2017 10:40:04 +0000 (10:40 +0000)]
sem_prag.adb, [...]: Minor typo fixes.

2017-01-06  Gary Dismukes  <dismukes@adacore.com>

* sem_prag.adb, rtsfind.adb, sem_util.adb: Minor typo fixes.

From-SVN: r244127

7 years ago[multiple changes]
Arnaud Charlet [Fri, 6 Jan 2017 10:33:48 +0000 (11:33 +0100)]
[multiple changes]

2017-01-06  Tristan Gingold  <gingold@adacore.com>

* ada.ads, a-unccon.ads: Add pragma No_Elaboration_Code_All.

2017-01-06  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_case.adb: Minor reformatting.

2017-01-06  Thomas Quinot  <quinot@adacore.com>

* g-socthi-mingw.adb: Remove now extraneous USE TYPE clause

2017-01-06  Justin Squirek  <squirek@adacore.com>

* aspects.adb: Register aspect in Canonical_Aspect.
* aspects.ads: Associate qualities of Aspect_Max_Queue_Length
into respective tables.
* einfo.ads, einfo.adb: Add a new attribute for
handling the parameters for Pragma_Max_Entry_Queue
(Entry_Max_Queue_Lengths_Array) in E_Protected_Type. Subprograms
for accessing and setting were added as well.
* par-prag.adb (Prag): Register Pramga_Max_Entry_Queue.
* exp_ch9.adb (Expand_N_Protected_Type_Declaration): Emit
declaration for pramga arguments and store them in the protected
type node.
(Make_Initialize_Protection): Pass a reference to
the Entry_Max_Queue_Lengths_Array in the protected type node to
the runtime.
* rtsfind.adb: Minor grammar fix.
* rtsfind.ads: Register new types taken from the
runtime libraries RE_Protected_Entry_Queue_Max and
RE_Protected_Entry_Queue_Max_Array
* s-tposen.adb, s-tpoben.adb
(Initialize_Protection_Entry/Initialize_Protection_Entries):
Add extra parameter and add assignment to local object.
* s-tposen.ads, s-tpoben.ads: Add new types to
store entry queue maximums and a field to the entry object record.
* sem_ch13.adb (Analyze_Aspect_Specifications): Add case statement
for Aspect_Max_Queue_Length.
(Check_Aspect_At_Freeze_Point):
Add aspect to list of aspects that don't require delayed analysis.
* sem_prag.adb (Analyze_Pragma): Add case statement for
Pragma_Max_Queue_Length, check semantics, and register arugments
in the respective entry nodes.
* sem_util.adb, sem_util.ads Add functions Get_Max_Queue_Length
and Has_Max_Queue_Length
* snames.ads-tmpl: Add constant for the new aspect-name
Name_Max_Queue_Length and corrasponding pragma.

2017-01-06  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_util.adb (Is_Controlled_Function_Call):
Reimplemented. Consider any node which has an entity as the
function call may appear in various ways.

From-SVN: r244126

7 years ago[multiple changes]
Arnaud Charlet [Fri, 6 Jan 2017 10:28:06 +0000 (11:28 +0100)]
[multiple changes]

2017-01-06  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_attr.adb (Rewrite_Stream_Proc_Call): Use
an unchecked type conversion when performing a view conversion
to/from a private type. In all other cases use a regular type
conversion to ensure that any relevant checks are properly
installed.

2017-01-06  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_prag.adb, sem_ch8.adb: Minor reformatting.

2017-01-06  Ed Schonberg  <schonberg@adacore.com>

* sem_case.adb (Explain_Non_Static_Bound): Suppress cascaded
error on case expression that is an entity, when coverage is
incomplete and entity has a static value obtained by local
propagation.
(Handle_Static_Predicate): New procedure, subsidiary of
Check_Choices, to handle case alternatives that are either
subtype names or subtype indications involving subtypes that
have static predicates.

2017-01-06  Thomas Quinot  <quinot@adacore.com>

* s-oscons-tmplt.c, g-socket.adb, g-socket.ads, g-sothco.ads:
(GNAT.Socket): Add support for Busy_Polling and Generic_Option

2017-01-06  Bob Duff  <duff@adacore.com>

* sem_elab.adb (Activate_Elaborate_All_Desirable): Don't add
Elaborate_All(P) to P itself. That could happen in obscure cases,
and always introduced a cycle (P body must be elaborated before
P body).
* lib-writ.ads: Comment clarification.
* ali-util.ads: Minor comment fix.
* ali.adb: Minor reformatting.

2017-01-06  Tristan Gingold  <gingold@adacore.com>

* a-exexpr-gcc.adb: Improve comment.

From-SVN: r244125

7 years agoFix entry
Eric Botcazou [Fri, 6 Jan 2017 08:09:17 +0000 (08:09 +0000)]
Fix entry

From-SVN: r244124

7 years ago[bootstrap-O3,fortran] silence warning in simplify_transformation_to_array
Alexandre Oliva [Fri, 6 Jan 2017 03:34:37 +0000 (03:34 +0000)]
[bootstrap-O3,fortran] silence warning in simplify_transformation_to_array

simplify_transformation_to_array had the nested loop unrolled 7 times,
which is reasonable given that it iterates over arrays of size
GFC_MAX_DIMENSIONS == 7.

The problem is that the last iteration increments the index, tests
that it's less than result->rank, and then accesses the arrays with
the incremented index.

We did not optimize out that part in the 7th iteration, so VRP flagged
the unreachable code as accessing arrays past the end.

It couldn't possibly know that we'd never reach that part, since the
test was on result->rank, and it's not obvious (for the compiler) that
result->rank <= GFC_MAX_DIMENSIONS.

Even an assert to that effect before the enclosing loop didn't avoid
the warning turned to error, though; I suppose there might be some
aliasing at play, because moving the assert into the loop does.  An
assert on the index itself would also work, even more efficiently, but
we're just silencing the warning instead.

for  gcc/fortran/ChangeLog

* simplify.c (simplify_transformation_to_array): Silence
array bounds warning.  Fix whitespace.

From-SVN: r244122

7 years ago[bootstrap-O1] change value type to avoid sprintf buffer size warning
Alexandre Oliva [Fri, 6 Jan 2017 03:34:25 +0000 (03:34 +0000)]
[bootstrap-O1] change value type to avoid sprintf buffer size warning

In stage2 of bootstrap-O1, the code that warns if sprintf might
overflow its output buffer cannot tell that an unsigned value narrowed
to 16 bits will fit in 4 bytes with %4x.

Converting the value to 'unsigned short' makes it obvious that it
fits, at least on machines with 16-bit shorts.

for  gcc/c-family/ChangeLog

* c-pretty-print.c (pp_c_tree_decl_identifier): Convert 16-bit
value to unsigned short to fit in 4 hex digits without
warnings.

From-SVN: r244121

7 years agoDaily bump.
GCC Administrator [Fri, 6 Jan 2017 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r244119

7 years agoPR tree-optimization/78910 - Wrong print-return-value for a negative number
Martin Sebor [Thu, 5 Jan 2017 22:32:09 +0000 (22:32 +0000)]
PR tree-optimization/78910 - Wrong print-return-value for a negative number

gcc/ChangeLog:

PR tree-optimization/78910
* gimple-ssa-sprintf.c (tree_digits): Add an argument.
(format_integer): Correct off-by-one error in the handling
of precision with negative numbers in signed conversions..

gcc/testsuite/ChangeLog:

PR tree-optimization/78910
* gcc.dg/tree-ssa/builtin-sprintf-warn-7.c: Adjust text of expected
diagnostics.
* gcc.dg/tree-ssa/builtin-sprintf.c: Add test cases.
* gcc.dg/tree-ssa/pr78910.c: New test.

From-SVN: r244116

7 years agoinvoke.texi (C Dialect Options): Document it.
Eric Botcazou [Thu, 5 Jan 2017 21:20:16 +0000 (21:20 +0000)]
invoke.texi (C Dialect Options): Document it.

        * doc/invoke.texi (C Dialect Options): Document it.
c-family/
        * c.opt (fsso-struct): Add 'native' value.

From-SVN: r244115

7 years agore PR tree-optimization/71016 (Redundant sign extension with conditional __builtin_clzl)
Jakub Jelinek [Thu, 5 Jan 2017 21:14:19 +0000 (22:14 +0100)]
re PR tree-optimization/71016 (Redundant sign extension with conditional __builtin_clzl)

PR tree-optimization/71016
* tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
factor_out_conditional_conversion.  Formatting fix.
(factor_out_conditional_conversion): Add cond_stmt argument.
If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
Formatting fix.

* gcc.target/i386/pr71016.c: New test.
* gcc.target/aarch64/pr71016.c: New test.
* gcc.dg/tree-ssa/pr66726-3.c: New test.

From-SVN: r244114

7 years agore PR c++/78931 (ICE on C++17 structured bindings from struct with reference member)
Jakub Jelinek [Thu, 5 Jan 2017 21:13:09 +0000 (22:13 +0100)]
re PR c++/78931 (ICE on C++17 structured bindings from struct with reference member)

PR c++/78931
* decl.c (cp_finish_decomp): Remove probe variable, if tt is
REFERENCE_REF_P, set tt to its operand.

* g++.dg/cpp1z/decomp19.C: New test.

From-SVN: r244113

7 years agore PR c++/78890 (ICE on invalid reference type in union)
Jakub Jelinek [Thu, 5 Jan 2017 21:12:02 +0000 (22:12 +0100)]
re PR c++/78890 (ICE on invalid reference type in union)

PR c++/78890
* class.c (check_field_decls): Diagnose REFERENCE_TYPE fields in
unions even for C++11 and later.

* g++.dg/init/ref14.C: Expect error even in C++11 and later.
* g++.dg/init/union1.C: Likewise.
* g++.dg/cpp0x/union6.C: Expect errors.
* g++.dg/cpp0x/union8.C: New test.
* g++.dg/cpp0x/pr78890-1.C: New test.
* g++.dg/cpp0x/pr78890-2.C: New test.

From-SVN: r244112

7 years agopr71670.c: Require p9vector.
David Edelsohn [Thu, 5 Jan 2017 20:10:55 +0000 (20:10 +0000)]
pr71670.c: Require p9vector.

        * gcc.target/powerpc/pr71670.c: Require p9vector.
        * gcc.target/powerpc/p9-novsx.c: Same.

From-SVN: r244111

7 years agoIntroduce RTL function reader
David Malcolm [Thu, 5 Jan 2017 19:32:09 +0000 (19:32 +0000)]
Introduce RTL function reader

This is the combination of these patches:
- [8a/9] Introduce class function_reader (v8)
- Add ASSERT_RTX_PTR_EQ
- [8b/9] Add target-independent selftests of RTL function reader (v2)
- [8c/9] Add aarch64-specific selftests for RTL function reader (v2)
- [8d/9] Add x86_64-specific selftests for RTL function reader (v2)

gcc/ChangeLog:
* Makefile.in (OBJS): Add read-md.o, read-rtl.o,
read-rtl-function.o, and selftest-rtl.o.
* config/aarch64/aarch64.c: Include selftest.h and
selftest-rtl.h.
(selftest::aarch64_test_loading_full_dump): New function.
(selftest::aarch64_run_selftests): New function.
(TARGET_RUN_TARGET_SELFTESTS): Wire it up to
selftest::aarch64_run_selftests.
* config/i386/i386.c
(selftest::ix86_test_loading_dump_fragment_1): New function.
(selftest::ix86_test_loading_call_insn): New function.
(selftest::ix86_test_loading_full_dump): New function.
(selftest::ix86_test_loading_unspec): New function.
(selftest::ix86_run_selftests): Call the new functions.
* emit-rtl.c (maybe_set_max_label_num): New function.
* emit-rtl.h (maybe_set_max_label_num): New decl.
* function.c (instantiate_decls): Guard call to
instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
* function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
"static".
* gensupport.c (gen_reader::gen_reader): Pass "false"
for new "compact" param of rtx_reader.
* print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
rather than an empty string for NULL strings.
* read-md.c: Potentially include config.h rather than bconfig.h.
Wrap include of errors.h with #ifdef GENERATOR_FILE.
(have_error): New global, copied from errors.c.
(md_reader::read_name): Rename to...
(md_reader::read_name_1): ...this, adding "out_loc" param,
and converting "missing name or number" to returning false, rather
than failing.
(md_reader::read_name): Reimplement in terms of read_name_1.
(md_reader::read_name_or_nil): New function.
(md_reader::read_string): Handle "(nil)" by returning NULL.
(md_reader::md_reader): Add new param "compact".
(md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
(md_reader::read_file): New method.
* read-md.h (md_reader::md_reader): Add new param "compact".
(md_reader::read_file): New method.
(md_reader::is_compact): New accessor.
(md_reader::read_name): Convert return type from void to
file_location.
(md_reader::read_name_or_nil): New decl.
(md_reader::read_name_1): New decl.
(md_reader::m_compact): New field.
(noop_reader::noop_reader): Pass "false" for new "compact" param
of rtx_reader.
(rtx_reader::rtx_reader): Add new "compact" param.
(rtx_reader::read_rtx_operand): Make virtual and convert return
type from void to rtx.
(rtx_reader::read_until): New decl.
(rtx_reader::handle_any_trailing_information): New virtual
function.
(rtx_reader::postprocess): New virtual function.
(rtx_reader::finalize_string): New virtual function.
(rtx_reader::m_in_call_function_usage): New field.
(rtx_reader::m_reuse_rtx_by_id): New field.
* read-rtl-function.c: New file.
* selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
* selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
(selftest::verify_three_block_rtl_cfg): New decl.
* read-rtl-function.h: New file.
* read-rtl.c: Potentially include config.h rather than bconfig.h.
For host, include function.h, memmodel.h, and emit-rtl.h.
(one_time_initialization): New function.
(struct compact_insn_name): New struct.
(compact_insn_names): New array.
(find_code): Handle insn codes in compact dumps.
(apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
(bind_subst_iter_and_attr): Likewise.
(add_condition_to_string): Likewise.
(add_condition_to_rtx): Likewise.
(apply_attribute_uses): Likewise.
(add_current_iterators): Likewise.
(apply_iterators): Likewise.
(initialize_iterators): Guard usage of apply_subst_iterator with
#ifdef GENERATOR_FILE.
(read_conditions): Wrap with #ifdef GENERATOR_FILE.
(md_reader::read_mapping): Likewise.
(add_define_attr_for_define_subst): Likewise.
(add_define_subst_attr): Likewise.
(read_subst_mapping): Likewise.
(check_code_iterator): Likewise.
(rtx_reader::read_rtx): Likewise.  Move one-time initialization
logic to...
(one_time_initialization): New function.
(rtx_reader::read_until): New method.
(read_flags): New function.
(parse_reg_note_name): New function.
(rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
Handle reuse_rtx ids.
Wrap iterator lookup within #ifdef GENERATOR_FILE.
Add parsing support for RTL dumps, mirroring the special-cases in
print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
values, and calling handle_any_trailing_information.
(rtx_reader::read_rtx_operand): Convert return type from void
to rtx, returning return_rtx.  Handle case 'e'.  Call
finalize_string on XSTR and XTMPL fields.
(rtx_reader::read_nested_rtx):  Handle dumps in which trailing
 "(nil)" values were omitted.  Call the postprocess vfunc on the
return_rtx.
(rtx_reader::rtx_reader): Add new "compact" param and pass to base
class ctor.  Initialize m_in_call_function_usage.  Call
one_time_initialization.
* rtl-tests.c (selftest::test_uncond_jump): Call
set_new_first_and_last_insn.
* rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
* selftest-rtl.c: New file.
* selftest-rtl.h (class selftest::rtl_dump_test): New class.
(selftest::get_insn_by_uid): New decl.
* selftest-run-tests.c (selftest::run_tests): Call
read_rtl_function_c_tests.
* selftest.h  (selftest::read_rtl_function_c_tests): New decl.
* tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
dumps.

gcc/testsuite/ChangeLog:
* selftests/asr_div1.rtl: New file.
* selftests/aarch64: New subdirectory.
* selftests/aarch64/times-two.rtl: New file.
* selftests/bb-index.rtl: New file.
* selftests/cfg-test.rtl: New file.
* selftests/const-int.rtl: New file.
* selftests/example-labels.rtl: New file.
* selftests/insn-with-mode.rtl: New file.
* selftests/jump-to-label-ref.rtl: New file.
* selftests/jump-to-return.rtl: New file.
* selftests/jump-to-simple-return.rtl: New file.
* selftests/mem.rtl: New file.
* selftests/note-insn-deleted.rtl: New file.
* selftests/note_insn_basic_block.rtl: New file.
* selftests/simple-cse.rtl: New file.
* selftests/symbol-ref.rtl: New file.
* selftests/x86_64: New subdirectory.
* selftests/x86_64/call-insn.rtl: New file.
* selftests/x86_64/copy-hard-reg-into-frame.rtl: New file.
* selftests/x86_64/times-two.rtl: New file.
* selftests/x86_64/unspec.rtl: New file.

From-SVN: r244110

7 years ago* ChangeLog: Fix whitespace.
Uros Bizjak [Thu, 5 Jan 2017 19:18:53 +0000 (20:18 +0100)]
* ChangeLog: Fix whitespace.

From-SVN: r244109

7 years agoi386.md (*testqi_ext_3): No need to handle memory operands in a special way.
Uros Bizjak [Thu, 5 Jan 2017 19:09:25 +0000 (20:09 +0100)]
i386.md (*testqi_ext_3): No need to handle memory operands in a special way.

* config/i386/i386.md (*testqi_ext_3): No need to handle memory
operands in a special way.  Assert that pos+len <= mode precision.

From-SVN: r244108