📄 kcchst.h
字号:
* assignment operator instead of the equality operator seen
* as the root operator of a control expression in an, if-stmt,
* while-stmt, for-stmt, do-while-stmt, etc. (PPS #4293)
* Modules: CC, CCOPT, CCSTMT
*
* 2A(30) KAR,TEA, January 1992
* Changed compiler to place a /RUN switch in the LINK command
* file which will run MAKSHR on the generated executable so
* the .EXE will not have any initialized low-seg memory unless
* any of the debugging (-g) switches have been specified.
* Also added a facility that will generate code to check if
* a dereferenced pointer is NULL. If so, a message will be
* sent to the users screen informing them of the NULL pointer.
* This will be available by specifiying -g=nullptr on the KCC
* command line,
* Tim implemented the #pragma module(ID) facility (PPS 4329).
* Modules: CC, CCASMB, CCGEN2, CCCODE, CCSTMT, CCOUT, CCNODE.H,
* CCCODE.H, CCPP, CC.H
*
* 2A(31) KAR, TEA, January 1992
* Eliminated *.PRE files.
* Kevin added /o switch to makshr command.
* Modules: CC, CCOUT, CCASMB, CC.H
*
* 2A(32) KAR, January, February 1992
* In-line monitor calls using channel numbers can now use
* channel numbers greater than 5 (SPR 9738).
* Also changed makprefile() to output the ENTRY point list into
* the .MAC file just before the END or PRGEND statements so
* indexed libraries can become a reality once again. This was
* the chosen solution over reactivating the .PRE files because
* bringing back the .PRE files would not work for #pragma module
* usage.
* Modules: CCOUT
*
* 2A(33) KAR,TEA February 1992
* TEA fixed KCCDBG (CC.H, CCSYM.H, CCDATA, CCSYM) and removed
* BC++ error in CCASMB.
* KAR added -K switch to signal the user wishes to make use of the
* new strictly ANSI library, LIBCA.
* Modules: CC, CCASMB, CCDATA, CCOUT, CCSYM, CC.H, CCSYM.H
*
* 2A(34) KAR,TEA May 7 1992
* KAR fixed the order in which the header files are searched
* when the -K switch is used. Also implemented PPS 4296, which
* calls for a method to specify the name of the .REL file
* produced, which implies the name of the .MAC file. This was
* done by providing the -R=<filename>.REL switch. Also changed
* the switch on the MAKSHR command line to /d(elete) from
* /o(verwrite) to delete the .MKS file rather than just
* overwrite it. Also removed dependency on LIBC and its non-ANSI
* routines by using ANSI I/O and an internal macro for getting the
* job number. Lastly, I changed the version number facility used
* by KCC so that it wouldn't need Get_Version() from LIBC.
*
* TEA fixed DEBUG_KCC=1 in CCDATA and CCSYM. Closed SPR 9774
* in CCCSE by avoiding an invalid optimization that folds identical
* mod and div expressions, overwriting the mod register. Closed SPR
* 9807 by fixing 18 heap calls in 7 files that did not test for NULL.
* Rewrote stat() and fstat() so KCC can be built with just LIBCA.
* Rewrote -q to avoid recompiling regardless of ".C" suffix.
* Closed SPR 9813 about sizeof(s) where s is array of short/ushort.
* Modules: CC, CCASMB, CCCODE, CCDATA, CCERR, CCLEX, CCPP,
* CCSTMT, CCSYM, KCCHST.H
*
* 2A(35) KAR,TEA May 27, 1992
* TEA changed the help screen to include the new -R switch.
* KAR fixed the problems with the replacement for stat() in the
* compiler. I had to fix a problem it had with finding the
* symbol files. It involved assigning an undefined value to the
* PPN field in the arg-block for the FILOP. Then I realized
* why the -q switch wouldn't work on occasion. There was no
* facility that parsed a PPN when given as part of a filename
* to the new stats() function. I added a function that would
* parse a PPN if one was given and fixed fnparse() to handle
* device names of 6 characters thus fixing the -q switch.
* Modules: CC, CCASMB
*
* 2A(36) KAR June 1992
* Closed SPR 9833 that caused the #pragma include_once to span
* across source files if more than one was placed on the command
* line.
* Closed SPR 9862 which generated bad pointer values for constant
* pointers to typedef'ed structs. The fix was put into elembsize(),
* it checks if it is looking at a struct and passes back word size
* instead of 0 which translates to a void * and causes the pointer
* to be generated as a 9-bit byte pointer.
* Modules: CC, CCSYM, CCSYM.H
*
* 2A(37) KAR, FEW, July 1992
* KAR closed SPR 9879 that caused any error in any of the files in
* a list of files given to KCC to not run MACRO even on the files
* that had no errors. Now it will run MACRO, but not LINK if
* there are any files that did not have errors.
* Modules: CC
* FEW closed SPR 9577 (source filespec prefix and suffix, if any,
* were being forced onto "" #include filespecs).
* Module: CCPP
* FEW closed SPR 9877. Function ccopt:foldboth () transformed
* code sequence <MOV R,S><OP R,x> into <OP S,x><MOV R,S>. This
* transformation is invalid in the case where "x" refers to "R".
* Module: CCOPT
* FEW closed SPR 9574. Function ccjskp:optlab () failed to detect
* the invalidation of one optimization by a JUMP or JRST out of the
* peephole buffer.
* Module: CCJSKP
* FEW added a LINK command to /SEARCH KCCDBG.REL.
* Module: CCASMB
*
* 2A(40) FEW, July 1992
* KAR, August 1992
* FEW closed SPR 9835. The VREG struct was trying to keep the stack
* offset of a spilled object in a char. This meant that any
* function with more than 512 words of locals would get bad code
* when any spilled object was reloaded.
* Module: CCREG.H
* FEW closed SPR 9747. The code that checked for arithmetic overflow
* always as only checked for signed overflow, which caused it to
* falsely report overflow on some unsigned operations. Code was
* added to handle unsigned addition and subtraction by checking
* the processor CARRY0 flag.
* Module: CCEVAL
* FEW closed SPR 9734. Type qualifiers, applied to declared instances
* of typedef'ed arrays, were being wrongly applied to the type
* itself.
* Module: CCDECL
* KAR closed PPS 4551. Added built-in macro in KCC for DOS,
* __KCCDOS__ so that host specifics in header files can be jacketed
* like in the new <csisym.h> for syntax checking on DOS
* And closed PPS 4543. Removed the note class message of unknown
* #pragma.
* Modules: CCPP, CSISYM.H, UUOSYM.H
* KAR had to add an #undef and #define of sixbit around the #include
* of csimon.h because of the STUPID typedef of char6 to sixbit in
* comdef.h! Something needs to be done about this.
* Modules: CCASMB
*
* 2A(41) KAR August 1992
* Implemented PPS 4516 which called for support of leveled header
* files.
* Modules: CC CCPARM.H
* Also implemented PPS 4544 which asks for a warning (advisory)
* when an auto variable is given a value but not used.
* NB. This was not completed in this release.
* Modules: CCLEX CCSYM CCSYM.H
* FEW resolved SPR 9925. Code in CCREG.C to manipulate double-word
* virtual registers was not prepared to handle cases where the
* given register was the second half of a double.
* Module: CCREG
* FEW resolved SPR 9919. Code that cast word pointers to
* byte pointers formerly used TLO, which assumed left half
* empty; substituted HRLI for TLO.
* Modules: CCOUT CCCODE.H
* FEW changed the interface to KCCDBG so that the address of
* its LUUO handler is set in the .MAC file. This makes KCCDBG
* independent of SIX36 () and thus useable in the absence of a
* C main () function.
* Module: CCOUT
* FEW resolved SPR 9977. In the absence of any global symbols,
* the label indicating the end of the local symbol table (in a
* module compiled with -g=debug) was not being emitted.
* Module: CCSYM
*
* 2A(42) FEW December 1992
* - in CCPARM.H, increased THASHSIZE and MAXTYPE from 1279 to 2557
* to accomodate Tools Development Group (no SPR).
* - in CCASMB.C, changed the forced LINK switches for KCCDBG.REL
* versions 2(2) and later (overlooked in 2A(41), no SPR).
* - resolved SPR 9986. The "-d" option, given alone, is now
* tantamount to "-d=all". Module CC.C.
* - implemented PPS 4575, function-level-only debugging. This
* involved a new keyword for the -g switch. Modules:
* CC.H, CC.C, CCDBUG.C, CCSTMT.C, CCOUT.C, CCASMB.C, CCSYM.C,
* CCPP.C, CCDECL.C, CCGEN2.C
*
* 2A(43) KAR February 1993
* - Implemented PPS 4574 calling for C++ comments in KCC.
* Modules: CCPP.C
*
* FEW, March 1993
* - resolved SPR 9943 ("scope mismatch" error after function-
* pointer declaration). Module CCDECL.C.
* - resolved SPR 0041 (faulty optimization that ignored a transfer
* of control occurring between two instructions being folded).
* Module CCCODE.C.
*
* 2A(44) FW March 1993
* - Experimental version identical to 2A(43) except using more
* registers internally. Not merged with production sources.
*
* 2A(45) FW July 1993
* - added "-P=nocpp" option and global variable "clevnocpp"
* to defeat C++ "//" comments. Default is to permit them.
* Files affected: CC.C, CCPP.C, CCDATA.C, CC.H
*
* 2A(46) FW August 1993
* - "-P=nocpp" wasn't right the first time; patches in lots of
* different places were needed.
* Files affected: CCPP.C
*
* 2A(47) FW September 1993
* - fixed EOL detection in ccpp:flushtoeol ().
* - implemented new command-line option "-b[89]" for
* wide-character source files (PPS 4761).
* - implemented new command-line option "-r=n" to specify
* the number of non-preserved registers.
* - added function jwarn () to deal with situations that
* involve bad arguments to command-line options
* where defaults can be supplied so that compilation
* need not be aborted.
* Files affected: CC.C, CC.H, CCPP.C, CCREG.C, CCREG.H,
* CCDECL.C, CCGEN.C, CCOUT.C, CCERR.C, CCERR.H
*
* 2A(50) FW September 1993
* - more corrections in CCPP for "//" comments. Usually
* (but not always), we need to call pushch ()
* after a scancomm () to discard a "//" comment,
* to make sure that the EOL is detected. There
* was also a wrong condition test in pass_line ().
* However, a test program for "//" comments has
* composed by Tim Abels and added to the Plum-
* Hall validation suite; these comments should now
* be right.
* File affected: CCPP.C
*
* 2A(51) FW January 1994
* - removed ALL remaining support for: processors other than
* single-section KL (and workalikes); operating
* systems other than TOPS-10 (and workalikes);
* assemblers other than MACRO. The processor
* restriction has the extra benefit that KCC now
* generates *no* MACRO constructs that result in
* Polish fixups.
* - added "-k" option for long identifiers. MACRO is
* invoked with "/k", and identifiers are emitted
* to the MACRO code full length, full strength.
*
* 2A(52) FW February 1994
* - implemented "interrupt" function type qualifier.
* Modules: cc, ccgen, ccgen1, ccgen2, ccdecl,
* cc.h, ccsym.h, cctoks.h
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -