This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PATCH RFA: More C++ frontend changes for building with -Wc++-compat
- From: Ian Lance Taylor <iant at google dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 16 Apr 2009 22:05:34 -0700
- Subject: PATCH RFA: More C++ frontend changes for building with -Wc++-compat
Here are some more changes to the C++ frontend found by building with
the current version of my -Wc++-compat enhancements (which I hope to
send out tomorrow).
Bootstrapped and tested on i686-pc-linux-gnu. OK for mainline?
Ian
2009-04-16 Ian Lance Taylor <iant@google.com>
* cp-tree.h (base_access): Change typedef to int.
* parser.c (cp_parser_omp_flush): Change 0 to OMP_CLAUSE_ERROR.
(cp_parser_omp_threadprivate): Likewise.
* pt.c (unify_pack_expansion): Add casts to enum type.
Index: cp/pt.c
===================================================================
--- cp/pt.c (revision 146221)
+++ cp/pt.c (working copy)
@@ -13131,7 +13131,9 @@ unify_pack_expansion (tree tparms, tree
match. */
if (resolve_overloaded_unification
- (tparms, targs, parm, arg, strict, sub_strict)
+ (tparms, targs, parm, arg,
+ (unification_kind_t) strict,
+ sub_strict)
!= 0)
return 1;
skip_arg_p = true;
@@ -13150,8 +13152,8 @@ unify_pack_expansion (tree tparms, tree
if (!subr)
arg_strict |=
- maybe_adjust_types_for_deduction (strict, &parm, &arg,
- arg_expr);
+ maybe_adjust_types_for_deduction ((unification_kind_t) strict,
+ &parm, &arg, arg_expr);
}
if (!skip_arg_p)
Index: cp/parser.c
===================================================================
--- cp/parser.c (revision 146221)
+++ cp/parser.c (working copy)
@@ -21043,7 +21043,7 @@ static void
cp_parser_omp_flush (cp_parser *parser, cp_token *pragma_tok)
{
if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_PAREN))
- (void) cp_parser_omp_var_list (parser, 0, NULL);
+ (void) cp_parser_omp_var_list (parser, OMP_CLAUSE_ERROR, NULL);
cp_parser_require_pragma_eol (parser, pragma_tok);
finish_omp_flush ();
@@ -21884,7 +21884,7 @@ cp_parser_omp_threadprivate (cp_parser *
{
tree vars;
- vars = cp_parser_omp_var_list (parser, 0, NULL);
+ vars = cp_parser_omp_var_list (parser, OMP_CLAUSE_ERROR, NULL);
cp_parser_require_pragma_eol (parser, pragma_tok);
finish_omp_threadprivate (vars);
Index: cp/cp-tree.h
===================================================================
--- cp/cp-tree.h (revision 146221)
+++ cp/cp-tree.h (working copy)
@@ -3592,7 +3592,7 @@ enum tsubst_flags {
typedef int tsubst_flags_t;
/* The kind of checking we can do looking in a class hierarchy. */
-typedef enum base_access {
+enum base_access {
ba_any = 0, /* Do not check access, allow an ambiguous base,
prefer a non-virtual base */
ba_unique = 1 << 0, /* Must be a unique base. */
@@ -3600,7 +3600,11 @@ typedef enum base_access {
ba_check = ba_unique | ba_check_bit,
ba_ignore_scope = 1 << 2, /* Ignore access allowed by local scope. */
ba_quiet = 1 << 3 /* Do not issue error messages. */
-} base_access;
+};
+
+/* This type is used for parameters and variables which hold
+ combinations of the flags in enum base_access. */
+typedef int base_access;
/* The various kinds of access check during parsing. */
typedef enum deferring_kind {