diff -r 2c874cccbb44 -r 29f6ab0bf954 stage3/datatype_functions.cc --- a/stage3/datatype_functions.cc Thu Mar 15 12:50:44 2012 +0000 +++ b/stage3/datatype_functions.cc Thu Mar 15 13:18:02 2012 +0000 @@ -80,12 +80,16 @@ #define __ANY_UINT_1(DO,P1) DO(usint,P1) DO(uint,P1) DO(udint,P1) DO(ulint,P1) - - -/* - * 2.5.1.5.6 Functions of time data types - * Table 30 - page 64 - */ +/**************************************************************/ +/**************************************************************/ +/**************************************************************/ +/******* TABLE 24: Standard arithmetic functions *******/ +/******* merged with *******/ +/******* TABLE 30: Functions of time data types *******/ +/**************************************************************/ +/**************************************************************/ +/**************************************************************/ + const struct widen_entry widen_ADD_table[] = { #define __add(TYPE) \ @@ -296,6 +300,21 @@ +const struct widen_entry widen_EXPT_table[] = { +#define __expt(IN2TYPE, IN1TYPE) \ + { &search_constant_type_c::IN1TYPE##_type_name, &search_constant_type_c::IN2TYPE##_type_name, &search_constant_type_c::IN1TYPE##_type_name, widen_entry::ok }, \ + { &search_constant_type_c::safe##IN1TYPE##_type_name, &search_constant_type_c::IN2TYPE##_type_name, &search_constant_type_c::IN1TYPE##_type_name, widen_entry::ok }, \ + { &search_constant_type_c::IN1TYPE##_type_name, &search_constant_type_c::safe##IN2TYPE##_type_name, &search_constant_type_c::IN1TYPE##_type_name, widen_entry::ok }, \ + { &search_constant_type_c::safe##IN1TYPE##_type_name, &search_constant_type_c::safe##IN2TYPE##_type_name, &search_constant_type_c::safe##IN1TYPE##_type_name, widen_entry::ok }, +#define __IN2_anynum_(IN1_TYPENAME) __ANY_NUM_1(__expt,IN1_TYPENAME) + __ANY_REAL(__IN2_anynum_) +#undef __expt +#undef __IN2_anynum_ + { NULL, NULL, NULL, widen_entry::ok }, +}; + + + /**************************************************************/ /**************************************************************/ /**************************************************************/