diff options
Diffstat (limited to 'modules/TAO/TAO_IDL/fe/y.tab.cpp')
-rw-r--r-- | modules/TAO/TAO_IDL/fe/y.tab.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/modules/TAO/TAO_IDL/fe/y.tab.cpp b/modules/TAO/TAO_IDL/fe/y.tab.cpp index 8eb5b16c493..81485e71f83 100644 --- a/modules/TAO/TAO_IDL/fe/y.tab.cpp +++ b/modules/TAO/TAO_IDL/fe/y.tab.cpp @@ -4201,12 +4201,17 @@ tao_yyreduce: */ if ((tao_yyvsp[(9) - (9)].exval) != 0 && s != 0) { + bool param_holder = + (tao_yyvsp[(9) - (9)].exval)->is_param_holder (); + AST_Expression::AST_ExprValue *result = (tao_yyvsp[(9) - (9)].exval)->check_and_coerce ((tao_yyvsp[(3) - (9)].etval), tao_enum_constant_decl); tao_enum_constant_decl = 0; - - if (result == 0) + + // If the expression is a template parameter place + // holder, 'result' will be 0, but it's ok. + if (result == 0 && ! param_holder) { idl_global->err ()->coercion_error ((tao_yyvsp[(9) - (9)].exval), (tao_yyvsp[(3) - (9)].etval)); |