Commit Graph

151049 Commits

Author SHA1 Message Date
Ian Lance Taylor
0c22e4415f compiler, runtime: drop size arguments to hash/equal functions
Drop the size arguments for the hash/equal functions stored in type
    descriptors.  Types know what size they are.  To make this work,
    generate hash/equal functions for types that can use an identity
    comparison but are not a standard size and alignment.
    
    Drop the multiplications by 33 in the generated hash code and the
    reflect package hash code.  They are not necessary since we started
    passing a seed value around, as the seed includes the hash of the
    earlier values.
    
    Copy the algorithms for standard types from the Go 1.7 runtime,
    replacing the C functions.
    
    Reviewed-on: https://go-review.googlesource.com/34983

From-SVN: r244256
2017-01-10 03:59:20 +00:00
GCC Administrator
8462d909a7 Daily bump.
From-SVN: r244255
2017-01-10 00:16:25 +00:00
Martin Sebor
dfa6951fdc PR testsuite/79036 - gcc.dg/tree-ssa/builtin-sprintf.c fails starting with r244037
PR testsuite/79036 - gcc.dg/tree-ssa/builtin-sprintf.c fails starting with r244037
gcc/testsuite/ChangeLog:
	* gcc.dg/tree-ssa/builtin-sprintf.c: Handle extended formats
	with different precisions.

From-SVN: r244250
2017-01-09 16:31:38 -07:00
Eric Botcazou
a271e41561 expr.c (store_field): In the bitfield case...
* expr.c (store_field): In the bitfield case, if the value comes from
	a function call and is of an aggregate type returned in registers, do
	not modify the field mode; extract the value in all cases if the mode
	is BLKmode and the size is not larger than a word.

From-SVN: r244249
2017-01-09 22:17:17 +00:00
Dominique d'Humieres
852a63c540 re PR target/71017 (libgcc/config/i386/cpuinfo.c:346:17: runtime error: left shift of 1 by 31 places cannot be represented in type 'int')
PR target/71017
	* config/i386/cpuid.h: Fix undefined behavior.

From-SVN: r244248
2017-01-09 23:00:32 +01:00
Jeff Law
b5acc7a1be re PR tree-optimization/79007 (gcc.dg/tree-ssa/dse-points-to.c fails starting with r244067)
PR tree-optimization/79007
	PR tree-optimization/67955
	* tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
	conservative for pt.null when flag_non_call_exceptions is on.

From-SVN: r244247
2017-01-09 14:53:02 -07:00
Jason Merrill
f4da28a0ab Implement P0195R2, C++17 variadic using.
* parser.c (cp_parser_using_declaration): Handle ellipsis and comma.
	* pt.c (tsubst_decl): Handle pack expansion in USING_DECL_SCOPE.
	* error.c (dump_decl): Likewise.

