.IDENT
Include a module identifier string
WTSupported in traditional Synergy on Windows
|
WNSupported in Synergy .NET on Windows
|
USupported on UNIX
|
VSupported on OpenVMS
|
.IDENT string
Arguments
string
The module identifier string to be included. This must be an alpha expression.
Discussion
The .IDENT compilation control directive defines a module identifier string to be included in an object record of a routine’s object module. Only the first 15 characters specified in string are used.
Only the first .IDENT encountered before or within a routine is used. Additional .IDENT directives within a given routine will generate a warning.
If you specify the .IDENT directive in a file that contains more than one routine, all routines following the routine with the .IDENT directive use the same module identifier string.
The Synergy librarian displays the .IDENT string when the contents of a library are listed.
You must specify the .IDENT compiler directive for a routine before the compiler emits the object module header. If the compiler encounters an .IDENT compiler directive after it has already written the object module header, it generates an “.IDENT ignored” error (IDIGN). (This may happen if you specify .IDENT at the end of a large routine.)
On UNIX, an .IDENT string is called a “what” string. If you include an .IDENT string in your object file, you can enter:
what file.dbo
at your UNIX prompt to get the .IDENT information. “What” strings are available on UNIX systems that have Source Code Control System (SCCS). For more information about “what” strings, refer to your UNIX manual.
On OpenVMS, .IDENT strings are called “module version” strings. If you include an .IDENT string in your object file, you can enter the following at your OpenVMS prompt to get the .IDENT information:
ANALYZE/OBJ FILE.OBJ
For more information about “module version” strings, refer to your OpenVMS Linker manual.
Examples
In the following example, the string “V5.1 - 040392” is included in the object file for the main routine, and “V5.1 - 031092” is included in the sub subroutine’s object file.
main .ident "V8.1 - 040392" proc . . . endmain subroutine sub .ident "V8.1 - 031092" proc . . . endsubroutine
If the second .IDENT directive is not specified, the first string “V5.1 - 040392” is included in the object files for both routines.
In our example, if you enter
what file.dbo
at the UNIX prompt, the following information is printed:
V8.1 – 040392 V8.1 – 031092
If you enter:
analyze/obj/mhd file.obj
at the OpenVMS prompt on an Alpha machine, the following information is printed. (On an I64, the fifth line of text would say, “This is an OpenVMS IA64 (Elf format) object file.”)
Analyze Object File 20-FEB-2006 17:05:41.51 Page 1 DKA600:[NIGEL]FILE.OBJ;1 ANALYZ A05-19 analyze/obj/mhd file.obj This is an OpenVMS Alpha object file 1. MODULE HEADER (EOBJ$C_EMH), 64 bytes structure level: 2 maximum record size: 8192 module name: "MAIN$PROGRAM" module version: "V8.1 - 040392" creation date/time: 20-FEB-2006 17:02 2. LANGUAGE PROCESSOR HEADER (EMH$C_LNM), 23 bytes Textual information: "Synergy DBL 8.1" 3. TITLE HEADER (OBJ$C_HDR_TTL), 18 bytes Textual information: "MAIN$PROGRAM" 6. END OF MODULE (EOBJ$C_EEOM), 24 bytes severity successful (0) Highest conditional linkage index: 0 psect: 0 value: 0 (%X’00000000’) transfer address flags: (0) EEOM$V_WKTFR 0 Analyze Object File 20-FEB-2006 17:05:41.51 Page 2 DKA600:[NIGEL]FILE.OBJ;1 ANALYZ A05-19 SUMMARY STATISTICS: Record Type Count Total Bytes OBJ$C_DBG 0 0 OBJ$C_TBT 0 0 EOBJ$C_EMH 3 105 EOBJ$C_EEOM 1 24 EOBJ$C_EGSD 0 0 EOBJ$C_ETIR 0 0 EOBJ$C_EDBG 0 0 EOBJ$C_ETBT 0 0 Totals 4 129 The analysis uncovered NO errors.