This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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 {

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]