]> gcc.gnu.org Git - gcc.git/blobdiff - gcc/cp/cp-tree.h
re PR c++/26693 (Access checks not performed for types in templates)
[gcc.git] / gcc / cp / cp-tree.h
index 186ec9ab6adffef6a615d8ba42cd3bc9b79e28c5..b740700e1838de646f5162b52ce9ef9a675d9d55 100644 (file)
@@ -3179,6 +3179,14 @@ more_aggr_init_expr_args_p (const aggr_init_expr_arg_iterator *iter)
    && TREE_CODE (DECL_TEMPLATE_RESULT (NODE)) == TYPE_DECL \
    && !DECL_TEMPLATE_TEMPLATE_PARM_P (NODE))
 
+/* The chained list of some types that are referenced in templates.
+   These types are those which need to be access checked at
+   template instantiation time.  For the time being, only typedef-ed types defined
+   as class members are put here at parsing time.
+   Other types for which access check could be required at template instantiation
+   time could be added later.  */
+#define MEMBER_TYPES_NEEDING_ACCESS_CHECK(NODE) DECL_ACCESS (NODE)
+
 /* Nonzero if NODE which declares a type.  */
 #define DECL_DECLARES_TYPE_P(NODE) \
   (TREE_CODE (NODE) == TYPE_DECL || DECL_CLASS_TEMPLATE_P (NODE))
@@ -4539,6 +4547,7 @@ extern tree check_explicit_specialization (tree, tree, int, int);
 extern tree make_auto                          (void);
 extern tree do_auto_deduction                  (tree, tree, tree);
 extern tree type_uses_auto                     (tree);
+extern void append_type_to_template_for_access_check (tree, tree, tree);
 extern tree splice_late_return_type            (tree, tree);
 extern bool is_auto                            (const_tree);
 extern tree process_template_parm              (tree, tree, bool, bool);
This page took 0.028467 seconds and 5 git commands to generate.