aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2017-08-11Fix ifunc and resolver (PR ipa/81213).Martin Liska4-19/+48
2017-08-11 Martin Liska <mliska@suse.cz> PR ipa/81213 * config/i386/i386.c (make_resolver_func): Do complete refactoring of the function. 2017-08-11 Martin Liska <mliska@suse.cz> PR ipa/81213 * gcc.target/i386/pr81213.c: New test. From-SVN: r251047
2017-08-11PR c++/81671 - nullptr_t template parameterJason Merrill3-1/+21
* pt.c (convert_nontype_argument): Fix nullptr_t check. From-SVN: r251046
2017-08-11Daily bump.GCC Administrator1-1/+1
From-SVN: r251045
2017-08-10re PR target/81708 (The x86 stack canary location should be customizable)Uros Bizjak6-9/+71
PR target/81708 * config/i386/i386.opt (mstack-protector-guard-symbol=): New option * config/i386/i386.c (ix86_stack_protect_guard): Use ix86_stack_protect_guard_symbol_str to generate varible declaration. * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-symbol= option. testsuite/ChangeLog: PR target/81708 * gcc.target/i386/stack-prot-sym.c: New test. From-SVN: r251040
2017-08-10Rename ix86_split_stack_boundary to ix86_split_stack_guard.Uros Bizjak4-9/+11
From-SVN: r251039
2017-08-10PR81738: Split vect-alias-check-6.cRichard Sandiford3-9/+25
The second loop in the testcase only vectorises if we can reverse a vector and if aligned loads aren't required. 2017-08-10 Richard Sandiford <richard.sandiford@linaro.org> gcc/testsuite/ PR testsuite/81738 * gcc.dg/vect/vect-alias-check-6.c: Move second function to... * gcc.dg/vect/vect-alias-check-7.c: ...this new file. Require vect_perm and vect_element_align for vectorization. From-SVN: r251037
2017-08-10PR c++/81359 - Unparsed NSDMI error from SFINAE context.Jason Merrill3-4/+21
* method.c (synthesized_method_walk): Don't diagnose lack of operator delete. From-SVN: r251036
2017-08-10PR c++/80452 - Core 1579, implicit move semantics on return/throwJason Merrill6-19/+92
* cp-tree.h (LOOKUP_PREFER_RVALUE): Now means that we've already tentatively changed the lvalue to an rvalue. * call.c (reference_binding): Remove LOOKUP_PREFER_RVALUE handling. (build_over_call): If LOOKUP_PREFER_RVALUE, check that the first parameter is an rvalue reference. * except.c (build_throw): Do maybe-rvalue overload resolution twice. * typeck.c (check_return_expr): Likewise. From-SVN: r251035
2017-08-10* config/i386/i386.c (ix86_split_stack_boundary): Add comment.Uros Bizjak1-1/+1
From-SVN: r251033
2017-08-10i386-protos.h (ix86_split_stack_boundary): New prototype.Uros Bizjak4-45/+47
* config/i386/i386-protos.h (ix86_split_stack_boundary): New prototype. * config/i386/i386.c (ix86_split_stack_boundary): New function. (ix86_xpand_split_stack_prologue): Call ix86_split_stack_boundary. (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove. (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto. (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling. * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK. (split_stack_space_check): Call ix86_split_stack_boundary. From-SVN: r251031
2017-08-10print-tree.c (print_node): Print location using the established format %s:%i%i.Martin Sebor2-27/+34
gcc/ChangeLog: * print-tree.c (print_node): Print location using the established format %s:%i%i. Replace spaces with colons. (debug_raw, debug): Ditto. From-SVN: r251030
2017-08-10PR c++/81586 - valgrind error in output_buffer_append_r with -WallMartin Sebor2-1/+16
gcc/ChangeLog: PR c++/81586 * pretty-print.c (pp_format): Correct the handling of %s precision. From-SVN: r251029
2017-08-10i386: Don't use frame pointer without stack accessH.J. Lu11-11/+139
When there is no stack access, there is no need to use frame pointer even if -fno-omit-frame-pointer is used and caller's frame pointer is unchanged. gcc/ PR target/81736 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed to ... (ix86_finalize_stack_frame_flags): This. Also clear frame_pointer_needed if -fno-omit-frame-pointer is used without stack access. (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags with ix86_finalize_stack_frame_flags. (ix86_expand_epilogue): Likewise. (ix86_expand_split_stack_prologue): Likewise. * doc/invoke.texi: Add a note for -fno-omit-frame-pointer. gcc/testsuite/ PR target/81736 * gcc.target/i386/pr81736-1.c: New test. * gcc.target/i386/pr81736-2.c: Likewise. * gcc.target/i386/pr81736-3.c: Likewise. * gcc.target/i386/pr81736-4.c: Likewise. * gcc.target/i386/pr81736-5.c: Likewise. * gcc.target/i386/pr81736-6.c: Likewise. * gcc.target/i386/pr81736-7.c: Likewise. From-SVN: r251028
2017-08-10fold-vec-msum-short.c: Fix typo.Will Schmidt3-2/+7
[gcc/testsuite] 2017-08-10 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-msum-short.c: Fix typo. * gcc.target/powerpc/fold-vec/pack-longlong.c: Mark for 64-bit only. From-SVN: r251027
2017-08-10C/C++: show pertinent open token when missing a close tokenDavid Malcolm17-518/+1279
gcc/c/ChangeLog: * c-parser.c (c_parser_error): Rename to... (c_parser_error_richloc): ...this, making static, and adding "richloc" parameter, passing it to the c_parse_error call, rather than calling c_parser_set_source_position_from_token. (c_parser_error): Reintroduce, reimplementing in terms of the above, converting return type from void to bool. (class token_pair): New class. (struct matching_paren_traits): New struct. (matching_parens): New typedef. (struct matching_brace_traits): New struct. (matching_braces): New typedef. (get_matching_symbol): New function. (c_parser_require): Add param MATCHING_LOCATION, using it to highlight matching "opening" tokens for missing "closing" tokens. (c_parser_skip_until_found): Likewise. (c_parser_static_assert_declaration_no_semi): Convert explicit parsing of CPP_OPEN_PAREN and CPP_CLOSE_PAREN to use of class matching_parens, so that the pertinent open parenthesis is highlighted when there are problems locating the close parenthesis. (c_parser_struct_or_union_specifier): Likewise. (c_parser_typeof_specifier): Likewise. (c_parser_alignas_specifier): Likewise. (c_parser_simple_asm_expr): Likewise. (c_parser_braced_init): Likewise, for matching_braces. (c_parser_paren_condition): Likewise, for matching_parens. (c_parser_switch_statement): Likewise. (c_parser_for_statement): Likewise. (c_parser_asm_statement): Likewise. (c_parser_asm_operands): Likewise. (c_parser_cast_expression): Likewise. (c_parser_sizeof_expression): Likewise. (c_parser_alignof_expression): Likewise. (c_parser_generic_selection): Likewise. (c_parser_postfix_expression): Likewise for cases RID_VA_ARG, RID_OFFSETOF, RID_TYPES_COMPATIBLE_P, RID_AT_SELECTOR, RID_AT_PROTOCOL, RID_AT_ENCODE, reindenting as necessary. In case CPP_OPEN_PAREN, pass loc_open_paren to the c_parser_skip_until_found call. (c_parser_objc_class_definition): Use class matching_parens as above. (c_parser_objc_method_decl): Likewise. (c_parser_objc_try_catch_finally_statement): Likewise. (c_parser_objc_synchronized_statement): Likewise. (c_parser_objc_at_property_declaration): Likewise. (c_parser_oacc_wait_list): Likewise. (c_parser_omp_var_list_parens): Likewise. (c_parser_omp_clause_collapse): Likewise. (c_parser_omp_clause_default): Likewise. (c_parser_omp_clause_if): Likewise. (c_parser_omp_clause_num_threads): Likewise. (c_parser_omp_clause_num_tasks): Likewise. (c_parser_omp_clause_grainsize): Likewise. (c_parser_omp_clause_priority): Likewise. (c_parser_omp_clause_hint): Likewise. (c_parser_omp_clause_defaultmap): Likewise. (c_parser_oacc_single_int_clause): Likewise. (c_parser_omp_clause_ordered): Likewise. (c_parser_omp_clause_reduction): Likewise. (c_parser_omp_clause_schedule): Likewise. (c_parser_omp_clause_num_teams): Likewise. (c_parser_omp_clause_thread_limit): Likewise. (c_parser_omp_clause_aligned): Likewise. (c_parser_omp_clause_linear): Likewise. (c_parser_omp_clause_safelen): Likewise. (c_parser_omp_clause_simdlen): Likewise. (c_parser_omp_clause_depend): Likewise. (c_parser_omp_clause_map): Likewise. (c_parser_omp_clause_device): Likewise. (c_parser_omp_clause_dist_schedule): Likewise. (c_parser_omp_clause_proc_bind): Likewise. (c_parser_omp_clause_uniform): Likewise. (c_parser_omp_for_loop): Likewise. (c_parser_cilk_clause_vectorlength): Likewise. (c_parser_cilk_clause_linear): Likewise. (c_parser_transaction_expression): Likewise. * c-parser.h (c_parser_require): Add param matching_location with default UNKNOWN_LOCATION. (c_parser_error): Convert return type from void to bool. (c_parser_skip_until_found): Add param matching_location with default UNKNOWN_LOCATION. gcc/c-family/ChangeLog: * c-common.c (c_parse_error): Add rich_location * param, using it rather implicitly using input_location. * c-common.h (c_parse_error): Add rich_location * param. gcc/cp/ChangeLog: * parser.c (cp_parser_error): Update for new param to c_parse_error. (class token_pair): New class. (struct matching_paren_traits): New struct. (matching_parens): New typedef. (struct matching_brace_traits): New struct. (matching_braces): New typedef. (cp_parser_statement_expr): Convert explicit parsing of CPP_OPEN_PAREN and CPP_CLOSE_PAREN to use of class matching_parens, so that the pertinent open parenthesis is highlighted when there are problems locating the close parenthesis. (cp_parser_primary_expression): Likewise. (cp_parser_compound_literal_p): Remove consumption of opening paren. (cp_parser_postfix_expression): Convert explicit parsing of CPP_OPEN_PAREN and CPP_CLOSE_PAREN to use matching parens, as above. Use it to consume the opening paren previously consumed by cp_parser_compound_literal_p. (cp_parser_parenthesized_expression_list): Likewise. (cp_parser_unary_expression): Likewise. (cp_parser_new_expression): Likewise. (cp_parser_cast_expression): Likewise. (cp_parser_builtin_offsetof): Likewise. (cp_parser_trait_expr): Likewise. (cp_parser_lambda_declarator_opt): Likewise. (cp_parser_lambda_body): Likewise, for matching_braces. (cp_parser_compound_statement): Likewise. (cp_parser_selection_statement): Likewise, for matching_parens. (cp_parser_iteration_statement): Likewise. (cp_parser_already_scoped_statement): Likewise, for matching_braces. (cp_parser_linkage_specification): Likewise. (cp_parser_static_assert): Likewise, for matching_parens. (cp_parser_decltype): Likewise. (cp_parser_operator): Likewise. (cp_parser_enum_specifier): Likewise. (cp_parser_namespace_definition): Likewise. (cp_parser_direct_declarator): Likewise. (cp_parser_braced_list): Likewise. (cp_parser_class_specifier_1): Likewise, for matching_braces. (cp_parser_constant_initializer): Likewise. (cp_parser_noexcept_specification_opt): Likewise, for matching_parens. (cp_parser_exception_specification_opt): Likewise. (cp_parser_handler): Likewise. (cp_parser_asm_specification_opt): Likewise. (cp_parser_asm_operand_list): Likewise. (cp_parser_gnu_attributes_opt): Likewise. (cp_parser_std_attribute_spec): Likewise. (cp_parser_requirement_parameter_list): Likewise. (cp_parser_requirement_body): Likewise, for matching_braces. (cp_parser_compound_requirement): Likewise. (cp_parser_template_introduction): Likewise. (cp_parser_sizeof_pack): Likewise, for matching_parens. (cp_parser_sizeof_operand): Likewise; use it to consume the opening paren previously consumed by cp_parser_compound_literal_p. (get_matching_symbol): New function. (cp_parser_required_error): Add param "matching_location". Remove calls to cp_parser_error, instead setting a non-NULL gmsgid, and handling it if set by calling c_parse_error, potentially with a secondary location if matching_location was set. (cp_parser_require): Add param "matching_location", with a default value of UNKNOWN_LOCATION. (cp_parser_require_keyword): Update for new param of cp_parser_required_error. (cp_parser_objc_encode_expression): Update to class matching_parens as above. (cp_parser_objc_defs_expression): Likewise. (cp_parser_objc_protocol_expression): Likewise. (cp_parser_objc_selector_expression): Likewise. (cp_parser_objc_typename): Likewise. (cp_parser_objc_superclass_or_category): Likewise. (cp_parser_objc_try_catch_finally_statement): Likewise. (cp_parser_objc_synchronized_statement): Likewise. (cp_parser_objc_at_property_declaration): Likewise. (cp_parser_oacc_single_int_clause): Likewise. (cp_parser_oacc_shape_clause): Likewise. (cp_parser_omp_clause_collapse): Likewise. (cp_parser_omp_clause_default): Likewise. (cp_parser_omp_clause_final): Likewise. (cp_parser_omp_clause_if): Likewise. (cp_parser_omp_clause_num_threads): Likewise. (cp_parser_omp_clause_num_tasks): Likewise. (cp_parser_omp_clause_grainsize): Likewise. (cp_parser_omp_clause_priority): Likewise. (cp_parser_omp_clause_hint): Likewise. (cp_parser_omp_clause_defaultmap): Likewise. (cp_parser_omp_clause_ordered): Likewise. (cp_parser_omp_clause_schedule): Likewise. (cp_parser_omp_clause_num_teams): Likewise. (cp_parser_omp_clause_thread_limit): Likewise. (cp_parser_omp_clause_aligned): Likewise. (cp_parser_omp_clause_linear): Likewise. (cp_parser_omp_clause_safelen): Likewise. (cp_parser_omp_clause_simdlen): Likewise. (cp_parser_omp_clause_depend): Likewise. (cp_parser_omp_clause_device): Likewise. (cp_parser_omp_clause_dist_schedule): Likewise. (cp_parser_oacc_clause_async): Likewise. (cp_parser_omp_critical): Likewise. (cp_parser_omp_for_loop): Likewise. (cp_parser_omp_sections_scope): Likewise. (cp_parser_omp_declare_reduction_exprs): Likewise. Update for new param to cp_parser_required_error. (cp_parser_oacc_routine): Likewise. (cp_parser_transaction_expression): Likewise. (cp_parser_cilk_simd_vectorlength): Likewise. gcc/testsuite/ChangeLog: * c-c++-common/missing-close-symbol.c: New test case. * c-c++-common/missing-symbol.c: New test case. * gcc.dg/unclosed-init.c: New test case. * g++.dg/diagnostic/unclosed-extern-c.C: New test case. * g++.dg/diagnostic/unclosed-function.C: New test case. * g++.dg/diagnostic/unclosed-namespace.C: New test case. * g++.dg/diagnostic/unclosed-struct.C: New test case. * g++.dg/parse/pragma2.C: Update to reflect movement of the "expected identifier" error. From-SVN: r251026
2017-08-10options.c (set_dec_flags): Only set legacy standards when value is not zero.Fritz Reese2-5/+12
2017-08-10 Fritz Reese <fritzoreese@gmail.com> gcc/fortran/ChangeLog: * options.c (set_dec_flags): Only set legacy standards when value is not zero. From-SVN: r251025
2017-08-10options.c (set_dec_flags, [...]): Only set flag_d_lines with -fdec when not ↵Fritz Reese5-7/+38
set by user. 2017-08-10 Fritz Reese <Reese-Fritz@zai.com> gcc/fortran/ChangeLog: * options.c (set_dec_flags, gfc_post_options): Only set flag_d_lines with -fdec when not set by user. gcc/testsuite/ChangeLog: gfortran.dg/ * dec_d_lines_1.f, dec_d_lines_2.f: New. From-SVN: r251024
2017-08-10decl.c (attr_seen): New static variable.Fritz Reese8-2/+185
2017-08-10 Fritz Reese <Reese-Fritz@zai.com> gcc/fortran/ChangeLog: * decl.c (attr_seen): New static variable. * decl.c (variable_decl): Match %FILL in STRUCTURE body. * gfortran.texi: Update documentation. gcc/testsuite/ChangeLog: gfortran.dg/ * dec_structure_18.f90, dec_structure_19.f90, dec_structure_20.f90, dec_structure_21.f90: New. From-SVN: r251023
2017-08-10* objc.dg/proto-lossage-4.m: Accept int/long int as intptr_t.Marek Polacek2-3/+5
From-SVN: r251022
2017-08-10re PR testsuite/81784 (gcc.dg/compare2.c fails starting with r250984)Marek Polacek2-8/+13
PR testsuite/81784 * gcc.dg/compare2.c: Update dg-bogus and dg-warning. From-SVN: r251021
2017-08-10Fix target attribute handling (PR c++/81355).Martin Liska4-0/+38
2017-08-10 Martin Liska <mliska@suse.cz> PR c++/81355 * c-attribs.c (handle_target_attribute): Report warning for an empty string argument of target attribute. 2017-08-10 Martin Liska <mliska@suse.cz> PR c++/81355 * g++.dg/other/pr81355.C: New test. From-SVN: r251020
2017-08-10re PR c/81687 (Compiler drops label in OpenMP region)Jakub Jelinek3-1/+36
PR c/81687 * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL LABEL_DECLs. * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL or DECL_NONLOCAL labels. (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL or DECL_NONLOCAL labels here. * testsuite/libgomp.c/pr81687-1.c: New test. * testsuite/libgomp.c/pr81687-2.c: New test. From-SVN: r251019
2017-08-10jit: add gcc_jit_type_get_vectorDavid Malcolm18-464/+1047
gcc/jit/ChangeLog: * docs/cp/topics/types.rst (Vector types): New section. * docs/topics/compatibility.rst (LIBGCCJIT_ABI_8): New tag. * docs/topics/types.rst (gcc_jit_context_get_type): Fix typo in example. (Vector types): New section. * docs/_build/texinfo/libgccjit.texi: Regenerate. * jit-playback.c (gcc::jit::playback::type::get_vector): New method. * jit-playback.h (gcc::jit::playback::type::get_vector): New method. * jit-recording.c: In namespace gcc::jit::recording:: (type::get_vector): New method. (memento_of_get_aligned::write_reproducer): Fix typo in leading comment. (memento_of_get_vector::replay_into): New method. (memento_of_get_vector::make_debug_string): New method. (memento_of_get_vector::write_reproducer): New method. * jit-recording.h: In namespace gcc::jit::recording:: (type::get_vector): New method. (class memento_of_get_vector): New class. * libgccjit++.h (gccjit::type::get_vector): New method. * libgccjit.c (gcc_jit_type_get_vector): New public entrypoint. * libgccjit.h (LIBGCCJIT_HAVE_gcc_jit_type_get_vector): New define. (gcc_jit_type_get_vector): New decl. * libgccjit.map (LIBGCCJIT_ABI_8): New ABI tag. gcc/testsuite/ChangeLog: * jit.dg/all-non-failing-tests.h: Add note about test-vector-types.cc. * jit.dg/test-error-gcc_jit_type_get_vector-bad-type.c: New test case. * jit.dg/test-error-gcc_jit_type_get_vector-non-power-of-two.c: New test case. * jit.dg/test-vector-types.cc: New test case. From-SVN: r251018
2017-08-10Daily bump.GCC Administrator1-1/+1
From-SVN: r251017
2017-08-09vect-xorsign_exec.c: Add --save-temps to the options passed.Andrew Pinski2-1/+6
2017-08-09 Andrew Pinski <apinski@cavium.com> * gcc.target/aarch64/vect-xorsign_exec.c: Add --save-temps to the options passed. From-SVN: r251013
2017-08-09This time with the file added.Segher Boessenkool1-0/+36
Testcase for PR81423 gcc/testsuite/ PR rtl-optimization/81423 * gcc.c-torture/execute/pr81423.c: New testcase. From-SVN: r251011
2017-08-09packed8.C: Remove -mstructure-size- boundary option and fix comment.Michael Collison5-10/+14
2017-08-09 Michael Collison <michael.collison@arm.com> * testsuite/g++.dg/ext/packed8.C: Remove -mstructure-size- boundary option and fix comment. * testsuite/g++.dg/init/array16.C: Remove -mstructure-size- boundary option and fix comment. * testsuite/g++.dg/other/crash-4.C: Remove -mstructure-size- boundary option and fix comment. * testsuite/gcc.dg/builtin-stringop-chk-1.c: Remove -mstructure-size boundary option. From-SVN: r251010
2017-08-09rs6000.c (rs6000_option_override_internal): Add blurb to indicate when early ↵Will Schmidt3-5/+39
gimple folding has been disabled. [gcc] 2017-08-09 Will Schmidt <will_schmidt@vnet.ibm.com> * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb to indicate when early gimple folding has been disabled. (rs6000_gimple_fold_builtin): Add debug content. (rs6000_invalid_builtin): Fix whitespace. (rs6000_expand_builtin): Fix whitespace. * config/rs6000/rs6000.opt: Add option for -mfold-gimple. From-SVN: r251007
2017-08-09compiler: fix buglet in lshift type determinationIan Lance Taylor2-2/+2
It's possible to construct an lshift expression using unsafe.Sizeof that is technically a compile-time constant but can't be evaluated without going through backend methods. In this case, insure that Type::make_non_abstract_type is called on the numeric operand of the shift (as opposed to leaving as abstract), to avoid an assert later on in the compiler flow. Fixes golang/go#21372. Reviewed-on: https://go-review.googlesource.com/54370 From-SVN: r251006
2017-08-09rs6000: Use SAVE_MULTIPLE only if we restore what it saves (PR80938)Segher Boessenkool2-0/+21
We can have SAVE_MULTIPLE while we do not have REST_MULTIPLE. If the inline restore does not restore all registers, the CFI for the save and restore can conflict if things are shrink-wrapped. We could restore all registers that are saved (not ideal), or emit the CFI notes to say we did (which will work fine, but is also not so great); instead, let's not save the registers that are unused. PR target/80938 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use SAVE_MULTIPLE if not all the registers that saves, should be saved. From-SVN: r251005
2017-08-09Testcase for PR81423Segher Boessenkool1-0/+5
gcc/testsuite/ PR rtl-optimization/81423 * gcc.c-torture/execute/pr81423.c: New testcase. From-SVN: r251004
2017-08-09Add falkor pipeline description.Jim Wilson4-2/+691
gcc/ * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline. (qdf24xx): Likewise. * config/aarch64/aarch64.md: Include falkor.md. * config/aarch64/falkor.md: New. From-SVN: r251003
2017-08-09PR c++/81525 - wrong constant value with generic lambdaJason Merrill3-0/+36
* pt.c (tsubst_decl) [VAR_DECL]: Avoid clobbering auto. (tsubst_copy) [VAR_DECL]: Handle auto. From-SVN: r250999
2017-08-09fold-vec-pack-double.c: New.Will Schmidt5-0/+109
[gcc/testsuite] 2017-08-09 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-pack-double.c: New. * gcc.target/powerpc/fold-vec-pack-int.c: New. * gcc.target/powerpc/fold-vec-pack-longlong.c: New. * gcc.target/powerpc/fold-vec-pack-short.c: New. From-SVN: r250998
2017-08-09fold-vec-msum-char.c: New.Will Schmidt3-0/+55
[gcc/testsuite] 2017-08-09 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-msum-char.c: New. * gcc.target/powerpc/fold-vec-msum-short.c: New. From-SVN: r250997
2017-08-09fold-vec-madd-double.c: New.Will Schmidt4-0/+78
[gcc/testsuite] 2017-08-09 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-madd-double.c: New. * gcc.target/powerpc/fold-vec-madd-float.c: New. * gcc.target/powerpc/fold-vec-madd-short.c: New. From-SVN: r250996
2017-08-09fold-vec-cntlz-int.c: New.Will Schmidt5-0/+95
2017-08-09 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-cntlz-int.c: New. * gcc.target/powerpc/fold-vec-cntlz-char.c: New. * gcc.target/powerpc/fold-vec-cntlz-short.c: New. * gcc.target/powerpc/fold-vec-cntlz-longlong.c: New. From-SVN: r250995
2017-08-09PR c++/81359 - Unparsed NSDMI error from SFINAE context.Jason Merrill15-58/+129
* init.c (get_nsdmi): Add complain parm. * typeck2.c (digest_nsdmi_init): Add complain parm. (process_init_constructor_record): Pass complain to get_nsdmi. * pt.c (maybe_instantiate_noexcept): Add complain parm, return bool. * method.c (get_defaulted_eh_spec): Add complain parm. Pass it into synthesized_method_walk. (synthesized_method_walk): Adjust. (walk_field_subobs): Pass complain to get_nsdmi. (defaulted_late_check): Skip other checks if deleted. * decl2.c (mark_used): Pass complain to maybe_instantiate_noexcept. * call.c (build_aggr_conv): Pass complain to get_nsdmi. * parser.c (defarg_location): New. * error.c (location_of): Use it. From-SVN: r250994
2017-08-09compiler: handle >32bit exponent in LdexpIan Lance Taylor1-1/+1
Libgo's implementation of math.Ldexp declared the libc "ldexp" as taking an 'int' exponent argument, which is not quite right for 64-bit platforms (exp arg is always int32); this could yield incorrect results for exponent values outside the range of Minint32/Maxint32. Fix by upating the type for the libc version of ldexp, and adding guards to screen for out-of-range exponents. Fixes #21323. Reviewed-on: https://go-review.googlesource.com/54250 From-SVN: r250992
2017-08-09* g++.dg/asan/asan.exp: Switch on *.cc tests.Slava Barinov2-1/+5
From-SVN: r250991
2017-08-09Boolify some parameters.Marek Polacek11-38/+69
From-SVN: r250986
2017-08-09re PR c/81233 (--Wdiscarded-qualifiers and Wincompatible-pointer-types ↵Marek Polacek25-165/+371
missing important detail) PR c/81233 * c-typeck.c (pedwarn_init): Make the function take a variable list. Call emit_diagnostic_valist instead of pedwarn. (convert_for_assignment): Unroll the PEDWARN_FOR_ASSIGNMENT macro. Print the relevant types in diagnostics. * diagnostic-core.h (emit_diagnostic_valist): Add declaration. * diagnostic.c (emit_diagnostic): Add a comment. (emit_diagnostic_valist): New function. * gcc.dg/diagnostic-types-1.c: New test. * gcc.dg/assign-warn-1.c: Update warning messages. * gcc.dg/assign-warn-2.c: Likewise. * gcc.dg/c90-const-expr-5.c: Likewise. * gcc.dg/c99-const-expr-5.c: Likewise. * gcc.dg/conv-2.c: Likewise. * gcc.dg/init-bad-7.c: Likewise. * gcc.dg/overflow-warn-1.c: Likewise. * gcc.dg/overflow-warn-2.c: Likewise. * gcc.dg/overflow-warn-3.c: Likewise. * gcc.dg/overflow-warn-4.c: Likewise. * gcc.dg/pointer-array-atomic.c: Likewise. * gcc.dg/pr26865.c: Likewise. * gcc.dg/pr61162-2.c: Likewise. * gcc.dg/pr61162.c: Likewise. * gcc.dg/pr67730-2.c: Likewise. * gcc.dg/pr69156.c: Likewise. * gcc.dg/pr70174.c: Likewise. * objc.dg/proto-lossage-4.m: Likewise. From-SVN: r250985
2017-08-09re PR c/81417 (-Wsign-compare should print types being compared)Marek Polacek19-92/+240
PR c/81417 * c-array-notation.c (fix_builtin_array_notation_fn): Update calls to build_conditional_expr. * c-parser.c (c_parser_conditional_expression): Create locations for EXP1 and EXP2 from their source ranges. Pass the locations down to build_conditional_expr. * c-tree.h (build_conditional_expr): Update declaration. * c-typeck.c (build_conditional_expr): Add location_t parameters. For -Wsign-compare, also print the types. * input.c (make_location): New overload. * input.h (make_location): Declare. * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): Update a call to build_conditional_expr. * Wsign-compare-1.c: New test. * gcc.dg/compare1.c: Adjust dg-bogus. * gcc.dg/compare2.c: Likewise. * gcc.dg/compare3.c: Likewise. * gcc.dg/compare7.c: Likewise. * gcc.dg/compare8.c: Likewise. * gcc.dg/compare9.c: Likewise. * gcc.dg/pr11492.c: Likewise. From-SVN: r250984
2017-08-09Daily bump.GCC Administrator1-1/+1
From-SVN: r250983
2017-08-08PR driver/81523: Make -static override -pieH.J. Lu8-23/+81
-static and -pie together behave differently depending on whether GCC is configured with --enable-default-pie. On x86, "-static -pie" fails to create executable when --enable-default-pie isn't used, but creates a static executable when --enable-default-pie is used. This patch makes -static completely override -pie to create a static executable, regardless if --enable-default-pie is used to configure GCC. gcc/ PR driver/81523 * gcc.c (NO_PIE_SPEC): Delete. (PIE_SPEC): Define as !no-pie/pie. Move static|shared|r exclusion.. (LINK_PIE_SPEC): ..to here. (LINK_COMMAND_SPEC): Support -no-pie. * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct chain of crtbegin*.o selection, update for PIE_SPEC changes and format. (GNU_USER_TARGET_ENDFILE_SPEC): Similarly. * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly. (ENDFILE_CRTEND_SPEC): Similarly. gcc/testsuite/ PR driver/81523 * gcc.dg/pie-7.c: New test. * gcc.dg/pie-static-1.c: Likewise. * gcc.dg/pie-static-2.c: Likewise. From-SVN: r250974
2017-08-08re PR target/81708 (The x86 stack canary location should be customizable)Uros Bizjak6-18/+123
PR target/81708 * config/i386/i386.opt (mstack-protector-guard-reg=): New option (mstack-protector-guard-offset=): Ditto. * config/i386/i386.c (ix86_option_override): Handle -mstack-protector-guard-reg= and -mstack-protector-guard-offset= options. (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and ix86_stack_protect_guard_offset variables. (TARGET_STACK_PROTECT_GUARD): Always define. * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg= and -mstack-protector-guard-offset= options. testsuite/ChangeLog: PR target/81708 * gcc.target/i386/stack-prot-guard.c: New test. From-SVN: r250965
2017-08-08tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle boundary ↵Bin Cheng2-2/+7
case for the last candidate. * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle boundary case for the last candidate. From-SVN: r250960
2017-08-08invoke.texi: Document -ftree-loop-distribution for O3.Bin Cheng3-7/+20
* doc/invoke.texi: Document -ftree-loop-distribution for O3. * opts.c (default_options_table): Add OPT_ftree_loop_distribution. From-SVN: r250959
2017-08-08re PR middle-end/19706 (Recognize common Fortran usages of copysign.)Tamar Christina7-0/+250
2017-08-08 Tamar Christina <tamar.christina@arm.com> PR middle-end/19706 * config/aarch64/aarch64.md (xorsign<mode>3): New optabs. * config/aarch64/aarch64-builtins.c (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN. * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP. * config/aarch64/aarch64-simd.md: Added xorsign<mode>3. gcc/testsuite/ 2017-08-08 Tamar Christina <tamar.christina@arm.com> * gcc.target/aarch64/xorsign.c: New. * gcc.target/aarch64/xorsign_exec.c: New. * gcc.target/aarch64/vect-xorsign_exec.c: New. From-SVN: r250957
2017-08-08re PR middle-end/19706 (Recognize common Fortran usages of copysign.)Tamar Christina4-0/+100
2017-08-08 Tamar Christina <tamar.christina@arm.com> Andrew Pinski <pinskia@gmail.com> PR middle-end/19706 * internal-fn.def (XORSIGN): New. * optabs.def (xorsign_optab): New. * tree-ssa-math-opts.c (is_copysign_call_with_1): New. (convert_expand_mult_copysign): New. (pass_optimize_widening_mul::execute): Call convert_expand_mult_copysign. Co-Authored-By: Andrew Pinski <pinskia@gmail.com> From-SVN: r250956