diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 3cd2c30ab335f06fcffdc253dc2b67fbc2d45cc4..af16d67138d77c1e2588264ff0dd3499258fb2a0 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2002-12-22  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
+
+	* cp-tree.h (make_unbound_class_template): Use tsubst_flags_t.
+	* decl.c (make_unbound_class_template): Adjust.  Check for tf_error.
+	* pt.c (tsubst) [OFFSET_TYPE]: Check for tf_error.
+
 2002-12-20  Kazu Hirata  <kazu@cs.umass.edu>
 
 	* ChangeLog: Fix a typo.
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index 12504e5a1dd5179af0d7096023d26a7160a531cd..0752bd025264351c00991c1c8ff573f2034d1b60 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -3699,7 +3699,7 @@ extern void set_namespace_binding               PARAMS ((tree, tree, tree));
 extern tree lookup_namespace_name		PARAMS ((tree, tree));
 extern tree build_typename_type                 PARAMS ((tree, tree, tree, tree));
 extern tree make_typename_type			PARAMS ((tree, tree, tsubst_flags_t));
-extern tree make_unbound_class_template		PARAMS ((tree, tree, int));
+extern tree make_unbound_class_template		PARAMS ((tree, tree, tsubst_flags_t));
 extern tree lookup_name_nonclass		PARAMS ((tree));
 extern tree lookup_function_nonclass            PARAMS ((tree, tree));
 extern tree lookup_name				PARAMS ((tree, int));
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 0209e344be14e9ee860b55d9fbe6b0856cb17339..eef5335fb5fefe4d426b6a48ab52724c7d50e318 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -5759,7 +5759,7 @@ make_typename_type (context, name, complain)
 tree
 make_unbound_class_template (context, name, complain)
      tree context, name;
-     int complain;
+     tsubst_flags_t complain;
 {
   tree t;
   tree d;
@@ -5781,7 +5781,7 @@ make_unbound_class_template (context, name, complain)
 
       if (!tmpl || !DECL_CLASS_TEMPLATE_P (tmpl))
 	{
-	  if (complain)
+	  if (complain & tf_error)
 	    error ("no class template named `%#T' in `%#T'", name, context);
 	  return error_mark_node;
 	}
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 33a84a3aa62fe8af71a47c6945d5a0fad444d40c..eb574548e777132abda9ea64f198cbbdd8ae6e08 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -6800,7 +6800,7 @@ tsubst (t, args, complain, in_decl)
 	  }
 	if (TREE_CODE (type) == REFERENCE_TYPE)
 	  {
-	    if (complain)
+	    if (complain & tf_error)
 	      error ("creating pointer to member reference type `%T'", type);
 	    
 	    return error_mark_node;