diff options
author | Martin Sebor <msebor@redhat.com> | 2019-07-09 16:36:00 +0000 |
---|---|---|
committer | Martin Sebor <msebor@gcc.gnu.org> | 2019-07-09 10:36:00 -0600 |
commit | 6c1dae73cd2ceb6a326f786f6d4e8674863de45e (patch) | |
tree | 3245c6dc2920696a64b6dbe29f7d356194a09249 /gcc/genmatch.c | |
parent | 1f88cc260c67c8492ac15490184b8faead4b6f62 (diff) | |
download | gcc-6c1dae73cd2ceb6a326f786f6d4e8674863de45e.zip gcc-6c1dae73cd2ceb6a326f786f6d4e8674863de45e.tar.gz gcc-6c1dae73cd2ceb6a326f786f6d4e8674863de45e.tar.bz2 |
PR c++/61339 - add mismatch between struct and class [-Wmismatched-tags] to non-bugs
gcc/c/ChangeLog:
PR c++/61339
* c-decl.c: Change class-key from class to struct and vice versa
to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
* gimple-parser.c: Same.
gcc/c-family/ChangeLog:
PR c++/61339
* c-format.c (check_argument_type): Change class-key from class to
struct and vice versa to match convention and avoid -Wclass-is-pod
and -Wstruct-no-pod.
* c-pretty-print.h: Same.
gcc/cp/ChangeLog:
PR c++/61339
* constexpr.c (cxx_eval_call_expression): Change class-key from class
to struct and vice versa to match convention and avoid -Wclass-is-pod
and -Wstruct-no-pod.
* constraint.cc (get_concept_definition): Same.
* cp-tree.h: Same.
* cxx-pretty-print.h: Same.
* error.c: Same.
* logic.cc (term_list::replace): Same.
* name-lookup.c (find_local_binding): Same.
* pt.c (tsubst_binary_right_fold): Same.
* search.c (field_accessor_p): Same.
* semantics.c (expand_or_defer_fn): Same.
gcc/lto/ChangeLog:
PR c++/61339
* lto-dump.c: Change class-key from classi to struct and vice versa
to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
gcc/ChangeLog:
PR c++/61339
* align.h: Change class-key from class to struct and vice versa
to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
* alloc-pool.h: Same.
* asan.c (shadow_mem_size): Same.
* auto-profile.c: Same.
* basic-block.h: Same.
* bitmap.h: Same.
* cfgexpand.c (set_rtl): Same.
(expand_one_stack_var_at): Same.
* cfghooks.h: Same.
* cfgloop.h: Same.
* cgraph.h: Same.
* config/i386/i386.h: Same.
* df-problems.c (df_print_bb_index): Same.
* df-scan.c: Same.
* df.h (df_single_use): Same.
* diagnostic-show-locus.c (layout::print_annotation_line): Same.
(layout::annotation_line_showed_range_p): Same.
(get_printed_columns): Same.
(correction::ensure_terminated): Same.
(line_corrections::~line_corrections): Same.
* dojump.h: Same.
* dse.c: Same.
* dump-context.h: Same.
* dumpfile.h: Same.
* dwarf2out.c: Same.
* edit-context.c: Same.
* fibonacci_heap.c (test_union_of_equal_heaps): Same.
* flags.h: Same.
* function.c (assign_stack_local): Same.
* function.h: Same.
* gcc.c: Same.
* gcov.c (block_info::block_info): Same.
* genattrtab.c: Same.
* genextract.c: Same.
* genmatch.c (comparison_code_p): Same.
(id_base::id_base): Same.
(decision_tree::print): Same.
* genoutput.c: Same.
* genpreds.c (write_one_predicate_function): Same.
* genrecog.c (validate_pattern): Same.
(find_operand_positions): Same.
(optimize_subroutine_group): Same.
(merge_pattern_transition::merge_pattern_transition): Same.
(merge_pattern_info::merge_pattern_info): Same.
(merge_state_result::merge_state_result): Same.
(merge_into_state): Same.
* gensupport.c: Same.
* gensupport.h: Same.
* ggc-common.c (init_ggc_heuristics): Same.
* ggc-tests.c (test_union): Same.
* gimple-loop-interchange.cc (dump_induction): Same.
* gimple-loop-versioning.cc: Same.
* gimple-match.h (gimple_match_cond::any_else): Same.
* gimple-ssa-backprop.c: Same.
* gimple-ssa-sprintf.c: Same.
* gimple-ssa-store-merging.c (store_operand_info::store_operand_info): Same.
(store_immediate_info::store_immediate_info): Same.
(merged_store_group::apply_stores): Same.
(get_location_for_stmts): Same.
* gimple-ssa-strength-reduction.c: Same.
* gimple-ssa-warn-alloca.c: Same.
* gimple-ssa-warn-restrict.c (pass_wrestrict::execute): Same.
* godump.c (go_type_decl): Same.
* hash-map-tests.c (test_map_of_strings_to_int): Same.
* hash-map.h: Same.
* hash-set-tests.c (test_set_of_strings): Same.
* hsa-brig.c: Same.
* hsa-common.h: Same.
* hsa-gen.c (transformable_switch_to_sbr_p): Same.
* input.c (assert_loceq): Same.
* input.h: Same.
* ipa-cp.c: Same.
* ipa-devirt.c (possible_polymorphic_call_targets_1): Same.
* ipa-fnsummary.h: Same.
* ipa-inline.h: Same.
* ipa-prop.h: Same.
* ipa-split.c (visit_bb): Same.
* ira-int.h (minmax_set_iter_next): Same.
* loop-invariant.c: Same.
* loop-iv.c: Same.
* lra-eliminations.c: Same.
* lra-int.h: Same.
* lra-lives.c (mark_regno_dead): Same.
* lra-remat.c: Same.
* lra-spills.c: Same.
* lto-streamer.h: Same.
* mem-stats.h: Same.
* omp-grid.c (omp_grid_lastprivate_predicate): Same.
* omp-low.c (omp_clause_aligned_alignment): Same.
* optabs-query.h (get_vcond_eq_icode): Same.
* optabs.h: Same.
* opts.c (wrap_help): Same.
* poly-int.h: Same.
* predict.c (predict_paths_leading_to_edge): Same.
* pretty-print.h: Same.
* profile-count.h: Same.
* read-md.h: Same.
* read-rtl-function.c: Same.
* ree.c: Same.
* reginfo.c: Same.
* regrename.c: Same.
* regrename.h: Same.
* reload.h: Same.
* rtl-iter.h: Same.
* rtl.h (costs_add_n_insns): Same.
* sanopt.c: Same.
* sched-int.h: Same.
* sel-sched-ir.h: Same.
* selftest.h: Same.
* sese.h (vec_find): Same.
* stmt.c: Same.
* target-globals.h: Same.
* tree-affine.c (aff_combination_find_elt): Same.
* tree-affine.h: Same.
* tree-data-ref.h: Same.
* tree-outof-ssa.c (ssa_is_replaceable_p): Same.
* tree-predcom.c: Same.
* tree-scalar-evolution.c (find_var_scev_info): Same.
* tree-ssa-alias.h: Same.
* tree-ssa-ccp.c: Same.
* tree-ssa-coalesce.c (ssa_conflicts_dump): Same.
* tree-ssa-loop-im.c (for_all_locs_in_loop): Same.
(rewrite_mem_refs): Same.
(execute_sm_if_changed): Same.
(hoist_memory_references): Same.
* tree-ssa-loop-ivopts.c (operator<=): Same.
* tree-ssa-loop.h: Same.
* tree-ssa-pre.c (get_or_alloc_expr_for_name): Same.
* tree-ssa-structalias.c: Same.
* tree-switch-conversion.h (cluster::cluster): Same.
(simple_cluster::simple_cluster): Same.
* tree-vect-patterns.c (type_conversion_p): Same.
* tree-vectorizer.c (dump_stmt_cost): Same.
* tree-vectorizer.h (loop_vec_info_for_loop): Same.
* tree.c (protected_set_expr_location): Same.
* tree.h (desired_pro_or_demotion_p): Same.
(fndecl_built_in_p): Same.
* unique-ptr-tests.cc: Same.
* var-tracking.c (delete_variable_part): Same.
* varasm.c (assemble_real): Same.
(tree_output_constant_def): Same.
* vec.c: Same.
* wide-int-bitmask.h: Same.
* wide-int.h (decompose): Same.
From-SVN: r273308
Diffstat (limited to 'gcc/genmatch.c')
-rw-r--r-- | gcc/genmatch.c | 57 |
1 files changed, 38 insertions, 19 deletions
diff --git a/gcc/genmatch.c b/gcc/genmatch.c index 109bd9e..7403ccb 100644 --- a/gcc/genmatch.c +++ b/gcc/genmatch.c @@ -347,8 +347,9 @@ comparison_code_p (enum tree_code code) /* Base class for all identifiers the parser knows. */ -struct id_base : nofree_ptr_hash<id_base> +class id_base : public nofree_ptr_hash<id_base> { +public: enum id_kind { CODE, FN, PREDICATE, USER, NULL_ID } kind; id_base (id_kind, const char *, int = -1); @@ -393,8 +394,9 @@ id_base::id_base (id_kind kind_, const char *id_, int nargs_) /* Identifier that maps to a tree code. */ -struct operator_id : public id_base +class operator_id : public id_base { +public: operator_id (enum tree_code code_, const char *id_, unsigned nargs_, const char *tcc_) : id_base (id_base::CODE, id_, nargs_), code (code_), tcc (tcc_) {} @@ -404,8 +406,9 @@ struct operator_id : public id_base /* Identifier that maps to a builtin or internal function code. */ -struct fn_id : public id_base +class fn_id : public id_base { +public: fn_id (enum built_in_function fn_, const char *id_) : id_base (id_base::FN, id_), fn (fn_) {} fn_id (enum internal_fn fn_, const char *id_) @@ -417,8 +420,9 @@ struct simplify; /* Identifier that maps to a user-defined predicate. */ -struct predicate_id : public id_base +class predicate_id : public id_base { +public: predicate_id (const char *id_) : id_base (id_base::PREDICATE, id_), matchers (vNULL) {} vec<simplify *> matchers; @@ -426,8 +430,9 @@ struct predicate_id : public id_base /* Identifier that maps to a operator defined by a 'for' directive. */ -struct user_id : public id_base +class user_id : public id_base { +public: user_id (const char *id_, bool is_oper_list_ = false) : id_base (id_base::USER, id_), substitutes (vNULL), used (false), is_oper_list (is_oper_list_) {} @@ -665,7 +670,8 @@ struct capture_info; /* The base class for operands. */ -struct operand { +class operand { +public: enum op_type { OP_PREDICATE, OP_EXPR, OP_CAPTURE, OP_C_EXPR, OP_IF, OP_WITH }; operand (enum op_type type_, location_t loc_) : type (type_), location (loc_) {} @@ -680,8 +686,9 @@ struct operand { /* A predicate operand. Predicates are leafs in the AST. */ -struct predicate : public operand +class predicate : public operand { +public: predicate (predicate_id *p_, location_t loc) : operand (OP_PREDICATE, loc), p (p_) {} predicate_id *p; @@ -690,8 +697,9 @@ struct predicate : public operand /* An operand that constitutes an expression. Expressions include function calls and user-defined predicate invocations. */ -struct expr : public operand +class expr : public operand { +public: expr (id_base *operation_, location_t loc, bool is_commutative_ = false) : operand (OP_EXPR, loc), operation (operation_), ops (vNULL), expr_type (NULL), is_commutative (is_commutative_), @@ -723,11 +731,13 @@ struct expr : public operand a leaf operand in the AST. This class is also used to represent the code to be generated for 'if' and 'with' expressions. */ -struct c_expr : public operand +class c_expr : public operand { +public: /* A mapping of an identifier and its replacement. Used to apply 'for' lowering. */ - struct id_tab { + class id_tab { + public: const char *id; const char *oper; id_tab (const char *id_, const char *oper_): id (id_), oper (oper_) {} @@ -753,8 +763,9 @@ struct c_expr : public operand /* A wrapper around another operand that captures its value. */ -struct capture : public operand +class capture : public operand { +public: capture (location_t loc, unsigned where_, operand *what_, bool value_) : operand (OP_CAPTURE, loc), where (where_), value_match (value_), what (what_) {} @@ -773,8 +784,9 @@ struct capture : public operand /* if expression. */ -struct if_expr : public operand +class if_expr : public operand { +public: if_expr (location_t loc) : operand (OP_IF, loc), cond (NULL), trueexpr (NULL), falseexpr (NULL) {} c_expr *cond; @@ -784,8 +796,9 @@ struct if_expr : public operand /* with expression. */ -struct with_expr : public operand +class with_expr : public operand { +public: with_expr (location_t loc) : operand (OP_WITH, loc), with (NULL), subexpr (NULL) {} c_expr *with; @@ -845,8 +858,9 @@ is_a_helper <with_expr *>::test (operand *op) duplicates all outer 'if' and 'for' expressions here so each simplify can exist in isolation. */ -struct simplify +class simplify { +public: enum simplify_kind { SIMPLIFY, MATCH }; simplify (simplify_kind kind_, unsigned id_, operand *match_, @@ -1598,8 +1612,9 @@ static unsigned current_id; /* Decision tree base class, used for DT_NODE. */ -struct dt_node +class dt_node { +public: enum dt_type { DT_NODE, DT_OPERAND, DT_TRUE, DT_MATCH, DT_SIMPLIFY }; enum dt_type type; @@ -1634,8 +1649,9 @@ struct dt_node /* Generic decision tree node used for DT_OPERAND, DT_MATCH and DT_TRUE. */ -struct dt_operand : public dt_node +class dt_operand : public dt_node { +public: operand *op; dt_operand *match_dop; unsigned pos; @@ -1660,8 +1676,9 @@ struct dt_operand : public dt_node /* Leaf node of the decision tree, used for DT_SIMPLIFY. */ -struct dt_simplify : public dt_node +class dt_simplify : public dt_node { +public: simplify *s; unsigned pattern_no; dt_operand **indexes; @@ -1697,8 +1714,9 @@ is_a_helper <dt_simplify *>::test (dt_node *n) /* A container for the actual decision tree. */ -struct decision_tree +class decision_tree { +public: dt_node *root; void insert (struct simplify *, unsigned); @@ -2070,8 +2088,9 @@ decision_tree::print (FILE *f) on the outermost match expression operands for cases we cannot handle. */ -struct capture_info +class capture_info { +public: capture_info (simplify *s, operand *, bool); void walk_match (operand *o, unsigned toplevel_arg, bool, bool); bool walk_result (operand *o, bool, operand *); |