aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2017-08-14re PR tree-optimization/81799 (ICE on valid code at -O3: verify_gimple failed)Bin Cheng4-1/+37
PR tree-optimization/81799 * tree-loop-distribution.c (version_loop_by_alias_check): Force cond_expr to simple gimple operand. gcc/testsuite * gcc.dg/tree-ssa/pr81799.c: New. From-SVN: r251088
2017-08-14Add check_effective_target_autoincdec.Wilco Dijkstra5-3/+30
Add check_effective_target_autoincdec that returns true if a target runs the auto_inc_dec optimization pass. gcc/ * doc/sourcebuild.texi (autoincdec): Add autoincdec description. gcc/testsuite/ PR middle-end/46932 * gcc.dg/pr46932.c: Use dg-require-effective-target autoincdec. * lib/target-supports.exp: Add check_effective_target_autoincdec. From-SVN: r251087
2017-08-14[AArch64] Fix dbl_mov_immediate_1.c testSzabolcs Nagy2-1/+6
gcc/testsuite: * gcc.target/aarch64/dbl_mov_immediate_1.c: Add -mno-pc-relative-literal-loads. From-SVN: r251086
2017-08-14re PR target/81754 (Building of cross compiler avr-elf is broken)Georg-Johann Lay4-5/+15
gcc/ PR target/81754 PR target/81268 * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues. * config/avr/avr.md (gasisr, *gasisr): Use it instead of TARGET_GASISR_PROLOGUES. * config/avr/avr.c (avr_option_override): Same. (avr_pass_pre_proep::execute): Same. From-SVN: r251085
2017-08-14Daily bump.GCC Administrator1-1/+1
From-SVN: r251080
2017-08-13i386: Replace frame pointer with stack pointer in debug insnsH.J. Lu1-0/+36
When we eliminate frame pointer, we should also replace frame pointer with stack pointer - UNITS_PER_WORD in debug insns. This patch fixed: FAIL: gcc.dg/guality/pr58791-5.c -Os line pr58791-5.c:20 b1 == 9 FAIL: gcc.dg/guality/pr58791-5.c -Os line pr58791-5.c:20 b2 == 73 FAIL: gcc.dg/guality/pr58791-5.c -Os line pr58791-5.c:20 b3 == 585 FAIL: gcc.dg/guality/pr58791-5.c -Os line pr58791-5.c:20 b4 == 4681 FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:17 s1.f == 5.0 FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:17 s1.g == 6.0 FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:17 s2.g == 6.0 FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:20 s1.f == 5.0 FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:20 s1.g == 6.0 FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:20 s2.f == 5.0 FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:20 s2.g == 6.0 on Linux/i386. PR target/81820 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace frame pointer with stack pointer - UNITS_PER_WORD in debug insns. From-SVN: r251076
2017-08-13i386.md (*load_tp_<mode>): Redefine as define_insn_and_split.Uros Bizjak2-61/+72
* config/i386/i386.md (*load_tp_<mode>): Redefine as define_insn_and_split. Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space. Merge with *load_tp_x32 using PTR mode iterator. (*load_tp_x32_zext"): Redefine as define_insn_and_split. Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space. (*add_tp_<mode>): Redefine as define_insn_and_split. Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG address space. Merge with *add_tp_x32 using PTR mode iterator. (*add_tp_x32_zext"): Redefine as define_insn_and_split. Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG address space. From-SVN: r251075
2017-08-13gfortran.texi: Document format of unformatted sequential files.Thomas Koenig2-0/+63
2017-08-13 Thomas Koenig <tkoenig@gcc.gnu.org> * gfortran.texi: Document format of unformatted sequential files. From-SVN: r251074
2017-08-12aarch64-option-extensions.def (rdma): Fix feature string to what Linux ↵Andrew Pinski2-1/+6
prints out in /proc/cpuinfo. 2017-08-12 Andrew Pinski <apinski@cavium.com> * config/aarch64/aarch64-option-extensions.def (rdma): Fix feature string to what Linux prints out in /proc/cpuinfo. From-SVN: r251073
2017-08-13Daily bump.GCC Administrator1-1/+1
From-SVN: r251072
2017-08-12Require -static support in gcc.dg/pie-static-[12].c (PR testsuite/81793)Rainer Orth3-2/+12
PR testsuite/81793 * gcc.dg/pie-static-1.c: Require both static and pie support. * gcc.dg/pie-static-2.c: Likewise. From-SVN: r251067
2017-08-12[PR79542][Ada] Fix ICE in dwarf2out.c with nested func. inliningPierre-Marie de Rodat5-57/+147
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79542 reports an ICE in dwarf2out.c for an Ada testcase built with optimization. This crash happens during the late generation pass because add_gnat_descriptive_type cannot find the type DIE corresponding to some descriptive type after having tried to generate it. This is because the DIE was generated during the early generation pass, but then pruned by the type pruning machinery. So why was it pruned? We are in a situation where we have cloned types (because of inlining, IIUC) whose TYPE_NAME have non-null DECL_ABSTRACT_ORIGIN attributes. As a consequence: * In modified_type_die, the "handle C typedef types" part calls gen_type_die on the cloned type. * gen_type_die matches a typedef variant, and then calls gen_decl_die on its TYPE_NAME, which will end up calling gen_typedef_die. * gen_typedef_die checks decl_ultimate_origin for this TYPE_DECL, and finds one, so it only adds a DW_AT_abstract_origin attribute to the DW_TAG_typedef DIE, but the cloned type itself does not get its own DIE. * Back in modified_type_die, the call to lookup_type_die on the type passed to gen_type_die returns NULL. In the end, whole type trees, i.e. the ones referenced by DECL_ABSTRACT_ORIGIN attributes, are never referenced from type pruning "roots" and are thus pruned. The descriptive type at stake here is one of them, hence the assertion failure. This patch attemps to fix that with what seems to be the most sensible thing to do in my opinion: updating the "handle C typedef types" part in modified_type_die to check decl_ultimate_origin before calling gen_type_die: if that function returns something not null, then we know that gen_type_die/gen_typedef_die will not generate a DIE for the input type, so we try to process the ultimate origin instead. It also updates in a similar way gen_type_die_with_usage, assert that when gen_typedef_die is called on nodes that have an ultimate origin, this origin is themselves. gcc/ PR ada/79542 * dwarf2out.c (modified_type_die): For C typedef types that have an ultimate origin, process the ultimate origin instead of the input type. (gen_typedef_die): Assert that input DECLs have no ultimate origin. (gen_type_die_with_usage): For typedef variants that have an ultimate origin, just call gen_decl_die on the original DECL. (process_scope_var): Avoid creating DIEs for local typedefs and concrete static variables. gcc/testsuite/ PR ada/79542 * gnat.dg/debug13.ads, gnat.dg/debug13.adb: New testcase. From-SVN: r251066
2017-08-12[RS6000] linux startfile/endfileAlan Modra2-18/+36
These need to match the gnu-user.h definitions to support --enable-default-pie. Otherwise we end up linking the wrong startup files when defaulting to PIE. PR target/81170 PR target/81295 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to match gnu-user.h startfile. (ENDFILE_LINUX_SPEC): Similarly. From-SVN: r251065
2017-08-12Daily bump.GCC Administrator1-1/+1
From-SVN: r251064
2017-08-11re PR c/81795 (Stray "originally defined here" when using -Wc++-compat with ↵Marek Polacek4-10/+33
#pragma GCC diagnostic push/pop) PR c/81795 * c-decl.c (pushtag): Only print inform if the warning was printed. (grokdeclarator): Likewise. * gcc.dg/pr81795.c: New test. From-SVN: r251056
2017-08-11invoke.texi: Actually commit change about -Ofast.Thomas Koenig2-4/+8
2017-08-11 Thomas Koenig <tkoenig@gcc.gnu.org> * invoke.texi: Actually commit change about -Ofast. From-SVN: r251055
2017-08-11re PR fortran/60355 ([F08] constraint C519 for BIND attribute not enforced)Thomas Koenig4-13/+33
2017-08-11 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/60355 * resolve.c (resolve_symbol): Adjust (and reformat) comment. Perform check if a BIND(C) is declared at module level regardless of whether it is typed implicitly or not. 2017-08-11 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/60355 * gfortran.dg (bind_c_usage_30): New test. From-SVN: r251054
2017-08-11[PR lto/81430] Revert "Add nvptx_override_options_after_change"Thomas Schwinge2-14/+7
This reverts r250421; properly fixed by r250852. PR lto/81430 * config/nvptx/nvptx.c (nvptx_override_options_after_change): Remove function. (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition. From-SVN: r251053
2017-08-11Correct invalid ChangeLog entryWilliam Schmidt1-1/+3
From-SVN: r251052
2017-08-11aarch64.md (mov<mode>): Change.Tamar Christina3-8/+9
2017-08-11 Tamar Christina <tamar.christina@arm.com> * config/aarch64/aarch64.md (mov<mode>): Change. (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64): aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero. * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed. From-SVN: r251051
2017-08-11tree-sra.c (build_access_from_expr_1): Use more precise diagnostics for ↵Eric Botcazou2-1/+12
storage order barriers. * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics for storage order barriers. From-SVN: r251050
2017-08-11Do not instrument void variables with MPX (PR tree-opt/79987).Martin Liska4-0/+19
2017-08-11 Martin Liska <mliska@suse.cz> PR tree-opt/79987 * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument variables of void type. 2017-08-11 Martin Liska <mliska@suse.cz> PR tree-opt/79987 * gcc.target/i386/mpx/pr79987.c: New test. From-SVN: r251049
2017-08-11Introduce TARGET_SUPPORTS_ALIASESMartin Liska12-49/+76
2017-08-11 Martin Liska <mliska@suse.cz> * c-opts.c (c_common_post_options): Replace ASM_OUTPUT_DEF with TARGET_SUPPORTS_ALIASES. 2017-08-11 Martin Liska <mliska@suse.cz> * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with TARGET_SUPPORTS_ALIASES. * cgraph.c (cgraph_node::create_same_body_alias): Likewise. * ipa-visibility.c (can_replace_by_local_alias): Likewise. (optimize_weakref): Likewise. * symtab.c (symtab_node::noninterposable_alias): Likewise. * varpool.c (varpool_node::create_extra_name_alias): Likewise. * defaults.h: Introduce TARGET_SUPPORTS_ALIASES. 2017-08-11 Martin Liska <mliska@suse.cz> * decl2.c (get_tls_init_fn): Replace ASM_OUTPUT_DEF with TARGET_SUPPORTS_ALIASES. (handle_tls_init): Likewise. (note_mangling_alias): Likewise. Remove ATTRIBUTE_UNUSED for both arguments. * optimize.c (can_alias_cdtor): Likewise. From-SVN: r251048
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