We weren't printing the condition and message of a STATIC_ASSERT. It's also unnecessary to duplicate the code for instantiating a STATIC_ASSERT between tsubst_expr and instantiate_class_template_1.
Tested x86_64-pc-linux-gnu, applying to trunk. gcc/cp/ChangeLog 2020-05-11 Jason Merrill <ja...@redhat.com> * pt.c (instantiate_class_template_1): Call tsubst_expr for STATIC_ASSERT member. * ptree.c (cxx_print_xnode): Handle STATIC_ASSERT. --- gcc/cp/pt.c | 17 ++--------------- gcc/cp/ptree.c | 11 +++++++++++ 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 112426af72a..28f3c90f17b 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -11809,21 +11809,8 @@ instantiate_class_template_1 (tree type) { /* Build new TYPE_FIELDS. */ if (TREE_CODE (t) == STATIC_ASSERT) - { - tree condition; - - ++c_inhibit_evaluation_warnings; - condition = - tsubst_expr (STATIC_ASSERT_CONDITION (t), args, - tf_warning_or_error, NULL_TREE, - /*integral_constant_expression_p=*/true); - --c_inhibit_evaluation_warnings; - - finish_static_assert (condition, - STATIC_ASSERT_MESSAGE (t), - STATIC_ASSERT_SOURCE_LOCATION (t), - /*member_p=*/true); - } + tsubst_expr (t, args, tf_warning_or_error, NULL_TREE, + /*integral_constant_expression_p=*/true); else if (TREE_CODE (t) != CONST_DECL) { tree r; diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c index 285028a4841..ab18eecd0e6 100644 --- a/gcc/cp/ptree.c +++ b/gcc/cp/ptree.c @@ -269,6 +269,17 @@ cxx_print_xnode (FILE *file, tree node, int indent) case LAMBDA_EXPR: cxx_print_lambda_node (file, node, indent); break; + case STATIC_ASSERT: + if (location_t loc = STATIC_ASSERT_SOURCE_LOCATION (node)) + { + expanded_location xloc = expand_location (loc); + indent_to (file, indent+4); + fprintf (file, "%s:%d:%d", xloc.file, xloc.line, xloc.column); + } + print_node (file, "condition", STATIC_ASSERT_CONDITION (node), indent+4); + if (tree message = STATIC_ASSERT_MESSAGE (node)) + print_node (file, "message", message, indent+4); + break; default: break; } base-commit: 2b2d298ff845ab7a07ffbd51da79473736da3324 -- 2.18.1