ADLINK-IST/opensplice

isocpp2 and pragma cats

Opened this issue · 0 comments

The code from idlpp does not compile in isocpp2 mode, when there is a pragma cats in the IDL.

To demonstrate, the HelloWorld example, changed to use a char array as the instance key:

module HelloWorldData
{
struct Msg
{
/** User ID /
char userID[8];
/
* message */
string message;
};
#pragma cats Msg userID
#pragma keylist Msg userID
};

results:
[bdavis@localhost isocpp2]$ make
make[1]: Entering directory '/home/bdavis/opensplice_defect/HDE/x86_64.linux/examples/dcps/HelloWorld/isocpp2'
"../../../../bin/idlpp" -I "../../../../etc/idl" -l isocpp2 ../idl/HelloWorldData.idl
g++ -fPIC -O3 -DNDEBUG -D_REENTRANT -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=500 -Wall -Wno-unused-function -std=c++0x -I"../../../../include" -I"../../../../include/sys" -I"/." -I"../../../../include/dcps/C++/isocpp2" -I"../../../../include/dcps/C++/SACPP" -I"." -I"../../../../examples/include" -I"../../../../examples" -c -DOSPL_BUILDEXAMPLE_LIB -o ".obj/HelloWorldDataSplDcps.o" HelloWorldDataSplDcps.cpp
HelloWorldDataSplDcps.cpp: In function ‘v_copyin_result __HelloWorldData_Msg__copyIn(c_type, const HelloWorldData::Msg*, _HelloWorldData_Msg*)’:
HelloWorldDataSplDcps.cpp:22:37: error: ‘base’ was not declared in this scope
to->userID = c_stringMalloc(base, (8 + 1));
^~~~
HelloWorldDataSplDcps.cpp:22:37: note: suggested alternative: ‘c_base’
to->userID = c_stringMalloc(base, (8 + 1));
^~~~
c_base
make[1]: *** [Makefile.ISO_Cxx_V2_HelloWorld_Types:82: .obj/HelloWorldDataSplDcps.o] Error 1
make[1]: Leaving directory '/home/bdavis/opensplice_defect/HDE/x86_64.linux/examples/dcps/HelloWorld/isocpp2'
make: *** [Makefile:26: ISO_Cxx_V2_HelloWorld_Types] Error 2

x86_64 linux, rhel 8, ospl 6.9

--bud davis