ACE_TAO icon indicating copy to clipboard operation
ACE_TAO copied to clipboard

Using C++ keywords with AMI results in uncompilable generated code

Open jwillemsen opened this issue 4 years ago • 3 comments

amikeywordbug.txt

See attached patch for a test extension

/home/johnny/ACE/trunk/TAO/tests/AMI/ami_testS.cpp: In member function ‘virtual const TAO_2_5_8::TAO_operation_db_entry* TAO_A_AMI_Test_Perfect_Hash_OpTable::lookup(const char*, unsigned int)’:
/home/johnny/ACE/trunk/TAO/tests/AMI/ami_testS.cpp:113:41: error: ‘_get_return_skel’ is not a member of ‘POA_A::AMI_Test’
  113 |       {"_get_return", &POA_A::AMI_Test::_get_return_skel, 0},
      |                                         ^~~~~~~~~~~~~~~~
/home/johnny/ACE/trunk/TAO/tests/AMI/ami_testS.cpp:114:41: error: ‘_set_return_skel’ is not a member of ‘POA_A::AMI_Test’
  114 |       {"_set_return", &POA_A::AMI_Test::_set_return_skel, 0},
      |                                         ^~~~~~~~~~~~~~~~
/home/johnny/ACE/trunk/TAO/tests/AMI/ami_testS.cpp: In member function ‘virtual const TAO_2_5_8::TAO_operation_db_entry* TAO_A_Test_Child_Perfect_Hash_OpTable::lookup(const char*, unsigned int)’:
/home/johnny/ACE/trunk/TAO/tests/AMI/ami_testS.cpp:2469:41: error: ‘_get_return_skel’ is not a member of ‘POA_A::AMI_Test’
 2469 |       {"_get_return", &POA_A::AMI_Test::_get_return_skel, 0},
      |                                         ^~~~~~~~~~~~~~~~
/home/johnny/ACE/trunk/TAO/tests/AMI/ami_testS.cpp:2470:41: error: ‘_set_return_skel’ is not a member of ‘POA_A::AMI_Test’
 2470 |       {"_set_return", &POA_A::AMI_Test::_set_return_skel, 0},
      |                                         ^~~~~~~~~~~~~~~~

jwillemsen avatar Mar 04 '20 19:03 jwillemsen

TAO_IDL should first apply the implied IDL rules, after that the C++ escaping, so with an attribute return the resulting C++ should contain get_return/set_return

jwillemsen avatar Mar 05 '20 12:03 jwillemsen

I had a similar problem with annotations that I fixed in #918: https://github.com/DOCGroup/ACE_TAO/commit/7a28f35fdb3c9fd0213ae4e13386c9238478f08c#diff-9adbd82323a85e56783d9bcfa9726741 (Note: I misspelled clash).

iguessthislldo avatar Mar 05 '20 15:03 iguessthislldo

Although this looks like a different escaping mechanism, so maybe my reference isn't really that helpful.

iguessthislldo avatar Mar 05 '20 15:03 iguessthislldo