Error 53000 - Parsing error ( duplicate parameter name)
I Have an error in EA : Error 53000 - Parsing error ( duplicate parameter name)
in the line :
void * memcpy (void * __restrict__,
const void * __restrict__, size_t);
Also, I want to make a link between COBOL and C programs. I mean that COBOL program knows the C coded module used in the main cobol.
The error is fairly straight forward, you use __restrict__ twice in the call with different definitions. It's not clear if this is a pure C program or something you are trying to embed in COBOL. It's also not clear if this is from the compile or link step.
The "link" between COBOL and C is nothing more than a COBOL call using the correct call-convention.
Can you provide more details on what you are doing?
I'm sorry I'll try to delete the message from the WIKI
this problem is in the "string.h" header it gives the same message error for the line:
void * memchr (const void *, int, size_t);
I think I need to fill the area: C / C + + parser parameters I tried to put "-D the name of macro example : "__restrict__" or "restrict" it gives me the message: 53000 - Too Many Arguements on the command line.
For the link I asked the question because even if you put the call C module from COBOL program, the tool EA does not give the links in reports and displays a question mark next to the program name C in arborescene COBOL program
Thanks for answers.
New functionality has been added to 3.3 Hot Fix 5 (and above) and 3.4 to create relationships between COBOL programs and C functions. This is provided as a batch process to be run after a normal verification cycle.
After verification and before the script is run, calls from COBOL to C functions will instead appear as calls to unresolved program entry points, and calls from C functions to COBOL will appear as calls to unresolved functions. The batch process scans the repository for these types of relationships, and when it locates an appropriate match, replaces the existing relationships with new ones linking the COBOL and C entities.
A new batch script is located in the <installation directory>\Enterprise Analyzer\Scripts\BRP\ and is called MFCobolCLink.bj. The script is executed with brave.exe as with other BRP scripts. Workspace is the only parameter required. Since the batch process does rely on HyperCode information, it should only be executed after all HyperCodeConverter instances have completed processing of the verification output. Also, the batch process will need to be re-run if the calling C or COBOL source file is re-verified, as the relationships will be re-generated.
After the batch script completes its run, the repository will contain new relationships to represent cross-language calls. Specifically, for COBOL-to-C calls, there will be a "Calls Program Entry Decision" relationship from the calling program to a new decision entity, and the decision entity will have a "Resolves to Function" relationship to the C function called from the COBOL program.
For C-to-COBOL calls, the pattern is similar. There will be a "Calls Decision" relationship from the calling C function to a new decision entity, and a "Resolves to Program Entry Point" from the decision to the COBOL program entry point called from the C function.”
With 3.4 Hot Fix 2 the following was also added:
A new option called "Generate program entry points for main functions" has been added to the C File verification settings in the Workspace Options. When checked, any C function with the name "main" will get an associated program entry point object whose name is the last component of the file name. For example, for C File "FOO/BAR/BAZ.c", the program entry point will be named "BAZ"). This allows connections to be made when the JCL jobs and COBOL programs call the C modules.
Another option has also been added and that is "Generate program entry points for filename functions", which works in a similar way, should the C module not have a main function. This means that once you have re-verified your C modules, the JCL or Cobol programs will now have resolved links to the C modules.
Support Engineer, EMEA SupportLine