From-SVN: r244246
2017-01-09 16:51:08 -05:00
Jakub Jelinek
bd2c62704b re PR translation/79019 (translatable string typo in cif-code.def:141)
PR translation/79019
	PR translation/79020
	* params.def (PARAM_INLINE_MIN_SPEEDUP,
	PARAM_IPA_CP_SINGLE_CALL_PENALTY,
	PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
	in descriptions.
	* config/avr/avr.opt (maccumulate-args): Likewise.
	* config/msp430/msp430.opt (mwarn-mcu): Likewise.
	* common.opt (freport-bug): Likewise.
	* cif-code.def (CIF_FINAL_ERROR): Likewise.
	* doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
	* config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
	translatable string.
	* config/i386/i386.c (function_value_32): Likewise.
	* config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
	* config/msp430/msp430.c (msp430_option_override, msp430_attr):
	Likewise.
	* config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
	* common/config/msp430/msp430-common.c (msp430_handle_option):
	Likewise.
	* symtab.c (symtab_node::verify_base): Likewise.
	* opts.c (set_debug_level): Likewise.
	* tree.c (verify_type_variant): Likewise.  Fix typo in comment.
	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
	missing whitespace to translatable strings.
	* config/avr/avr.md (bswapsi2): Fix typo in comment.
	* config/sh/superh.h: Likewise.
	* config/i386/xopintrin.h: Likewise.
	* config/i386/znver1.md: Likewise.
	* config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
	* ipa-inline-analysis.c (compute_inline_parameters): Likewise.
	* double-int.h (struct double_int): Likewise.
	* double-int.c (div_and_round_double): Likewise.
	* wide-int.cc: Likewise.
	* tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
	* cfgcleanup.c (crossjumps_occured): Renamed to ...
	(crossjumps_occurred): ... this.
	(try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
	Adjust all uses.
cp/
	* semantics.c (finish_omp_clauses): Add missing whitespace to
	translatable strings.
	* cp-cilkplus.c (cpp_validate_cilk_plus_loop_aux): Fix comment typo.
lto/
	* lto-symtab.c (lto_symtab_merge_symbols): Fix comment typo.
fortran/
	* decl.c (attr_decl1): Fix spelling in translatable string.
	* intrinsic.texi: Fix spelling - invokation -> invocation.
	* lang.opt (faggressive-function-elimination, gfc_convert): Fix
	typos in descriptions.
	* openmp.c (resolve_omp_clauses): Add missing whitespace to
	translatable strings.
c-family/
	* c.opt (Wnormalized=): Fix typo in description.
testsuite/
	* c-c++-common/goacc/host_data-2.c (f): Adjust expected spelling of
	diagnostics.
	* gfortran.dg/initialization_17.f90: Likewise.

From-SVN: r244245
2017-01-09 22:48:33 +01:00
Dominique d'Humieres
1c1d8e7506 re PR testsuite/79026 (The tests changed by revision r244006 now fail on darwin)
testsuite/ChangeLog:

	PR testsuite/79026
	* gcc.target/i386/pr78904-2.c: Require nonpic targets.
	* gcc.target/i386/pr78904-4.c: Likewise.
	* gcc.target/i386/pr78904-6.c: Likewise.
	* gcc.target/i386/pr78967-2.c: Likewise.

From-SVN: r244244
2017-01-09 22:41:02 +01:00
Francois-Xavier Coudert
c508bc2d52 re PR libgomp/60670 (omp.h may differ between multilibs)
PR libgomp/60670
	* Makefile.am: Make fincludedir multilib-aware.
	* Makefile.in: Regenerate.

From-SVN: r244239
2017-01-09 20:29:06 +00:00
Jakub Jelinek
cb330ba582 re PR tree-optimization/78899 (Vestorized loop with optmized mask stores motion is completely deleted after r242520.)
PR tree-optimization/78899
	* tree-if-conv.c (version_loop_for_if_conversion): Instead of
	returning bool return struct loop *, NULL for failure and the new
	loop on success.
	(versionable_outer_loop_p): Don't version outer loop if it has
	dont_vectorized bit set.
	(tree_if_conversion): When versioning outer loop, ensure
	tree_if_conversion is performed also on the inner loop of the
	non-vectorizable outer loop copy.
	* tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
	LOOP_VECTORIZED in inner loop of the scalar outer loop and
	prevent vectorization of it.
	(vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
	the outer loop vectorization of the non-scalar version is attempted
	before vectorization of the inner loop in scalar version.  If
	outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
	vectorization of its inner loop.
	* tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
	has 2 inner loops, rename also on edges from bb whose single pred
	is outer_loop->header.  Fix typo in function comment.

	* gcc.target/i386/pr78899.c: New test.
	* gcc.dg/pr71077.c: New test.

From-SVN: r244238
2017-01-09 21:10:23 +01:00
Martin Sebor
47d5beb478 PR bootstrap/79033 - asan.c not compiling with make BOOT_CFLAGS=-O0
gcc/ChangeLog:
	* asan.c (asan_emit_stack_protection): Increase local buffer size
	to avoid snprintf truncation warning.

From-SVN: r244237
2017-01-09 13:08:49 -07:00
Ian Lance Taylor
2193ad7fbf runtime: copy more of scheduler from Go 1.7 runtime
This started by moving procresize from C to Go so that we can pass the
    right type to the memory allocator when allocating a p, which forced
    the gomaxprocs variable to move from C to Go, and everything else
    followed from that.
    
    Reviewed-on: https://go-review.googlesource.com/34916

From-SVN: r244236
2017-01-09 19:37:19 +00:00
Andrew Pinski
d1261ac6eb aarch64-cores.def: Add thunderx2t99.
2017-01-09  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
        to reference thunderx2t99 for the tuning structure
        * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs): Rename to ...
        (thunderx2t99_extra_costs): This.
        * config/aarch64/aarch64-tune.md: Regenerate.
        * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
        (vulcan_addrcost_table): This.
        (vulcan_regmove_cost): Rename to ...
        (thunderx2t99_regmove_cost): This.
        (vulcan_vector_cost): Rename to ...
        (thunderx2t99_vector_cost): this.
        (vulcan_branch_cost): Rename to ...
        (thunderx2t99_branch_cost): This.
        (vulcan_tunings): Rename to ...
        (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
        * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.

From-SVN: r244235
2017-01-09 10:52:42 -08:00
Andrew Pinski
cb1ac4eff5 Fix formating.
From-SVN: r244234
2017-01-09 10:51:40 -08:00
Martin Jambor
a5e14a42da [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
2017-01-09 19:26:37 +01:00
Jonathan Wakely
a7765de8ef 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
2017-01-09 17:15:58 +00:00
Joseph Myers
4b85f4e61c * vi.po: Update.
From-SVN: r244230
2017-01-09 16:55:06 +00:00
Joseph Myers
5a3b5d7a5c * da.po, es.po, sv.po, vi.po: Update.
From-SVN: r244229
2017-01-09 16:54:40 +00:00
Jakub Jelinek
dc59e50a5e 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
2017-01-09 17:24:19 +01:00
Martin Liska
7e8400e22e 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
2017-01-09 15:24:35 +00:00
Jonathan Wakely
dc8bc65be3 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
2017-01-09 13:06:03 +00:00
Jonathan Wakely
cb627cdf5c 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
2017-01-09 13:05:58 +00:00
Hristian Kirtchev
f63d601b96 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
2017-01-09 13:03:27 +01:00
Jakub Jelinek
01216d27de 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
2017-01-09 12:44:52 +01:00
Kyrylo Tkachov
c0d4fec75c [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
2017-01-09 09:42:10 +00:00
Richard Biener
7b1b0cc127 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
2017-01-09 08:25:13 +00:00
Richard Biener
813b9c0d3a 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
2017-01-09 08:22:58 +00:00
Sandra Loosemore
d86c3c0226 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
2017-01-09 01:43:18 -05:00
Sandra Loosemore
873a593f0b 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
2017-01-08 22:06:23 -05:00
Sandra Loosemore
c71b316b7a 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
2017-01-08 21:39:24 -05:00
GCC Administrator
89b49585f0 Daily bump.
From-SVN: r244213
2017-01-09 00:16:17 +00:00
Martin Sebor
efcc8d387f 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
2017-01-08 16:42:09 -07:00
Gerald Pfeifer
1243c42d64 * download_ecj: Remove.
From-SVN: r244209
2017-01-08 17:50:21 +00:00
Jakub Jelinek
8a1f09e4d9 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
2017-01-08 17:43:30 +01:00
Jan Hubicka
d8dc87c24c 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
2017-01-08 09:53:06 +00:00
Jason Merrill
38285dd719 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
2017-01-08 01:36:10 -05:00
Sandra Loosemore
c3e50bc4e4 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
2017-01-07 20:42:26 -05:00
GCC Administrator
49bf00b933 Daily bump.
From-SVN: r244204
2017-01-08 00:16:17 +00:00
Sandra Loosemore
1fce841966 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
2017-01-07 17:46:13 -05:00
Sandra Loosemore
ec85a97831 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
2017-01-07 17:37:55 -05:00
David Malcolm
5ccf1d8d10 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
2017-01-07 21:33:59 +00:00
Alexandre Oliva
ff98fa955b [-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
2017-01-07 19:53:13 +00:00
Martin Sebor
42002dfec3 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
2017-01-07 12:45:33 -07:00
Andre Vehreschild
de91486c74 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
2017-01-07 18:26:58 +01:00
Jakub Jelinek
0fc08a17f0 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
2017-01-07 09:37:06 +01:00
GCC Administrator
ebeba0306a Daily bump.
From-SVN: r244191
2017-01-07 00:16:13 +00:00
Joseph Myers
168a6d4935 * fr.po: Update.
From-SVN: r244187
2017-01-06 22:20:46 +00:00
Jonathan Wakely
3330ac383c 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
2017-01-06 21:22:40 +00:00
Mikael Pettersson
c24900be6b 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
2017-01-06 14:21:02 -07:00