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
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
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
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
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
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
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
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
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
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
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
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
GCC Administrator [Mon, 9 Jan 2017 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r244213
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
Gerald Pfeifer [Sun, 8 Jan 2017 17:50:21 +0000 (17:50 +0000)]
* download_ecj: Remove.
From-SVN: r244209
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
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
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
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
GCC Administrator [Sun, 8 Jan 2017 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r244204
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
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
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
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
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
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
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
GCC Administrator [Sat, 7 Jan 2017 00:16:13 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r244191
Joseph Myers [Fri, 6 Jan 2017 22:20:46 +0000 (22:20 +0000)]
* fr.po: Update.
From-SVN: r244187
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Jan Hubicka [Fri, 6 Jan 2017 16:16:49 +0000 (16:16 +0000)]
Fix changelog entry.
From-SVN: r244168
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
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
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
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
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
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
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
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
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
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
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
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
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
Arnaud Charlet [Fri, 6 Jan 2017 12:06:54 +0000 (13:06 +0100)]
Minor reformatting.
From-SVN: r244149
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Arnaud Charlet [Fri, 6 Jan 2017 11:02:11 +0000 (12:02 +0100)]
Minor reformatting.
From-SVN: r244131
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
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
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
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
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
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
Eric Botcazou [Fri, 6 Jan 2017 08:09:17 +0000 (08:09 +0000)]
Fix entry
From-SVN: r244124
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
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
GCC Administrator [Fri, 6 Jan 2017 00:16:13 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r244119
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
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
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
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
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
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
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
Uros Bizjak [Thu, 5 Jan 2017 19:18:53 +0000 (20:18 +0100)]
* ChangeLog: Fix whitespace.
From-SVN: r244109
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
Jonathan Wakely [Thu, 5 Jan 2017 17:35:49 +0000 (17:35 +0000)]
Remove unnecessary typedef from std::function
* include/bits/std_function.h (function::_Signature_type): Remove.
(function::function(_Functor)): Adjust.
From-SVN: r244107
Jakub Jelinek [Thu, 5 Jan 2017 15:48:41 +0000 (16:48 +0100)]
common.opt (fvect-cost-model): Remove RejectNegative flag...
* common.opt (fvect-cost-model): Remove RejectNegative flag, use
3 argument Alias with unlimited for the negative form.
(fno-vect-cost-model): Removed.
From-SVN: r244106
Martin Liska [Thu, 5 Jan 2017 14:25:06 +0000 (15:25 +0100)]
HSA: implement DIVMOD internal function call
2017-01-05 Martin Liska <mliska@suse.cz>
* hsa-gen.c (gen_hsa_divmod): New function.
(gen_hsa_insn_for_internal_fn_call): Use the function
for IFN_DIVMOD.
From-SVN: r244104
Martin Liska [Thu, 5 Jan 2017 14:17:07 +0000 (15:17 +0100)]
Error for '-' as filename of a precompiled header (PR pch/78970)
2017-01-05 Martin Liska <mliska@suse.cz>
PR pch/78970
* c-opts.c (c_common_post_options): Reject '-' filename for a precompiled
header.
2017-01-05 Martin Liska <mliska@suse.cz>
PR pch/78970
* gcc.c (lookup_compiler): Reject '-' filename for a precompiled
header.
From-SVN: r244103
David Edelsohn [Thu, 5 Jan 2017 13:22:57 +0000 (08:22 -0500)]
Fix typo.
From-SVN: r244102