summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/ast/ast_expression.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/ast/ast_expression.cpp')
-rw-r--r--TAO/TAO_IDL/ast/ast_expression.cpp161
1 files changed, 14 insertions, 147 deletions
diff --git a/TAO/TAO_IDL/ast/ast_expression.cpp b/TAO/TAO_IDL/ast/ast_expression.cpp
index a9e0239f8b1..3551f838fd1 100644
--- a/TAO/TAO_IDL/ast/ast_expression.cpp
+++ b/TAO/TAO_IDL/ast/ast_expression.cpp
@@ -363,25 +363,17 @@ coerce_value(AST_Expression::AST_ExprValue *ev, AST_Expression::ExprType t)
ev->et = AST_Expression::EV_short;
return ev;
case AST_Expression::EV_longlong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
- if (ev->u.llval > (ACE_CDR::LongLong) SHRT_MAX || ev->u.llval < (ACE_CDR::LongLong) - (SHRT_MAX))
+ if (ev->u.llval > (ACE_CDR::LongLong) SHRT_MAX || ev->u.llval < (ACE_CDR::LongLong) -(SHRT_MAX))
return NULL;
ev->u.sval = (short) ev->u.llval;
ev->et = AST_Expression::EV_short;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_ulonglong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.ullval > (ACE_CDR::ULongLong) SHRT_MAX)
return NULL;
ev->u.sval = (short) ev->u.ullval;
ev->et = AST_Expression::EV_short;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_bool:
ev->u.sval = (short) ev->u.bval;
ev->et = AST_Expression::EV_short;
@@ -443,25 +435,17 @@ coerce_value(AST_Expression::AST_ExprValue *ev, AST_Expression::ExprType t)
ev->et = AST_Expression::EV_ushort;
return ev;
case AST_Expression::EV_longlong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.llval > (ACE_CDR::LongLong) USHRT_MAX || ev->u.llval < 0)
return NULL;
ev->u.usval = (unsigned short) ev->u.llval;
ev->et = AST_Expression::EV_ushort;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_ulonglong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.ullval > (ACE_CDR::ULongLong) USHRT_MAX)
return NULL;
ev->u.usval = (unsigned short) ev->u.ullval;
ev->et = AST_Expression::EV_ushort;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_bool:
ev->u.usval = (unsigned short) ev->u.bval;
ev->et = AST_Expression::EV_ushort;
@@ -521,25 +505,17 @@ coerce_value(AST_Expression::AST_ExprValue *ev, AST_Expression::ExprType t)
ev->et = AST_Expression::EV_long;
return ev;
case AST_Expression::EV_longlong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.llval > (ACE_CDR::LongLong) LONG_MAX || ev->u.llval < (ACE_CDR::LongLong) -(LONG_MAX))
return NULL;
ev->u.lval = (long) ev->u.llval;
ev->et = AST_Expression::EV_long;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_ulonglong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.ullval > (ACE_CDR::ULongLong) LONG_MAX)
return NULL;
ev->u.lval = (long) ev->u.ullval;
ev->et = AST_Expression::EV_long;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_bool:
ev->u.lval = (long) ev->u.bval;
ev->et = AST_Expression::EV_long;
@@ -599,25 +575,17 @@ coerce_value(AST_Expression::AST_ExprValue *ev, AST_Expression::ExprType t)
case AST_Expression::EV_ulong:
return ev;
case AST_Expression::EV_longlong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.llval > (ACE_CDR::LongLong) ULONG_MAX || ev->u.llval < 0)
return NULL;
ev->u.ulval = (unsigned long) ev->u.llval;
ev->et = AST_Expression::EV_ulong;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_ulonglong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.ullval > (ACE_CDR::ULongLong) ULONG_MAX)
return NULL;
ev->u.ulval = (unsigned long) ev->u.ullval;
ev->et = AST_Expression::EV_ulong;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_bool:
ev->u.ulval = (unsigned long) ev->u.bval;
ev->et = AST_Expression::EV_ulong;
@@ -657,7 +625,6 @@ coerce_value(AST_Expression::AST_ExprValue *ev, AST_Expression::ExprType t)
return NULL;
}
case AST_Expression::EV_longlong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
switch (ev->et) {
case AST_Expression::EV_short:
ev->u.llval = (ACE_CDR::LongLong) ev->u.sval;
@@ -677,6 +644,7 @@ coerce_value(AST_Expression::AST_ExprValue *ev, AST_Expression::ExprType t)
return ev;
case AST_Expression::EV_longlong:
return ev;
+ return ev;
case AST_Expression::EV_ulonglong:
if (ev->u.ullval > ACE_INT64_MAX)
return NULL;
@@ -721,11 +689,7 @@ coerce_value(AST_Expression::AST_ExprValue *ev, AST_Expression::ExprType t)
case AST_Expression::EV_none:
return NULL;
}
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_ulonglong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
switch (ev->et) {
case AST_Expression::EV_short:
if (ev->u.sval < 0)
@@ -793,9 +757,6 @@ coerce_value(AST_Expression::AST_ExprValue *ev, AST_Expression::ExprType t)
case AST_Expression::EV_none:
return NULL;
}
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_bool:
switch (ev->et) {
case AST_Expression::EV_short:
@@ -815,21 +776,13 @@ coerce_value(AST_Expression::AST_ExprValue *ev, AST_Expression::ExprType t)
ev->et = AST_Expression::EV_bool;
return ev;
case AST_Expression::EV_longlong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
ev->u.bval = (ev->u.llval == 0) ? I_FALSE : I_TRUE;
ev->et = AST_Expression::EV_bool;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
- case AST_Expression::EV_ulonglong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
+ case AST_Expression::EV_ulonglong:
ev->u.bval = (ev->u.ullval == 0) ? I_FALSE : I_TRUE;
ev->et = AST_Expression::EV_bool;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_bool:
return ev;
case AST_Expression::EV_float:
@@ -879,17 +832,12 @@ coerce_value(AST_Expression::AST_ExprValue *ev, AST_Expression::ExprType t)
ev->et = AST_Expression::EV_float;
return ev;
case AST_Expression::EV_longlong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.llval > FLT_MAX || ev->u.llval < -(FLT_MAX))
return NULL;
ev->u.fval = (float) ev->u.llval;
ev->et = AST_Expression::EV_float;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_ulonglong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
// Some compilers don't implement unsigned 64-bit to float conversions,
// so we are stuck with the signed 64-bit max value.
if (ev->u.ullval > ACE_UINT64_MAX
@@ -898,9 +846,6 @@ coerce_value(AST_Expression::AST_ExprValue *ev, AST_Expression::ExprType t)
ev->u.fval = (float) ((ACE_CDR::LongLong) ev->u.ullval);
ev->et = AST_Expression::EV_float;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_bool:
ev->u.fval = (float) ((ev->u.bval == I_TRUE) ? 1.0 : 0.0);
ev->et = AST_Expression::EV_float;
@@ -952,15 +897,10 @@ coerce_value(AST_Expression::AST_ExprValue *ev, AST_Expression::ExprType t)
ev->et = AST_Expression::EV_double;
return ev;
case AST_Expression::EV_longlong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
ev->u.dval = (double) ev->u.llval;
ev->et = AST_Expression::EV_double;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_ulonglong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
// Some compilers don't implement unsigned 64-bit to double
// conversions, so we are stuck with the signed 64-bit max value.
if (ev->u.ullval > ACE_INT64_MAX)
@@ -968,9 +908,6 @@ coerce_value(AST_Expression::AST_ExprValue *ev, AST_Expression::ExprType t)
ev->u.dval = (double) ((ACE_CDR::LongLong) ev->u.ullval);
ev->et = AST_Expression::EV_double;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_bool:
ev->u.dval = (ev->u.bval == I_TRUE) ? 1.0 : 0.0;
ev->et = AST_Expression::EV_double;
@@ -1028,25 +965,17 @@ coerce_value(AST_Expression::AST_ExprValue *ev, AST_Expression::ExprType t)
ev->et = AST_Expression::EV_char;
return ev;
case AST_Expression::EV_longlong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.llval > (ACE_CDR::LongLong) MAXCHAR || ev->u.llval < (ACE_CDR::LongLong) -(MAXCHAR))
return NULL;
ev->u.cval = (char) ev->u.llval;
ev->et = AST_Expression::EV_char;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_ulonglong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.ullval > (ACE_CDR::ULongLong) MAXCHAR)
return NULL;
ev->u.cval = (char) ev->u.ullval;
ev->et = AST_Expression::EV_char;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_bool:
ev->u.cval = (char) ev->u.bval;
ev->et = AST_Expression::EV_char;
@@ -1108,25 +1037,17 @@ coerce_value(AST_Expression::AST_ExprValue *ev, AST_Expression::ExprType t)
ev->et = AST_Expression::EV_wchar;
return ev;
case AST_Expression::EV_longlong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.llval > (ACE_CDR::LongLong) ULONG_MAX || ev->u.llval < 0)
return NULL;
ev->u.wcval = (ACE_CDR::WChar) ev->u.llval;
ev->et = AST_Expression::EV_wchar;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_ulonglong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.ullval > (ACE_CDR::ULongLong) ULONG_MAX)
return NULL;
ev->u.wcval = (ACE_CDR::WChar) ev->u.ullval;
ev->et = AST_Expression::EV_wchar;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_bool:
ev->u.wcval = (ACE_CDR::WChar) ev->u.bval;
ev->et = AST_Expression::EV_wchar;
@@ -1190,25 +1111,17 @@ coerce_value(AST_Expression::AST_ExprValue *ev, AST_Expression::ExprType t)
ev->et = AST_Expression::EV_octet;
return ev;
case AST_Expression::EV_longlong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.llval < 0 || ev->u.llval > (ACE_CDR::LongLong) (MAXCHAR << 1))
return NULL;
ev->u.oval = (unsigned char) ev->u.llval;
ev->et = AST_Expression::EV_octet;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_ulonglong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.ullval > (ACE_CDR::ULongLong) (MAXCHAR << 1))
return NULL;
ev->u.oval = (unsigned char) ev->u.ullval;
ev->et = AST_Expression::EV_octet;
return ev;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_bool:
ev->u.oval = (ev->u.bval == I_FALSE) ? 1 : 0;
ev->et = AST_Expression::EV_octet;
@@ -1542,7 +1455,9 @@ AST_Expression::coerce(AST_Expression::ExprType t)
copy->et = pd_ev->et;
switch (pd_ev->et) {
+ case EV_longlong:
case EV_longdouble:
+ case EV_wchar:
case EV_wstring:
case EV_void:
case EV_none:
@@ -1560,20 +1475,9 @@ AST_Expression::coerce(AST_Expression::ExprType t)
case EV_ulong:
copy->u.ulval = pd_ev->u.ulval;
break;
- case EV_longlong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
- copy->u.llval = pd_ev->u.llval;
- break;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case EV_ulonglong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
copy->u.ullval = pd_ev->u.ullval;
break;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return NULL;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case EV_bool:
copy->u.bval = pd_ev->u.bval;
break;
@@ -1586,9 +1490,6 @@ AST_Expression::coerce(AST_Expression::ExprType t)
case EV_char:
copy->u.cval = pd_ev->u.cval;
break;
- case EV_wchar:
- copy->u.wcval = pd_ev->u.wcval;
- break;
case EV_octet:
copy->u.oval = pd_ev->u.oval;
break;
@@ -1705,37 +1606,24 @@ AST_Expression::operator==(AST_Expression *vc)
return (pd_ev->u.dval == vc->ev()->u.dval) ? I_TRUE : I_FALSE;
case EV_char:
return (pd_ev->u.cval == vc->ev()->u.cval) ? I_TRUE : I_FALSE;
- case EV_wchar:
- return (pd_ev->u.wcval == vc->ev()->u.wcval) ? I_TRUE : I_FALSE;
case EV_octet:
return (pd_ev->u.oval == vc->ev()->u.oval) ? I_TRUE : I_FALSE;
case EV_bool:
return (pd_ev->u.lval == vc->ev()->u.lval) ? I_TRUE : I_FALSE;
case EV_string:
- if (pd_ev->u.strval == NULL)
- {
- if (vc->ev()->u.strval == NULL)
- return I_TRUE;
- else
- return I_FALSE;
- }
- else if (vc->ev()->u.strval == NULL)
+ if (pd_ev->u.strval == NULL) {
+ if (vc->ev()->u.strval == NULL)
+ return I_TRUE;
+ else
+ return I_FALSE;
+ } else if (vc->ev()->u.strval == NULL)
return I_FALSE;
else
return (pd_ev->u.strval == vc->ev()->u.strval) ? I_TRUE : I_FALSE;
case EV_longlong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
- return (pd_ev->u.llval == vc->ev()->u.llval) ? I_TRUE : I_FALSE;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return I_FALSE;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case EV_ulonglong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
- return (pd_ev->u.ullval == vc->ev()->u.ullval) ? I_TRUE : I_FALSE;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return I_FALSE;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case EV_longdouble:
+ case EV_wchar:
case EV_wstring:
case EV_any:
case EV_void:
@@ -1771,8 +1659,6 @@ AST_Expression::compare(AST_Expression *vc)
return (pd_ev->u.dval == vc->ev()->u.dval) ? I_TRUE : I_FALSE;
case EV_char:
return (pd_ev->u.cval == vc->ev()->u.cval) ? I_TRUE : I_FALSE;
- case EV_wchar:
- return (pd_ev->u.wcval == vc->ev()->u.wcval) ? I_TRUE : I_FALSE;
case EV_octet:
return (pd_ev->u.oval == vc->ev()->u.oval) ? I_TRUE : I_FALSE;
case EV_bool:
@@ -1788,18 +1674,9 @@ AST_Expression::compare(AST_Expression *vc)
else
return (pd_ev->u.strval == vc->ev()->u.strval) ? I_TRUE : I_FALSE;
case EV_longlong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
- return (pd_ev->u.llval == vc->ev()->u.llval) ? I_TRUE : I_FALSE;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return I_FALSE;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case EV_ulonglong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
- return (pd_ev->u.ullval == vc->ev()->u.ullval) ? I_TRUE : I_FALSE;
-#else /* ! defined (ACE_LACKS_LONGLONG_T) */
- return I_FALSE;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case EV_longdouble:
+ case EV_wchar:
case EV_wstring:
case EV_any:
case EV_void:
@@ -1866,9 +1743,6 @@ dump_expr_val(ostream &o, AST_Expression::AST_ExprValue *ev)
case AST_Expression::EV_char:
o << ev->u.cval;
break;
- case AST_Expression::EV_wchar:
- o << ev->u.wcval;
- break;
case AST_Expression::EV_octet:
o << ev->u.oval;
break;
@@ -1879,16 +1753,9 @@ dump_expr_val(ostream &o, AST_Expression::AST_ExprValue *ev)
if (ev->u.strval != NULL)
ev->u.strval->dump(o);
case AST_Expression::EV_longlong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
-// o << ev->u.llval;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
- break;
case AST_Expression::EV_ulonglong:
-#if ! defined (ACE_LACKS_LONGLONG_T)
-// o << ev->u.ullval;
-#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
- break;
case AST_Expression::EV_longdouble:
+ case AST_Expression::EV_wchar:
case AST_Expression::EV_wstring:
case AST_Expression::EV_any:
case AST_Expression::EV_none: