summaryrefslogtreecommitdiff
path: root/gcc/c
AgeCommit message (Collapse)Author
2018-01-25Update ChangeLog and version files for releaserguenth
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@257041 138bc75d-0d04-0410-961f-82ee72b054a4
2017-12-22 PR debug/83550jakub
* c-decl.c (finish_struct): Set DECL_SOURCE_LOCATION on TYPE_STUB_DECL and call rest_of_type_compilation before processing incomplete vars rather than after it. * c-c++-common/dwarf2/pr83550.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@255982 138bc75d-0d04-0410-961f-82ee72b054a4
2017-12-10Backport "Fix condition folding in c_parser_omp_for_loop"vries
2017-12-10 Tom de Vries <tom@codesourcery.com> backport from trunk: 2017-09-16 Tom de Vries <tom@codesourcery.com> PR c/81875 * c-parser.c (c_parser_omp_for_loop): Fold only operands of cond, not cond itself. * testsuite/libgomp.c/pr81875.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@255531 138bc75d-0d04-0410-961f-82ee72b054a4
2017-09-30 Backported from mainlinejakub
2017-09-29 Jakub Jelinek <jakub@redhat.com> PR c/82340 * c-decl.c (build_compound_literal): Use c_apply_type_quals_to_decl instead of trying to set just TREE_READONLY manually. * gcc.dg/tree-ssa/pr82340.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@253319 138bc75d-0d04-0410-961f-82ee72b054a4
2017-08-14Update ChangeLog and version files for releaserguenth
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251081 138bc75d-0d04-0410-961f-82ee72b054a4
2017-06-08 PR c/81006jakub
* c-typeck.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE to sizetype before size_binop. * semantics.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE to sizetype before size_binop. * c-c++-common/gomp/pr81006.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@249036 138bc75d-0d04-0410-961f-82ee72b054a4
2017-05-26 PR sanitizer/80659mpolacek
* c-decl.c (build_compound_literal): Set DECL_ARTIFICIAL and DECL_IGNORED_P even for non-static compound literals. * gcc.dg/asan/pr80659.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@248491 138bc75d-0d04-0410-961f-82ee72b054a4
2017-05-03 Backported from mainlinejakub
2017-04-21 Jakub Jelinek <jakub@redhat.com> PR c/80468 * c-decl.c (finish_declspecs) <case cts_int_n>: If int_n_idx is not enabled, set specs->type to integer_type_node. * gcc.dg/pr80468.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@247534 138bc75d-0d04-0410-961f-82ee72b054a4
2017-05-02Update ChangeLog and version files for releasegccadmin
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@247493 138bc75d-0d04-0410-961f-82ee72b054a4
2017-04-03Fix numerous typos in commentsredi
gcc: * alias.c (base_alias_check): Fix typo in comment. * cgraph.h (class ipa_polymorphic_call_context): Likewise. * cgraphunit.c (symbol_table::compile): Likewise. * collect2.c (maybe_run_lto_and_relink): Likewise. * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise. * config/avr/avr-arch.h (avr_arch_info_t): Likewise. * config/avr/avr.c (avr_map_op_t): Likewise. * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise. * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise. * config/epiphany/epiphany.md (movcc): Likewise. * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise. * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue): Likewise. * config/mips/mips.c (mips_save_restore_reg): Likewise. * config/rx/rx.c (rx_is_restricted_memory_address): Likewise. * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise. * config/sh/sh.c (sh_rtx_costs): Likewise. * fold-const.c (fold_truth_andor): Likewise. * genautomata.c (collapse_flag): Likewise. * gengtype.h (struct type::u::s): Likewise. * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise. * input.c (FORMAT_AMOUNT): Likewise. * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector) (known_aggs_to_agg_replacement_list): Likewise. * ipa-inline-analysis.c: Likewise. * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise. * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise. * loop-unroll.c (analyze_insn_to_expand_var): Likewise. * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos): Likewise. * modulo-sched.c (apply_reg_moves): Likewise. * omp-expand.c (build_omp_regions_1): Likewise. * trans-mem.c (struct tm_wrapper_hasher): Likewise. * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise. * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise. * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. * value-prof.c: Likewise. * var-tracking.c (val_reset): Likewise. gcc/ada: * doc/gnat_ugn/gnat_and_program_execution.rst: Fix typo. * g-socket.adb (To_Host_Entry): Fix typo in comment. * gnat_ugn.texi: Fix typo. * raise.c (_gnat_builtin_longjmp): Fix capitalization in comment. * s-stposu.adb (Allocate_Any_Controlled): Fix typo in comment. * sem_ch3.adb (Build_Derived_Record_Type): Likewise. * sem_util.adb (Mark_Coextensions): Likewise. * sem_util.ads (Available_Full_View_Of_Component): Likewise. gcc/c: * c-array-notation.c: Fix typo in comment. gcc/c-family: * c-warn.c (do_warn_double_promotion): Fix typo in comment. gcc/cp: * class.c (update_vtable_entry_for_fn): Fix typo in comment. * decl2.c (one_static_initialization_or_destruction): Likewise. * name-lookup.c (store_bindings): Likewise. * parser.c (make_call_declarator): Likewise. * pt.c (check_explicit_specialization): Likewise. gcc/testsuite: * g++.old-deja/g++.benjamin/scope02.C: Fix typo in comment. * gcc.dg/20031012-1.c: Likewise. * gcc.dg/ipa/ipcp-1.c: Likewise. * gcc.dg/torture/matrix-3.c: Likewise. * gcc.target/powerpc/ppc-spe.c: Likewise. * gcc.target/rx/zero-width-bitfield.c: Likewise. libcpp: * include/line-map.h (LINEMAPS_MACRO_MAPS): Fix typo in comment. * lex.c (search_line_fast): Likewise. * pch.h (cpp_valid_state): Likewise. libdecnumber: * decCommon.c (decFloatFromPackedChecked): Fix typo in comment. * decNumber.c (decNumberPower, decMultiplyOp): Likewise. libgcc: * config/c6x/pr-support.c (__gnu_unwind_execute): Fix typo in comment. libitm: * libitm_i.h (sutrct gtm_thread): Fix typo in comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246664 138bc75d-0d04-0410-961f-82ee72b054a4
2017-03-29 PR c/79730mpolacek
* c-decl.c (finish_decl): Check VAR_P. * gcc.dg/pr79730.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246578 138bc75d-0d04-0410-961f-82ee72b054a4
2017-03-27 PR middle-end/80162jakub
c-family/ * c-common.c (c_common_mark_addressable_vec): Don't set TREE_ADDRESSABLE on DECL_HARD_REGISTER. c/ * c-tree.h (c_mark_addressable): Add array_ref_p argument. * c-typeck.c (c_mark_addressable): Likewise. Look through VIEW_CONVERT_EXPR unless array_ref_p and VCE is from VECTOR_TYPE to ARRAY_TYPE. (build_array_ref): Pass true as array_ref_p to c_mark_addressable. cp/ * cp-tree.h (cxx_mark_addressable): Add array_ref_p argument. * typeck.c (cxx_mark_addressable): Likewise. Look through VIEW_CONVERT_EXPR unless array_ref_p and VCE is from VECTOR_TYPE to ARRAY_TYPE. (cp_build_array_ref): Pass true as array_ref_p to cxx_mark_addressable. testsuite/ * c-c++-common/pr80162-1.c: New test. * c-c++-common/pr80162-2.c: New test. * c-c++-common/pr80162-3.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246512 138bc75d-0d04-0410-961f-82ee72b054a4
2017-03-23 * c-tree.h: Remove a C_RID_YYCODE reference.mpolacek
* cp-tree.h: Remove a C_RID_YYCODE reference. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246416 138bc75d-0d04-0410-961f-82ee72b054a4
2017-03-21 PR c/80097jakub
* c-typeck.c (build_binary_op): Add EXCESS_PRECISION_EXPR only around optional COMPOUND_EXPR with ubsan instrumentation. * gcc.dg/ubsan/pr80097.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246302 138bc75d-0d04-0410-961f-82ee72b054a4
2017-03-17 * c-parser.c: Add C11 references.mpolacek
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246249 138bc75d-0d04-0410-961f-82ee72b054a4
2017-03-15 * c-parser.c (c_parser_enum_specifier): Remove redundant line.mpolacek
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246156 138bc75d-0d04-0410-961f-82ee72b054a4
2017-03-11 * c-decl.c (implicit_decl_warning): Add a comment. Fix formatting.mpolacek
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246069 138bc75d-0d04-0410-961f-82ee72b054a4
2017-03-11Simplify uses of "%<%s%>" to "%qs" (PR translation/79848)dmalcolm
gcc/c-family/ChangeLog: PR translation/79848 * c-format.c (check_format_string): Simplify uses of "%<%s%>" to "%qs". gcc/c/ChangeLog: PR translation/79848 * c-decl.c (declspecs_add_type): Simplify uses of "%<%s%>" to "%qs". * c-parser.c (c_parser_oacc_shape_clause): Likewise. gcc/cp/ChangeLog: PR translation/79848 * decl.c (grokfndecl): Simplify uses of "%<%s%>" to "%qs". gcc/ChangeLog: PR translation/79848 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to "%qs". * ipa-pure-const.c (suggest_attribute): Likewise. Convert _ to G_ to avoid double translation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246068 138bc75d-0d04-0410-961f-82ee72b054a4
2017-03-09 PR sanitizer/79757mpolacek
* c-parser.c (c_parser_declaration_or_fndef): Don't sanitize old-style parameter declarations with initializers. * gcc.dg/ubsan/pr79757-1.c: New test. * gcc.dg/ubsan/pr79757-2.c: New test. * gcc.dg/ubsan/pr79757-3.c: New test. * gcc.dg/ubsan/pr79757-4.c: New test. * gcc.dg/ubsan/pr79757-5.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246010 138bc75d-0d04-0410-961f-82ee72b054a4
2017-03-09 PR c/79969jakub
* c-decl.c (start_enum): Adjust DECL_SOURCE_LOCATION of TYPE_STUB_DECL. * gcc.dg/debug/dwarf2/enum-loc1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246009 138bc75d-0d04-0410-961f-82ee72b054a4
2017-03-07 PR c/79834jakub
c/ * c-parser.c (c_parser_pragma): Use error_at instead of c_parser_error for "may only be used in compound statements" diagnostics, change it such that the same translatable string is used for all pragmas. For PRAGMA_OACC_WAIT use "acc wait" rather than "acc enter data" in the diagnostics. (c_parser_omp_cancellation_point, c_parser_omp_target_update, c_parser_omp_target_enter_data, c_parser_omp_target_exit_data): Change "may only be used in compound statements" diagnostics, such that the same translatable string is used for all pragmas. cp/ * parser.c (cp_parser_omp_cancellation_point, cp_parser_omp_target_enter_data, cp_parser_omp_target_exit_data, cp_parser_omp_target_update): Change "may only be used in compound statements" diagnostics, such that the same translatable string is used for all pragmas. (cp_parser_pragma): Likewise. Use error_at instead of cp_parser_error for that diagnostics. testsuite/ * c-c++-common/goacc/pragma_context.c (f2): Adjust expected diagnostics. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245959 138bc75d-0d04-0410-961f-82ee72b054a4
2017-03-04 PR c/79847mpolacek
* c-decl.c (implicit_decl_warning): Add missing space. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245893 138bc75d-0d04-0410-961f-82ee72b054a4
2017-03-03 PR c/79758mpolacek
* c-decl.c (store_parm_decls_oldstyle): Check if the element of current_function_prototype_arg_types is error_mark_node. Fix formatting. Use TREE_VALUE instead of TREE_TYPE. * gcc.dg/noncompile/pr79758.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245886 138bc75d-0d04-0410-961f-82ee72b054a4
2017-03-03 PR c/79837jakub
* c-parser.c (c_parser_omp_clause_reduction): Don't mention %<min%> or %<max%> in the diagnostics, instead mention identifier. (c_parser_omp_declare_reduction): Don't mention %<min%> in the diagnostics. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245885 138bc75d-0d04-0410-961f-82ee72b054a4
2017-03-03 PR c/79836jakub
* c-parser.c (c_parser_generic_selection): Use %<_Generic%> instead of %<_Generic>. (c_parser_omp_ordered): Use %<depend%> instead of %<depend>. (c_parser_omp_target_exit_data): Use %<release%> instead of %<release>. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245883 138bc75d-0d04-0410-961f-82ee72b054a4
2017-02-28 * config/i386/i386.c: Include intl.h.jakub
(ix86_option_override_internal): Use cond ? G_("...") : G_("...") instead of just cond ? "..." : "...". * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise. * coverage.c (read_counts_file): Likewise. * omp-offload.c: Include intl.h. (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead of just cond ? "..." : "...". * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead of just cond ? "..." : "...". c/ * c-parser.c (c_parser_asm_statement): Use cond ? G_("...") : G_("...") instead of just cond ? "..." : "...". (c_parser_oacc_enter_exit_data): Use %s and ternary operator only for "enter"/"exit" keyword. (c_finish_oacc_routine): Don't use %s to supply portions of the message. cp/ * decl.c (find_decomp_class_base): Use cond ? G_("...") : G_("...") instead of just cond ? "..." : "...". (grokdeclarator): Likewise. (build_enumerator): Likewise. * init.c (build_new_1): Likewise. * call.c (build_new_method_call_1): Likewise. * parser.c: Include intl.h. (cp_parser_oacc_enter_exit_data): Use %s and ternary operator only for "enter"/"exit" keyword. (cp_finalize_oacc_routine): Don't use %s to supply portions of the message. fortran/ * parse.c (parse_critical_block): Use cond ? G_("...") : G_("...") instead of just cond ? "..." : "...". * scanner.c (gfc_next_char_literal): Likewise. * match.c (match_exit_cycle): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245778 138bc75d-0d04-0410-961f-82ee72b054a4
2017-02-24 PR c++/79588jakub
c-family/ * c-common.c (check_function_restrict): New function. (check_function_arguments): Add FNDECL argument. Call check_function_restrict if -Wrestrict. * c-warn.c (warn_for_restrict): Remove ARGS argument, add ARGARRAY and NARGS. Use auto_vec for ARG_POSITIONS, simplify. * c-common.h (check_function_arguments): Add FNDECL argument. (warn_for_restrict): Remove ARGS argument, add ARGARRAY and NARGS. c/ * c-parser.c (c_parser_postfix_expression_after_primary): Don't handle -Wrestrict here. * c-typeck.c (build_function_call_vec): Adjust check_function_arguments caller. cp/ * call.c (build_over_call): Call check_function_arguments even for -Wrestrict, adjust check_function_arguments caller. * parser.c (cp_parser_postfix_expression): Don't handle -Wrestrict here. * typeck.c (cp_build_function_call_vec): Adjust check_function_arguments caller. testsuite/ * g++.dg/warn/Wrestrict-1.C: New test. * g++.dg/warn/Wrestrict-2.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245719 138bc75d-0d04-0410-961f-82ee72b054a4
2017-02-232017-02-23 Richard Biener <rguenther@suse.de>rguenth
PR c/79684 * gimple-parser.c (c_parser_gimple_statement): Use set_error to initialize c_exprs to return. (c_parser_gimple_binary_expression): Likewise. (c_parser_gimple_unary_expression): Likewise. (c_parser_gimple_postfix_expression): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245681 138bc75d-0d04-0410-961f-82ee72b054a4
2017-02-22 PR c/79662mpolacek
* c-typeck.c (convert_arguments): Handle error_mark_node. * gcc.dg/enum-incomplete-4.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245660 138bc75d-0d04-0410-961f-82ee72b054a4
2017-02-192017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>prathamesh3492
* gimple-parser.c (c_parser_gimple_postfix_expression): Check return value of c_parser_parse_ssa_name against error_mark_node and emit error if ssa name is anonymous and written as default definition. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245571 138bc75d-0d04-0410-961f-82ee72b054a4
2017-02-192017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>prathamesh3492
* gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format for FMA_EXPR. c/ * gimple-parser.c (c_parser_gimple_postfix_expression): Handle FMA_EXPR. testsuite/ * gcc.dg/gimplefe-26.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245570 138bc75d-0d04-0410-961f-82ee72b054a4
2017-02-16 PR c++/79512jakub
c/ * c-parser.c (c_parser_omp_target): For -fopenmp-simd ignore #pragma omp target even when not followed by identifier. cp/ * parser.c (cp_parser_omp_target): For -fopenmp-simd ignore #pragma omp target even when not followed by identifier. testsuite/ * c-c++-common/gomp/pr79512.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245504 138bc75d-0d04-0410-961f-82ee72b054a4
2017-02-142017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>prathamesh3492
* gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for ABS_EXPR for gimple dump. c/ * gimpler-parser.c (c_parser_gimple_statement): Handle ABS_EXPR. (c_parser_gimple_unary_expression): Likewise. testsuite/ * gcc.dg/gimplefe-25.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245422 138bc75d-0d04-0410-961f-82ee72b054a4
2017-02-13 * cprop.c (cprop_jump): Add missing space in string literal.jakub
* tree-ssa-structalias.c (rewrite_constraints): Likewise. (get_constraint_for_component_ref): Likewise. * df-core.c (df_worklist_dataflow_doublequeue): Likewise. * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise. * lra-constraints.c (process_alt_operands): Likewise. * ipa-inline.c (inline_small_functions): Likewise. * tree-ssa-sccvn.c (visit_reference_op_store): Likewise. * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise. * trans-mem.c (diagnose_tm_1_op): Likewise. * omp-grid.c (grid_find_single_omp_among_assignments): Likewise. (grid_parallel_clauses_gridifiable): Likewise. c/ * c-parser.c (c_parser_oacc_declare): Add missing space in diagnostics. fortran/ * trans-expr.c (gfc_conv_substring): Add missing space in diagnostics. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245409 138bc75d-0d04-0410-961f-82ee72b054a4
2017-02-132017-02-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>prathamesh3492
PR c/79478 * gimple-parser.c (c_parser_gimple_postfix_expression): Call set_c_expr_source_range when parsing ssa-name. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245406 138bc75d-0d04-0410-961f-82ee72b054a4
2017-02-102017-02-10 Prasad Ghangal <prasad.ghangal@gmail.com>rguenth
Richard Biener <rguenther@suse.de> * gimple-parser.c (c_parser_gimple_binary_expression): Avoid building IL when arguments are error_mark_node. (c_parser_gimple_unary_expression): Likewise. (c_parser_gimple_if_stmt): Likewise. (c_parser_gimple_switch_stmt): Likewise. (c_parser_gimple_return_stmt): Likewise. (c_parser_parse_ssa_name): When name lookup fails do not build an SSA name. Use undeclared rather than not declared in error reporting. * gcc.dg/gimplefe-error-1.c: New testcase. * gcc.dg/gimplefe-error-2.c: New testcase. * gcc.dg/gimplefe-error-3.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245326 138bc75d-0d04-0410-961f-82ee72b054a4
2017-02-09 PR c/79428mpolacek
* c-parser.c (c_parser_omp_ordered): Call c_parser_skip_to_pragma_eol instead of c_parser_skip_until_found. * c-c++-common/cilk-plus/CK/pr79428-4.c: New test. * c-c++-common/cilk-plus/CK/pr79428-7.c: New test. * c-c++-common/goacc/pr79428-1.c: New test. * c-c++-common/gomp/pr79428-2.c: New test. * c-c++-common/gomp/pr79428-5.c: New test. * c-c++-common/gomp/pr79428-6.c: New test. * c-c++-common/pr79428-3.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245309 138bc75d-0d04-0410-961f-82ee72b054a4
2017-02-09 PR c/79431jakub
* gimplify.c (gimplify_adjust_omp_clauses): Ignore "omp declare target link" attribute unless is_global_var. * omp-offload.c (find_link_var_op): Likewise. c/ * c-parser.c (c_parser_omp_declare_target): Don't invoke symtab_node::get on automatic variables. cp/ * parser.c (cp_parser_oacc_declare): Formatting fix. (cp_parser_omp_declare_target): Don't invoke symtab_node::get on automatic variables. testsuite/ * c-c++-common/gomp/pr79431.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245302 138bc75d-0d04-0410-961f-82ee72b054a4
2017-02-092017-02-09 Nathan Sidwell <nathan@codesourcery.com>cltang
Cesar Philippidis <cesar@codesourcery.com> Joseph Myers <joseph@codesourcery.com> Chung-Lin Tang <cltang@codesourcery.com> gcc/ * gimplify.c (gimplify_scan_omp_clauses): No special handling for OMP_CLAUSE_TILE. (gimplify_adjust_omp_clauses): Don't delete TILE. (gimplify_omp_for): Deal with TILE. * internal-fn.c (expand_GOACC_TILE): New function. * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative. (GOACC_TILE): New. * omp-expand.c (struct oacc_collapse): Add tile and outer fields. (expand_oacc_collapse_init): Add LOC paramter. Initialize tile element fields. (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling, avoid DIV for outermost collapse var. (expand_oacc_for): Insert tile element loop as needed. Adjust. Remove out of date comments, fix whitespace. * omp-general.c (omp_extract_for_data): Deal with tiling. * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag, adjust OLF_DIM_BASE value. (struct omp_for_data): Add tiling field. * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE. (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels for auto loops. Remove default auto determining, moved to oacc_loop_fixed_partitions. * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call stmts, add e_mask field. (oacc_dim_call): New function, abstracted out from oacc_thread_numbers. (oacc_thread_numbers): Use oacc_dim_call. (oacc_xform_tile): New. (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector. (finish_oacc_loop): Adjust for ifns vector. (oacc_loop_discover_walk): Append loop abstraction sites to list, add case for GOACC_TILE fns. (oacc_loop_xform_loop): Delete. (oacc_loop_process): Iterate over call list directly, and add handling for GOACC_TILE fns. (oacc_loop_fixed_partitions): Determine default auto, deal with TILE, dump partitioning. (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but vector partitioning to outer loops. Assign 2 partitions to loops when available. Add TILE handling. (oacc_loop_partition): Adjust oacc_loop_auto_partitions call. (execite_oacc_device_lower): Process GOACC_TILE fns, ignore unknown specs. * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE. * tree.c (omp_clause_num_ops): Adjust TILE ops. * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New. gcc/c/ * c-parser.c (c_parser_omp_clause_collapse): Disallow tile. (c_parser_oacc_clause_tile): Disallow collapse. Fix parsing and semantic checking. * c-parser.c (c_parser_omp_for_loop): Accept tiling constructs. gcc/cp/ * parser.c (cp_parser_oacc_clause_tile): Disallow collapse. Fix parsing. Parse constant expression. Remove semantic checking. (cp_parser_omp_clause_collapse): Disallow tile. (cp_parser_omp_for_loop): Deal with tile clause. Don't emit a parse error about missing for after already emitting one. Use more conventional for idiom for unbounded loop. * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_TILE. * semantics.c (finish_omp_clauses): Correct TILE semantic check. (finish_omp_for): Deal with tile clause. gcc/fortran/ * openmp.c (resolve_omp_clauses): Error on directives containing both tile and collapse clauses. (resolve_oacc_loop_blocks): Represent '*' tile arguments as zero. * trans-openmp.c (gfc_trans_omp_do): Lower tiled loops like collapsed loops. gcc/testsuite/ * c-c++-common/goacc/combined-directives.c: Remove xfail. * c-c++-common/goacc/loop-auto-1.c: Adjust and add additional case. * c-c++-common/goacc/loop-auto-2.c: New. * c-c++-common/goacc/tile.c: Include stdbool, fix expected errors. * c-c++-common/goacc/tile-2.c: New. * g++.dg/goacc/template.C: Test tile subst. Adjust erroneous uses. * g++.dg/goacc/tile-1.C: New, check tile subst. * gcc.dg/goacc/loop-processing-1.c: Adjust dg-final pattern. * gfortran.dg/goacc/combined-directives.f90: Remove xfail. * gfortran.dg/goacc/tile-1.f90: New test. * gfortran.dg/goacc/tile-2.f90: New test. * gfortran.dg/goacc/tile-lowering.f95: New test. libgomp/ * testsuite/libgomp.oacc-c-c++-common/tile-1.c: New. * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust and add additional case. * testsuite/libgomp.oacc-c-c++-common/vprop.c: XFAIL under "openacc_nvidia_accel_selected". * libgomp.oacc-fortran/nested-function-1.f90 (test2): Add num_workers(8) clause. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245300 138bc75d-0d04-0410-961f-82ee72b054a4
2017-02-072017-02-07 Richard Biener <rguenther@suse.de>rguenth
c/ * gimple-parser.c (c_parser_gimple_expr_list): Simplify. (c_parser_gimple_postfix_expression_after_primary): Do not use c_build_function_call_vec to avoid folding and promotion. Simplify. * gcc.dg/gimplefe-23.c: New testcase. * gcc.dg/gimplefe-24.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245244 138bc75d-0d04-0410-961f-82ee72b054a4
2017-01-25PR lto/79061chefmax
gcc/ * asan.c (get_translation_unit_decl): New function. (asan_add_global): Extract modules file name from globals TRANSLATION_UNIT_DECL name. gcc/fortran/ * f95-lang.c (gfc_create_decls): Include stringpool.h. Pass main_input_filename to build_translation_unit_decl. gcc/ada/ * gcc-interface/utils.c (get_global_context): Pass main_input_filename to build_translation_unit_decl. gcc/c/ * c-decl.c (pop_scope): Pass main_input_filename to build_translation_unit_decl. gcc/cp/ * decl.c (cxx_init_decl_processing): Pass main_input_filename to build_translation_unit_decl. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@244890 138bc75d-0d04-0410-961f-82ee72b054a4
2017-01-24Add "__RTL" to cc1dmalcolm
gcc/c-family/ChangeLog: * c-common.c (c_common_reswords): Add "__RTL". * c-common.h (enum rid): Add RID_RTL. gcc/c/ChangeLog: * c-parser.c: Include "read-rtl-function.h" and "run-rtl-passes.h". (c_parser_declaration_or_fndef): Rename "gimple-pass-list" in grammar to gimple-or-rtl-pass-list. Add rtl-function-definition production. Update for renaming of field "gimple_pass" to "gimple_or_rtl_pass". If __RTL was seen, call c_parser_parse_rtl_body. Convert a timevar_push/pop pair to an auto_timevar, to cope with early exit. (c_parser_declspecs): Update RID_GIMPLE handling for renaming of field "gimple_pass" to "gimple_or_rtl_pass", and for renaming of c_parser_gimple_pass_list to c_parser_gimple_or_rtl_pass_list. Handle RID_RTL. (c_parser_parse_rtl_body): New function. * c-tree.h (enum c_declspec_word): Add cdw_rtl. (struct c_declspecs): Rename field "gimple_pass" to "gimple_or_rtl_pass". Add field "rtl_p". * gimple-parser.c (c_parser_gimple_pass_list): Rename to... (c_parser_gimple_or_rtl_pass_list): ...this, updating accordingly. * gimple-parser.h (c_parser_gimple_pass_list): Rename to... (c_parser_gimple_or_rtl_pass_list): ...this. gcc/ChangeLog: * cfg.c (original_copy_tables_initialized_p): New function. * cfg.h (original_copy_tables_initialized_p): New decl. * cfgrtl.c (relink_block_chain): Guard the call to free_original_copy_tables with a call to original_copy_tables_initialized_p. * cgraph.h (symtab_node::native_rtl_p): New decl. * cgraphunit.c (symtab_node::native_rtl_p): New function. (symtab_node::needed_p): Don't assert for early assembly output for __RTL functions. (cgraph_node::finalize_function): Set "force_output" for __RTL functions. (cgraph_node::analyze): Bail out early for __RTL functions. (analyze_functions): Update assertion to support __RTL functions. (cgraph_node::expand): Bail out early for __RTL functions. * final.c (rest_of_clean_state): Don't call delete_tree_ssa for __RTL functions. * function.h (struct function): Update comment for field "pass_startwith". * gimple-expr.c: Include "tree-pass.h". (gimple_has_body_p): Return false for __RTL functions. * Makefile.in (OBJS): Add run-rtl-passes.o. * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New accessor. (gcc::pass_manager::get_clean_slate): New accessor. * passes.c: Include "insn-addr.h". (should_skip_pass_p): Add logging. Update logic for running "expand" to be compatible with both __GIMPLE and __RTL. Guard property-provider override so it is only done for gimple passes. Don't skip dfinit. (skip_pass): New function. (execute_one_pass): Call skip_pass when skipping passes. * read-md.c (md_reader::read_char): Support filtering the input to a subset of line numbers. (md_reader::md_reader): Initialize fields m_first_line and m_last_line. (md_reader::read_file_fragment): New function. * read-md.h (md_reader::read_file_fragment): New decl. (md_reader::m_first_line): New field. (md_reader::m_last_line): New field. * read-rtl-function.c (function_reader::create_function): Only create cfun if it doesn't already exist. Set PROP_rtl on cfun's curr_properties. Set DECL_INITIAL to a dummy block. (read_rtl_function_body_from_file_range): New function. * read-rtl-function.h (read_rtl_function_body_from_file_range): New decl. * run-rtl-passes.c: New file. * run-rtl-passes.h: New file. gcc/testsuite/ChangeLog: * gcc.dg/rtl/aarch64/asr_div1.c: New test case. * gcc.dg/rtl/aarch64/pr71779.c: New test case. * gcc.dg/rtl/rtl.exp: New file. * gcc.dg/rtl/test.c: New file. * gcc.dg/rtl/truncated-rtl-file.c: New test case. * gcc.dg/rtl/unknown-rtx-code.c: New test case. * gcc.dg/rtl/x86_64/dfinit.c: New test case. * gcc.dg/rtl/x86_64/different-structs.c: New test case. * gcc.dg/rtl/x86_64/final.c: New test case. * gcc.dg/rtl/x86_64/into-cfglayout.c: New test case. * gcc.dg/rtl/x86_64/ira.c: New test case. * gcc.dg/rtl/x86_64/pro_and_epilogue.c: New test case. * gcc.dg/rtl/x86_64/test-multiple-fns.c: New test case. * gcc.dg/rtl/x86_64/test-return-const.c.after-expand.c: New test case. * gcc.dg/rtl/x86_64/test-return-const.c.before-fwprop.c: New test case. * gcc.dg/rtl/x86_64/test-rtl.c: New test case. * gcc.dg/rtl/x86_64/test_1.h: New file. * gcc.dg/rtl/x86_64/times-two.c.after-expand.c: New test case. * gcc.dg/rtl/x86_64/times-two.c.before-df.c: New test case. * gcc.dg/rtl/x86_64/times-two.h: New file. * gcc.dg/rtl/x86_64/vregs.c: New test case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@244878 138bc75d-0d04-0410-961f-82ee72b054a4
2017-01-20 PR c/64279mpolacek
* c-common.h (do_warn_duplicated_branches_r): Declare. * c-gimplify.c (c_genericize): Walk the function tree calling do_warn_duplicated_branches_r. * c-warn.c (expr_from_macro_expansion_r): New. (do_warn_duplicated_branches): New. (do_warn_duplicated_branches_r): New. * c.opt (Wduplicated-branches): New option. * c-typeck.c (build_conditional_expr): Warn about duplicated branches. * call.c (build_conditional_expr_1): Warn about duplicated branches. * semantics.c (finish_expr_stmt): Build statement using the proper location. * doc/invoke.texi: Document -Wduplicated-branches. * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR, COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR, POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT, STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions return 0 only when not OEP_LEXICOGRAPHIC. (fold_build_cleanup_point_expr): Use the expression location when building CLEANUP_POINT_EXPR. * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC. * tree.c (add_expr): Handle error_mark_node. * c-c++-common/Wduplicated-branches-1.c: New test. * c-c++-common/Wduplicated-branches-10.c: New test. * c-c++-common/Wduplicated-branches-11.c: New test. * c-c++-common/Wduplicated-branches-12.c: New test. * c-c++-common/Wduplicated-branches-2.c: New test. * c-c++-common/Wduplicated-branches-3.c: New test. * c-c++-common/Wduplicated-branches-4.c: New test. * c-c++-common/Wduplicated-branches-5.c: New test. * c-c++-common/Wduplicated-branches-6.c: New test. * c-c++-common/Wduplicated-branches-7.c: New test. * c-c++-common/Wduplicated-branches-8.c: New test. * c-c++-common/Wduplicated-branches-9.c: New test. * c-c++-common/Wimplicit-fallthrough-7.c: Coalesce dg-warning. * g++.dg/cpp0x/lambda/lambda-switch.C: Move dg-warning. * g++.dg/ext/builtin-object-size3.C: Likewise. * g++.dg/gomp/loop-1.C: Likewise. * g++.dg/warn/Wduplicated-branches1.C: New test. * g++.dg/warn/Wduplicated-branches2.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@244705 138bc75d-0d04-0410-961f-82ee72b054a4
2017-01-132017-01-13 Richard Biener <rguenther@suse.de>rguenth
* gimple-parser.c (c_parser_gimple_compound_statement): Handle nops. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@244434 138bc75d-0d04-0410-961f-82ee72b054a4
2017-01-132017-01-13 Richard Biener <rguenther@suse.de>rguenth
c/ * gimple-parser.c (c_parser_gimple_postfix_expression): Parse _Literal ( type-name ) number. * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs as _Literal ( type ) number in case usual suffixes do not preserve all information. * gcc.dg/gimplefe-22.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@244393 138bc75d-0d04-0410-961f-82ee72b054a4
2017-01-122017-01-12 Richard Biener <rguenther@suse.de>rguenth
* tree-pretty-print.c (dump_generic_node): Provide -gimple variant for MEM_REF. Sanitize INTEGER_CST for -gimple. c/ * gimple-parser.c (c_parser_gimple_postfix_expression): Parse __MEM. * gcc.dg/gimplefe-21.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@244350 138bc75d-0d04-0410-961f-82ee72b054a4
2017-01-11 PR c++/72813jakub
* gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps of c-header. * c-decl.c (pop_file_scope): Set flag_syntax_only to 1 after writing PCH file. * decl2.c (c_parse_final_cleanups): Set flag_syntax_only to 1 after writing PCH file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@244328 138bc75d-0d04-0410-961f-82ee72b054a4
2017-01-112017-01-11 Richard Biener <rguenther@suse.de>rguenth
PR bootstrap/79052 * gimple-parser.c (c_parser_gimple_switch_stmt): Add missing returns on parse errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@244310 138bc75d-0d04-0410-961f-82ee72b054a4
2017-01-04 PR c++/64767mpolacek
* c.opt (Wpointer-compare): New option. * c-parser.c (c_parser_postfix_expression): Mark zero character constants by setting original_type in c_expr. * c-typeck.c (parser_build_binary_op): Warn when a pointer is compared with a zero character constant. (char_type_p): New function. * typeck.c (cp_build_binary_op): Warn when a pointer is compared with a zero character literal. * doc/invoke.texi: Document -Wpointer-compare. * c-c++-common/Wpointer-compare-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@244076 138bc75d-0d04-0410-961f-82ee72b054a4
2017-01-04C FE: implement fix-it hint for -Wmissing-bracesdmalcolm
gcc/c/ChangeLog: * c-parser.c (c_parser_declaration_or_fndef): Create a rich_location at init_loc and parse it to start_init. (last_init_list_comma): New global. (c_parser_braced_init): Update last_init_list_comma when parsing commas. Pass it to pop_init_level. Pass location of closing brace to pop_init_level. (c_parser_postfix_expression_after_paren_type): Create a rich_location at type_loc and parse it to start_init. (c_parser_omp_declare_reduction): Likewise for loc. * c-tree.h (start_init): Add rich_location * param. (pop_init_level): Add location_t param. * c-typeck.c (struct initializer_stack): Add field "missing_brace_richloc". (start_init): Add richloc param, use it to initialize the stack node's missing_brace_richloc. (last_init_list_comma): New decl. (finish_implicit_inits): Pass last_init_list_comma to pop_init_level. (push_init_level): When finding missing open braces, add fix-it hints to the richloc. (pop_init_level): Add "insert_before" param and pass it when calling pop_init_level. Add fixits about missing close braces to any richloc. Use the richloc for the -Wmissing-braces warning. (set_designator): Pass last_init_list_comma to pop_init_level. (process_init_element): Likewise. gcc/testsuite/ChangeLog: * gcc.dg/Wmissing-braces-fixits.c: New test case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@244061 138bc75d-0d04-0410-961f-82ee72b054a4