1 06/18/80 check_short_strings 2 3 Syntax: check_short_strings path 4 5 6 Function: checks a program for some particular cases of invalid PL/I that will 7 no longer happen to work in PL/I Release 26. 8 9 10 Arguments: 11 path 12 is the pathname of a PL/I source segment; the pl1 suffix may be omitted. 13 14 15 Notes: For information on how PL/I release 26 differs from previous releases, 16 please see pl1_code_changes.info. Check_short_strings only checks for some 17 entry misdeclarations; it does not check for misdeclarations in based variables 18 or external static variables. 19 20 Check_short_strings will indicate if a program misdeclares an entry so there is 21 a mismatch in the alignment attribute for short bit string or short character 22 parameters or return values, and the invalid program would have happened to 23 work with PL/I release 25 and will not work in PL/I release 26. Programs with 24 this type of misdeclaration declare an entry to have an unaligned short string 25 parameter or return value, the called program actually has the parameter or 26 return value declared aligned, and the argument passed to the entry is a member 27 of a structure and starts on the first bit of a word. If the argument is a 28 level one variable, the values of any pad bits to the right of the value of the 29 variable are not used for data. If the argument doesn't start on the first bit 30 of the word, the programs fail with PL/I release 25 and check_short_strings 31 will not indicate this. Check_short_strings is designed to only catch invalid 32 programs that happened to work with release 25 and won't work with release 26. 33 34 35 Check_short_strings compiles the program in the process directory. It then 36 checks all call statements and function references to see if a short string 37 argument is a member of a structure and starts on a word boundary. If this is 38 the case, it initiates the called program using the search rules and checks the 39 called program's argument descriptors to see if the corresponding parameter or 40 return value is aligned. If so, it prints a message. 41 42 43 Check_short_strings must be able to find PL/I release 26 via the search rules.