Commit Graph

  • a988ef60bc Document bug fix for functions run at exit in large memory model. Stephen Heumann 2023-03-28 22:11:38 -05:00
  • ae89e77bbe Remove some unused or write-only variables. Stephen Heumann 2023-03-24 19:49:55 -05:00
  • 7e860e60df Generate better code for pc_ixa in large memory model. Stephen Heumann 2023-03-22 22:26:04 -05:00
  • 2412ae0661 Prohibit static initializers referring to a non-static array element. Stephen Heumann 2023-03-21 09:10:37 -05:00
  • 3a64c5b977 Generate better code for stack array indexing in large memory model. Stephen Heumann 2023-03-20 17:56:44 -05:00
  • be291b2423 Show "Including ..." lines for all headers when using a sym file. Stephen Heumann 2023-03-20 17:22:13 -05:00
  • cc36e9929f Remove some unused variables. Stephen Heumann 2023-03-19 23:17:39 -05:00
  • 3b6f73c277 Prohibit "typedef" in function definitions. Stephen Heumann 2023-03-19 20:16:36 -05:00
  • cbf32e5b71 Comment out an unused peephole optimization involving BVS. Stephen Heumann 2023-03-18 20:08:16 -05:00
  • a5eafe56af Generate more efficient code for 16-bit signed comparisons. Stephen Heumann 2023-03-18 20:05:56 -05:00
  • 137188ff4f Comment out an obsolete error message. Stephen Heumann 2023-03-17 19:47:30 -05:00
  • 1b7b198039 Remove unneeded extern declarations. Stephen Heumann 2023-03-17 18:14:19 -05:00
  • ea056f1fbb Avoid listing the first line twice when a pre-include file is used. Stephen Heumann 2023-03-15 20:42:23 -05:00
  • 344bf6999f Do not give an error for files that end with an #endif with no newline. Stephen Heumann 2023-03-14 21:59:21 -05:00
  • 49deff3c86 Generate more efficient code for certain conditionals. Stephen Heumann 2023-03-14 21:32:20 -05:00
  • 7c8ec41148 Optimize some assembly code sequences that can occur for array access. Stephen Heumann 2023-03-09 17:53:45 -06:00
  • 30a04d42c5 Require preprocessor conditionals to be balanced in each include file. Stephen Heumann 2023-03-07 19:00:13 -06:00
  • 27c68b41d5 Do not inhibit sym file generation if there is a segment directive before an #include. Stephen Heumann 2023-03-07 18:34:36 -06:00
  • c6ba1e1c1c Use bit operations rather than division in a few places. Stephen Heumann 2023-03-06 22:52:52 -06:00
  • 3ac55a64bf Use an improved hash function for symbol tables. Stephen Heumann 2023-03-06 21:54:14 -06:00
  • 3406dbd3ae Prevent a tag declared in an inner scope from shadowing a typedef. Stephen Heumann 2023-03-06 21:38:05 -06:00
  • 645b210e7f Prevent tags from shadowing variable names within static initializers. Stephen Heumann 2023-03-05 22:29:09 -06:00
  • 1f6bc44b48 Fix handling of typedef names immediately after an inner scope where the identifier is redeclared. Stephen Heumann 2023-03-05 21:40:59 -06:00
  • 85890e0b6b Give an error if assembly code tries to use direct page addressing for a local variable that is out of range. Stephen Heumann 2023-03-04 21:06:07 -06:00
  • a985a9ca7a Simplify code generation for function parameters. Stephen Heumann 2023-03-01 22:20:33 -06:00
  • ea623d38fc Avoid incorrectly setting lastwasconst. Stephen Heumann 2023-02-28 22:36:42 -06:00
  • bda54c0a79 Document qsort fixes. Stephen Heumann 2023-02-15 22:05:24 -06:00
  • cff8144c88 Do not do format checking on static functions. Stephen Heumann 2023-02-12 19:19:28 -06:00
  • a6ef872513 Add debugging option to detect illegal use of null pointers. Stephen Heumann 2023-02-12 18:56:02 -06:00
  • a32ddedc0c Add constants in tool headers for System 6.0.1 functionality. Stephen Heumann 2023-01-27 21:49:43 -06:00
  • 6b39cea80d Add missing SysBeep2 constants for System 6.0.1 (Programmer's Reference for System 6.0.1 page 13) Kelvin Sherlock 2023-01-27 08:57:47 -05:00
  • e557aca966 Add missing SysBeep2 constants for System 6.0.1 (Programmer's Reference for System 6.0.1 page 13) Kelvin Sherlock 2023-01-27 08:57:47 -05:00
  • 4b9824d5d6 Remove an unused function. Stephen Heumann 2023-01-22 13:19:06 -06:00
  • 40260bb8a0 Remove an unnecessary instruction from stack check code. Stephen Heumann 2023-01-14 19:09:45 -06:00
  • 03fc7a43b9 Give an error for expressions with incomplete struct/union types. Stephen Heumann 2023-01-09 21:58:05 -06:00
  • 61a2cd1e5e Consistently report "compiler error" for unrecognized error codes. Stephen Heumann 2023-01-09 18:46:33 -06:00
  • 2958619726 Fix varargs stack repair. Stephen Heumann 2023-01-08 15:15:32 -06:00
  • 74b9885572 Fix and simplify handling of pascal qualifiers. Stephen Heumann 2023-01-07 17:17:16 -06:00
  • 4d1a8caf8a Do not check for functions not returning a value if pc_rev is used. Stephen Heumann 2023-01-06 22:43:23 -06:00
  • cb6173557e Add tests for <time.h> functions. Stephen Heumann 2023-01-05 20:46:59 -06:00
  • 34c1564dc4 Do not declare gets() in strict C11/C17 modes. Stephen Heumann 2023-01-05 17:25:25 -06:00
  • 245dd0a3f4 Add lint check for implicit conversions that change a constant's value. Stephen Heumann 2023-01-03 18:56:46 -06:00
  • 9f36e99194 Document __useTimeTool and add a declaration for it. Stephen Heumann 2023-01-02 18:10:41 -06:00
  • 5476118951 Add documentation and headers for timespec_get. Stephen Heumann 2023-01-01 21:46:19 -06:00
  • 59664df9d9 Document <time.h> bug fixes. Stephen Heumann 2023-01-01 21:44:02 -06:00
  • f7a139b4b5 Document use of Time Tool Set by gmtime and strftime. Stephen Heumann 2022-12-28 19:57:19 -06:00
  • 7d3f1c8dd7 Add headers, documentation, and tests for tgamma(). Stephen Heumann 2022-12-24 20:21:31 -06:00
  • a87aeef25b Ensure native peephole opt uses a jump table. Stephen Heumann 2022-12-20 20:31:24 -06:00
  • cf9f19c93d Optimize LDA+TAY to LDY (when A is unused after). Stephen Heumann 2022-12-20 20:21:25 -06:00
  • 854a6779a9 Generate even better code for constant returns. Stephen Heumann 2022-12-19 21:18:41 -06:00
  • e910eda623 Apply return optimization to struct/union return types. Stephen Heumann 2022-12-19 20:49:25 -06:00
  • 030f3ff9e1 Apply return optimization to enum and pointer return types. Stephen Heumann 2022-12-19 20:03:13 -06:00
  • d68e0b268f Generate more efficient code for a single return at end of function. Stephen Heumann 2022-12-19 18:52:46 -06:00
  • 265a16d2f5 Add headers, documentation, and tests for erf() and erfc(). Stephen Heumann 2022-12-17 22:26:59 -06:00
  • 53fcb84352 Allocate staticNum prefixes only for scopes that have statics. Stephen Heumann 2022-12-13 22:17:25 -06:00
  • a7551d8c44 Optimize unused variable checks to only run on scopes with variables. Stephen Heumann 2022-12-13 21:34:24 -06:00
  • 09fbfb1905 Maintain a pool of empty symbol tables that can be reused. Stephen Heumann 2022-12-13 21:05:55 -06:00
  • 705c9d36a2 Count variables referenced in assembly code as used. Stephen Heumann 2022-12-13 19:04:18 -06:00
  • 4bc486eade Do not require unused static functions to be defined. Stephen Heumann 2022-12-12 22:07:01 -06:00
  • fe62f70d51 Add lint option to check for unused variables. Stephen Heumann 2022-12-12 21:47:32 -06:00
  • 44499bdddb Make root files jump to the shutdown code rather than calling it. Stephen Heumann 2022-12-11 22:14:09 -06:00
  • 17936a14ed Rework root file code for CDevs to avoid leaking user IDs. Stephen Heumann 2022-12-11 22:01:29 -06:00
  • ecca7a7737 Never make the segment in the root file dynamic. Stephen Heumann 2022-12-11 14:46:38 -06:00
  • 1754607908 Add native peephole opts for stack repair code. Stephen Heumann 2022-12-10 21:56:16 -06:00
  • 32975b720f Allow native code peephole opt to be used when stack repair is enabled. Stephen Heumann 2022-12-10 20:32:53 -06:00
  • 7364e2d2d3 Fix issue with native code optimization of TYA+STA. Stephen Heumann 2022-12-10 18:59:03 -06:00
  • e71fe5d785 Treat unary + as an actual operator, not a no-op. Stephen Heumann 2022-12-09 19:03:38 -06:00
  • f027286b6a Do not generate varargs stack repair code if no variable args are passed. Stephen Heumann 2022-12-08 19:27:37 -06:00
  • 6ba6ad549f Change va_start to not depend on the last fixed argument. Stephen Heumann 2022-12-08 19:15:53 -06:00
  • fb5a2fcf33 Generate more efficient code for shifts by 13, 14, or 15 bits. Stephen Heumann 2022-12-07 21:36:40 -06:00
  • bb1bd176f4 Add a command-line option to select the C standard to use. Stephen Heumann 2022-12-07 21:35:15 -06:00
  • 6857913daa Make the object buffer dynamically resizable. Stephen Heumann 2022-12-06 21:49:20 -06:00
  • 389f60ed27 Remove segStart variable. Stephen Heumann 2022-12-06 19:39:10 -06:00
  • 8aedd42294 Optimize out TDC following TCD. Stephen Heumann 2022-12-05 18:02:23 -06:00
  • a7d9d3039b Initialize arrays from strings with a pc_mov operation. Stephen Heumann 2022-12-05 18:00:56 -06:00
  • 0c4660d5fc Generate better code for pc_mov in some cases. Stephen Heumann 2022-12-05 17:58:30 -06:00
  • 8e1db102eb Allow line continuations within // comments. Stephen Heumann 2022-12-04 23:15:22 -06:00
  • facd1bf992 Add parentheses around negative values in float.h. Stephen Heumann 2022-12-04 22:44:48 -06:00
  • c06d78bb5e Add __STDC_VERSION__ macro. Stephen Heumann 2022-12-04 22:18:50 -06:00
  • 2550081517 Fix bug with 4-byte comparisons against globals in large memory model. Stephen Heumann 2022-12-04 21:54:29 -06:00
  • 935bb6c04e Merge branch 'designated-initializers' Stephen Heumann 2022-12-04 21:28:15 -06:00
  • f5f63563c6 Add tests for designated initializers. Stephen Heumann 2022-12-04 21:26:40 -06:00
  • 736e7575cf Fix issues with type conversions in static initialization. Stephen Heumann 2022-12-04 16:36:16 -06:00
  • 36c70f9107 Move ResolveForwardReference call to apply to the field being initialized. Stephen Heumann 2022-12-04 16:23:33 -06:00
  • 20770f388e Move memory allocation code to a new function in MM. Stephen Heumann 2022-12-03 18:50:26 -06:00
  • 7c0492cfa4 Document designated initializers in the release notes. Stephen Heumann 2022-12-03 18:04:50 -06:00
  • 945d5ce855 Generate calls to ~ZERO to initialize large numbers of zero bytes. Stephen Heumann 2022-12-03 15:30:31 -06:00
  • d56cf7e666 Pass constant data to backend as pointers into buffer. Stephen Heumann 2022-12-03 00:14:15 -06:00
  • 28e119afb1 Rework static initialization to support new-style initializer records. Stephen Heumann 2022-12-02 21:55:57 -06:00
  • 48efd462ef Allow designated initialization of fields named the same as typedefs. Stephen Heumann 2022-12-01 14:09:03 -06:00
  • 8ad58b0de7 Report an error for dual commas at end of struct/union initializer. Stephen Heumann 2022-11-30 19:07:38 -06:00
  • c1a188aa95 Add some comments in initialization code. Stephen Heumann 2022-11-30 18:55:43 -06:00
  • 51951721c5 Simplify Fill procedure. Stephen Heumann 2022-11-30 18:37:28 -06:00
  • 94584b0f05 Give error for arrays that are still 0 size after initialization. Stephen Heumann 2022-11-30 17:57:21 -06:00
  • e7940db4c8 Allow initializers where a string literal begins a longer expression. Stephen Heumann 2022-11-29 21:15:42 -06:00
  • 1f468c437f Set errorFound to true for most errors during initialization. Stephen Heumann 2022-11-29 13:20:30 -06:00
  • ac741e26ab Allow nested auto structs/unions to be initialized with an expression of the same type. Stephen Heumann 2022-11-29 13:19:59 -06:00
  • c58d84689a Explicitly set disp for every array element. Stephen Heumann 2022-11-28 22:11:24 -06:00
  • 4a8b5b25c7 Use a variable to indicate storage duration for initialization. Stephen Heumann 2022-11-28 21:59:08 -06:00
  • 50e3a8ea30 Avoid dereferencing nil. Stephen Heumann 2022-11-28 21:44:30 -06:00