summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL
diff options
context:
space:
mode:
authorOliver Kellogg <okellogg@users.sourceforge.net>2023-01-14 23:33:27 +0100
committerOliver Kellogg <okellogg@users.sourceforge.net>2023-01-14 23:33:27 +0100
commitf790b484f95da51afd080f5cc73209c086476ad2 (patch)
tree70f7566aee382f71257e1ebfa9b0ce87b678c995 /TAO/TAO_IDL
parent0fd18ea8107aed0274c5e73da15f6f7e18337f8b (diff)
downloadATCD-f790b484f95da51afd080f5cc73209c086476ad2.tar.gz
Address issue #2015 : In TAO/TAO_IDL/ast/ast_field.cpp constructor handle AST_Decl::NT_except.
Diffstat (limited to 'TAO/TAO_IDL')
-rw-r--r--TAO/TAO_IDL/ast/ast_argument.cpp11
-rw-r--r--TAO/TAO_IDL/ast/ast_field.cpp4
2 files changed, 15 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/ast/ast_argument.cpp b/TAO/TAO_IDL/ast/ast_argument.cpp
index 0fbe32d0656..039e5662f23 100644
--- a/TAO/TAO_IDL/ast/ast_argument.cpp
+++ b/TAO/TAO_IDL/ast/ast_argument.cpp
@@ -70,6 +70,11 @@ trademarks or registered trademarks of Sun Microsystems, Inc.
#include "ast_argument.h"
#include "ast_visitor.h"
+#include "ast_type.h"
+
+#include "utl_err.h"
+
+#include "global_extern.h"
// Static functions.
@@ -101,6 +106,12 @@ AST_Argument::AST_Argument (Direction d,
AST_Field (AST_Decl::NT_argument, ft, n),
pd_direction (d)
{
+ AST_Decl::NodeType fnt = ft->node_type ();
+
+ if (fnt == AST_Decl::NT_except)
+ {
+ idl_global->err ()->not_a_type (ft);
+ }
}
AST_Argument::~AST_Argument ()
diff --git a/TAO/TAO_IDL/ast/ast_field.cpp b/TAO/TAO_IDL/ast/ast_field.cpp
index 6b09b061604..bacbf80714c 100644
--- a/TAO/TAO_IDL/ast/ast_field.cpp
+++ b/TAO/TAO_IDL/ast/ast_field.cpp
@@ -115,6 +115,10 @@ AST_Field::AST_Field (AST_Type *ft,
idl_global->err ()->not_a_type (ft);
}
}
+ else if (fnt == AST_Decl::NT_except)
+ {
+ idl_global->err ()->not_a_type (ft);
+ }
}
// To be used when constructing a node of a subclass of AST_Field.