Commit graph

293 commits

Author SHA1 Message Date
ceriel b1626ca895 try to move side effects as much as possible to the left of the
expression tree, to avoid stacking. This is not good enough yet!
1989-02-22 16:16:08 +00:00
ceriel 00ac6f88a7 empty string in directory list now means current directory 1989-02-16 11:18:44 +00:00
ceriel 4629647d78 fixed wrong count in popping parameters 1989-02-14 14:10:31 +00:00
ceriel c3f7993b1a fixed problem in sizeof() 1989-02-06 19:06:55 +00:00
dick f70dfe4d00 better evaluation order checking in expressions 1989-02-02 13:57:07 +00:00
ceriel 5e14dddb6c fix in compile time int2float conversion 1989-01-23 16:52:22 +00:00
ceriel cc55ab947d evaluate switch-expression on a different spot,
allow for *STRING expressions
1989-01-23 15:37:57 +00:00
ceriel f4caec88e8 use C_con_cst instead of C_con_icon when possible;
fix sizeof(string) to return the size of the string instead of the size of
a pointer
1988-12-12 14:21:45 +00:00
ceriel 15377abec5 Fix from Lindsey: changed CURRDIR mechanism to make it work on SunOs 4.0 1988-11-24 11:29:14 +00:00
ceriel 6ac798b50c removed tab.c, use tabgen 1988-11-16 11:23:58 +00:00
dick 4ed20925c6 lint: printf testing and FORMATs 1988-11-03 15:18:46 +00:00
dick 7267917050 foute declaratie van sprint() 1988-11-03 14:59:47 +00:00
dick 190ea14bbf lint: retrieving string arguments from str_list 1988-11-03 13:20:27 +00:00
ceriel 3bb19b6e7d Added code-expander library 1988-10-31 14:17:17 +00:00
ceriel b5083a9ccf inline substitution of strcmp: was called many times! 1988-10-31 14:10:39 +00:00
ceriel 4f11f3c3fd fixed bug in preprocessor part:
#define aap(a) a did not work if the actual argument was spread over
multiple lines
1988-10-31 14:10:00 +00:00
dick e66f3adc06 formats introduced in lint 1988-10-12 16:05:17 +00:00
ceriel 6b7a135b2b Coercion from int to float is now always done compile time 1988-10-03 10:09:19 +00:00
dick 4cecb6bffb wrong Makefile committed 1988-09-30 16:49:02 +00:00
dick ff682c0cfc testing enums in switches/cases 1988-09-30 16:43:04 +00:00
dick 4f8b2e9926 lint: additional type tests in expressions 1988-09-29 15:24:02 +00:00
dick acf34e54ec crash() replaced by ASSERT() & NOTREACHED() in lint 1988-09-26 11:37:38 +00:00
dick 3d549e7932 reorganisation of lint code 1988-09-25 17:29:37 +00:00
ceriel 9435c895bf Added l_ files to .distr 1988-09-21 13:32:24 +00:00
ceriel b52e0e8ff1 fixed l_dummy.c to also work for the C-compiler,
added lint.h to BigPars and SmallPars,
and added stuff for CODE_EXPANDER and PEEPHOLE to Makefile
1988-09-21 11:48:29 +00:00
dick 6839d8afb1 introduction of lint source code, governed by ifdef LINT 1988-09-20 16:44:27 +00:00
dick 1f7115fa8d error messages and error handling 1988-09-16 23:19:50 +00:00
dick 32e5679d6c filename and linenumber info in more places 1988-08-29 15:51:48 +00:00
dick 61b8c3e9ec more modifications due to lint 1988-08-23 12:45:11 +00:00
dick 1a6665e21d initial small modifications for lint 1988-08-19 13:55:22 +00:00
ceriel e6d132830a fix: line number administration wrong in scan.c 1988-08-09 14:07:39 +00:00
ceriel 2c413b9455 makefile --> Makefile 1988-08-08 18:03:12 +00:00
ceriel 28d39e927b fixed problem with 'if (array)' 1988-08-04 14:37:06 +00:00
ceriel 0768c4d4f1 fix to fix 1988-07-29 19:22:48 +00:00
ceriel 87c8b648fc fix in preprocessor part: macro invocation with parameterlist on the
next line did not work
1988-07-29 18:38:25 +00:00
ceriel 75d52f0a3e corrected Makefiles 1988-07-28 08:37:37 +00:00
ceriel 84acaa1163 distribute Makefile 1988-07-26 19:08:46 +00:00
ceriel 20e2452350 updated dependencies 1988-07-11 19:22:19 +00:00
ceriel 6d7522ba44 fixes for Xenix 1988-07-11 13:24:32 +00:00
ceriel 778baeb2c0 fixes for Xenix 1988-07-11 13:18:43 +00:00
ceriel cd54a85aec updated dependencies 1988-07-11 12:57:24 +00:00
ceriel 3aabba530d fixes for Xenix 1988-07-11 12:53:01 +00:00
ceriel d1a390924f we were lucky, but - indicates a range; corrected 1988-07-08 10:29:48 +00:00
ceriel 8fc459e811 fix: was wrong with constants causing overflow 1988-07-07 15:02:47 +00:00
ceriel e1cb398e02 made to fit on PDP-11 1988-07-05 18:06:00 +00:00
ceriel 901d12332d removed faulty.h from makefile 1988-07-05 16:21:05 +00:00
ceriel f2b485740b adaptions for generation of compiler with embedded code-generator 1988-06-10 09:17:45 +00:00
ceriel 5ce46ce603 removed faulty.h, updated Parameters 1988-06-03 09:33:29 +00:00
ceriel 781a1218a5 only increment line number on ASCII LF 1988-05-03 11:30:25 +00:00
ceriel 2468ee6d34 did not compile with NOPP defined 1988-05-02 15:37:13 +00:00
ceriel d5f6dfeb2a did not compile with USE_TMP not defined 1988-05-02 14:40:35 +00:00
ceriel 132e8d0baa minor fixes 1988-05-02 14:13:25 +00:00
ceriel 8acf1542f6 updated dependencies 1988-04-26 16:15:25 +00:00
ceriel 5a7fa39fc9 updated dependencies 1988-04-26 16:03:36 +00:00
ceriel 8781ada304 generate more register messages 1988-04-26 15:33:48 +00:00
ceriel d260937564 improved layout with varargs 1988-04-25 16:24:42 +00:00
ceriel 093a970d7f generate scope info for functions 1988-04-25 12:55:25 +00:00
ceriel ae50580eff new handling of setjmp; now pass return address 1988-04-20 15:28:10 +00:00
ceriel 9dbd7bdcf5 check for total size of locals and parameters 1988-04-15 17:25:01 +00:00
ceriel d1fee09721 Use varargs where needed 1988-04-15 15:07:51 +00:00
ceriel 4b79636b8f fixed a problem with #ifdef/#else/#endif 1988-03-08 11:42:00 +00:00
ceriel d04dce377a Changed use of word_align: it now only indicates the alignment on
which word-operations are allowed to take place
1988-02-17 14:29:57 +00:00
ceriel b54a58e93c made counting for register messages depending on a #define,
adapted makefile to make version with peephole optimizer library
1988-02-16 16:23:00 +00:00
ceriel b19a178e2e fixed a bug with string-initializers 1988-01-25 16:14:01 +00:00
ceriel 897b86cba2 prevent a voluntary crash and generate better code 1988-01-11 14:06:20 +00:00
ceriel a8703841b2 changed typing of constants, to be more compatible with PCC
and future standard
1987-12-03 11:12:02 +00:00
ceriel 70403f62d9 fixed a bug: casts to short or char did not work right 1987-11-23 13:48:09 +00:00
ceriel 7bbfcac62b generate CSA for empty case statement, replaced an #ifdef that was on the wrong spot 1987-11-13 16:21:33 +00:00
ceriel cf0852c846 print initializer expression before call to code_declaration 1987-11-04 16:30:02 +00:00
ceriel 867232a244 fixed some minor problems 1987-11-02 17:59:18 +00:00
ceriel a24c90f5a9 fixed some problems: ADS was generated with size > pointer_size;
some (most) backends dont implement that.
Unstacking of macros did not quite work properly, but I dont know why
1987-10-20 09:36:34 +00:00
ceriel efcb9468f4 fixed some bugs:
- switch with BIG difference between lower and upper now handled correctly
- made sure an added error production is never chosen as the default one
- don't allow AUTO as specification for a parameter
1987-10-05 10:17:44 +00:00
ceriel 7e2c3130b0 dont count when USE_TMP is not defined 1987-09-01 10:41:35 +00:00
ceriel2 adce53f009 fix for statics in nested blocks 1987-08-28 09:56:00 +00:00
ceriel 7dc04a3207 some minor corrections 1987-08-19 15:23:41 +00:00
ceriel 1c85c44fad an attempt to improve error correction on unknown type identifiers.
Also, a minor fix to ival.g
1987-08-18 10:05:18 +00:00
ceriel b53309f9f6 fixed: resulted in memory faults in rare cases 1987-08-17 20:32:00 +00:00
ceriel 46589d5798 not finding an include file is fatal 1987-08-17 14:36:55 +00:00
ceriel e5af61151e nestlevel count per file 1987-08-10 11:17:20 +00:00
ceriel 4623ed60b0 fixes to preprocessor part 1987-08-07 19:53:54 +00:00
ceriel bfd6e2061f fixed a bug with setjmp.
Fixed a bug with non-struct pointers referring to structs
1987-08-06 14:19:06 +00:00
ceriel 0b8262a167 handle returns better 1987-08-06 09:55:00 +00:00
ceriel af3e759da2 fix blocks.c 1987-08-03 14:40:49 +00:00
ceriel 1640b8cad8 fix: may no address more memory than is present blocks.c 1987-08-03 14:04:44 +00:00
ceriel 36a5618dc8 do not generate mes 11 AND mes 3! 1987-07-17 14:30:30 +00:00
ceriel 0619d27b8d use new C_insertpart mechanism, other minor changes 1987-07-16 13:27:37 +00:00
ceriel 85421efb19 Bug fix: ch7sel should call any2opnd 1987-07-06 18:24:46 +00:00
ceriel d41028a664 pass EMHOME to nested make 1987-06-30 18:30:45 +00:00
ceriel 1fb8da7a02 bug fix in local extern-declarations, some other minor changes 1987-06-01 10:17:29 +00:00
ceriel aab8234e55 bug fix in cstoper.c: max_long_sign was computed wrong 1987-05-11 14:19:13 +00:00
ceriel b6e994767c removed the limitation on number of include directories 1987-05-11 14:08:58 +00:00
ceriel 81b1d21c35 Initial revision 1987-04-13 10:32:47 +00:00
ceriel 1fdfb2b738 improved call to C_lin 1987-04-02 13:02:16 +00:00
ceriel 1da25fb7a5 minor change to manual page 1987-03-31 12:44:15 +00:00
ceriel 82f042ba98 Also install manual page 1987-03-31 12:33:23 +00:00
ceriel de8fb5d489 Minor fixes 1987-03-27 16:39:57 +00:00
ceriel fa4dfdf813 minor fix to LLlex.h 1987-03-27 10:37:58 +00:00
ceriel bac2a42c82 added estack.str, minor fix 1987-03-26 15:32:26 +00:00
ceriel 4eb84b928b align parameters on word_size, not word_align 1987-03-26 11:05:28 +00:00
ceriel 09125cce6b redesign of ival, other minor changes 1987-03-25 23:14:43 +00:00
ceriel 0cd2bbdc09 updated 1987-03-25 18:52:04 +00:00
ceriel 4e03fc78dd many minor fixes and modifications 1987-03-20 08:30:31 +00:00
ceriel bcd037018f still does not fit. Delete bitfields 1987-03-19 10:51:40 +00:00
ceriel 5fe6bf0fcd made to work on pdp-11 1987-03-18 09:35:31 +00:00
ceriel 07f5d3cce4 Fixed a bug with line-directives, added copyright notice 1987-03-10 17:51:10 +00:00
ceriel 4e5611ac7b Added copyright notice 1987-03-09 15:22:58 +00:00
ceriel 2fba9c579e Added exit to main program of tab.c 1987-03-09 13:19:38 +00:00
ceriel 1be18e9a48 Initial revision 1987-03-06 09:02:15 +00:00
ceriel 3c9b5ad0bd deleted idepth 1987-03-06 08:38:29 +00:00
ceriel 1a5d5ddec2 procentry/procexit were not called properly 1987-03-05 19:22:33 +00:00
ceriel a1c73c0335 main exits instead of returns. Bloody SUNs 1987-03-05 15:22:05 +00:00
ceriel 8c3fc983bc Also remove "main" when making clean 1987-03-04 15:46:02 +00:00
ceriel 3a91ff6da5 renamed a parameters because a local had the same name 1987-02-24 15:41:16 +00:00
ceriel ca1655c25e bug fixes:
- assignment operators for bit fields were wrong
- some conversions for characters were wrong
- result of assignment operator sometimes had wrong size
- character constant \377 was 255, not -1
- string constant generation was clumsy
1987-02-23 13:08:54 +00:00
ceriel 428b24d51b minor update 1987-02-13 15:30:27 +00:00
ceriel 2238500f22 Added "standard" entries, rerun mkdep 1987-02-13 15:27:35 +00:00
ceriel e04aa9639e Initial revision 1987-02-10 09:27:44 +00:00
ceriel ad72edfa49 many changes: fixes and efficiency-oriented 1987-02-09 23:19:42 +00:00
ceriel 8116e3181f now uses alloc module, bug fixes, -N option under USE_TMP, to not do so 1987-01-24 00:25:56 +00:00
ceriel 493efb1bf7 added EX_SIDEEFFECTS, options['p'] --> ! options['L'], fixed some bugs 1987-01-14 09:58:51 +00:00
ceriel ecf93dbf4f made error in macro parameter count into a warning 1987-01-08 14:57:18 +00:00
ceriel 33a89a8684 bug fix in LLlex.c, "string_token" 1986-12-16 14:30:33 +00:00
dick 78aaf2fd9d some small changes, asm() yields error message 1986-12-13 20:57:40 +00:00
ceriel 42162f7b37 simplified 0-padding, minor cosmetic changes 1986-12-10 12:00:55 +00:00
erikb 8a95b29c86 added: file_info.h 1986-12-09 08:19:55 +00:00
erikb ad5c92044c corrected basename() 1986-12-08 08:58:21 +00:00
ceriel 53d6dfcb6b version using input module and detecting preprocessor loops 1986-12-04 16:29:44 +00:00
ceriel abc2ba9a3c bug fix: size 0 error messages also appeared for labels 1986-12-02 11:39:34 +00:00
ceriel ad40a77afd handle void properly, avoid 0-alignments, handle #if defined(..) 1986-12-01 10:00:23 +00:00
erikb 22d4d72ef4 adapted default IDEPTH value 1986-11-14 08:16:38 +00:00
erikb ed106b7feb removed the debug message for encountering STRING-type Values 1986-11-12 09:55:28 +00:00
erikb d51281b576 updated the manual pages 1986-11-12 09:53:18 +00:00
erikb f784236908 merged the vax and mantra versions 1986-11-11 13:47:58 +00:00
erikb 6f8b72bfb3 corrected the treatment of static functions declared on non-global level 1986-11-10 09:16:27 +00:00
erikb 3ebe2a7176 use programs and modules from ACK instead of local versions 1986-11-10 09:14:29 +00:00
erikb 5af21dfc79 modified the treatment of op=, ++ and -- operators 1986-09-29 14:01:34 +00:00
erikb 42112db262 modified the treatment of op=, ++ and -- operators 1986-09-29 13:16:11 +00:00
dick 66c247ba9c some very minor changes 1986-09-28 20:33:15 +00:00
erikb c967d1ab3a put heavily used pointer variables in registers 1986-09-24 13:53:16 +00:00
erikb f21743e213 if NOPP: made #line directives treated correctly 1986-09-22 13:04:04 +00:00
erikb dad1ab3b22 some minor fixes 1986-09-17 12:31:45 +00:00
erikb a968ce8437 changed some large static data structures into STATIC 1986-09-15 08:47:53 +00:00
erikb 225f1fb724 added one byte to ibuf 1986-09-12 12:58:22 +00:00
erikb c6a51a39f0 built in the compile time flag NOFLOAT to get rid of the float stuff 1986-09-12 09:16:07 +00:00
erikb ecf5219493 corrected the treatment of the <<= and >>= operators 1986-09-10 10:23:26 +00:00
erikb b9bce39f1e simplified the return expression in loadbuf() 1986-09-09 13:49:46 +00:00
erikb d7716c5e5a corrected the compile-time evaluation of ~<unsigned value> 1986-09-09 09:47:43 +00:00
erikb 5927f264a8 various null-dereference problems fixed 1986-09-02 15:22:54 +00:00
erikb c84c57be67 added some LINT facilities 1986-09-02 15:00:50 +00:00
erikb 361613bb23 first operand to intexpr is arith typed 1986-08-26 14:59:36 +00:00