Commit Graph

  • 3aa96f8a10 Update definition of assert to pass a 32-bit line number. master Stephen Heumann 2025-11-25 22:20:16 -06:00
  • 719453e2a2 Define assert using ... so that the argument can contain a comma (C23). Stephen Heumann 2025-11-25 22:17:46 -06:00
  • d631326efc Add headers, tests, and documentation for free_sized and free_aligned_sized. Stephen Heumann 2025-11-13 20:46:32 -06:00
  • dcd530c09d Add headers, tests, and documentation for memccpy. Stephen Heumann 2025-11-12 20:03:29 -06:00
  • 1efbedb362 Add headers, tests, and documentation for memset_explicit. Stephen Heumann 2025-09-21 17:52:54 -05:00
  • ec1f49d12c Add headers, tests, and documentation for call_once. Stephen Heumann 2025-09-21 16:29:27 -05:00
  • b29517c7b9 Add BOOL_MAX macro (C23). Stephen Heumann 2025-09-17 20:54:31 -05:00
  • ee8be78a8b Allow initialization of static/global bool variables from addresses. Stephen Heumann 2025-09-06 20:33:05 -05:00
  • be97e598d2 Implement pointer subtraction for pointers to VLA types. Stephen Heumann 2025-09-03 22:18:20 -05:00
  • 174028dc0e Check that right operand in ptr subtraction points to a complete type. Stephen Heumann 2025-09-02 22:27:56 -05:00
  • 88a85b1a2e Make casts yield the unqualified version of the type. Stephen Heumann 2025-09-02 22:20:25 -05:00
  • 50650453ae Small edits in CGI.Comments. Stephen Heumann 2025-09-02 22:18:46 -05:00
  • 911e955ef9 Implement _BitInt types (C23). Stephen Heumann 2025-09-01 18:00:42 -05:00
  • 0717bd9d50 Avoid incorrect optimization of sign-extension code. Stephen Heumann 2025-08-28 20:53:42 -05:00
  • b78759a653 Use types instead of kinds in integer constant expression evaluation. Stephen Heumann 2025-08-14 22:23:17 -05:00
  • a31514e475 Include type in longConstant and longlongConstant tokens. Stephen Heumann 2025-08-13 21:55:04 -05:00
  • 2bbcf326c8 Always use 64-bit integers for evaluating constant expressions. Stephen Heumann 2025-08-12 22:12:41 -05:00
  • 53e84fb2f1 Remove charconst/shortconst/boolconst token kinds. Stephen Heumann 2025-08-11 21:56:04 -05:00
  • 7f1d96b629 Ensure integer promotions promote unsigned short to unsigned int. Stephen Heumann 2025-08-09 17:51:51 -05:00
  • e8e01b3263 Implement C23 rules requiring function prototypes. Stephen Heumann 2025-08-09 17:38:54 -05:00
  • f25c9a9210 Avoid null pointer dereferences in parameter type checking. Stephen Heumann 2025-08-06 18:43:24 -05:00
  • 788d167f31 Small cleanups in StrictCompTypes. Stephen Heumann 2025-07-27 22:12:13 -05:00
  • e0cc6b2b18 Correctly handle (void) function prototypes in type names. Stephen Heumann 2025-06-29 13:22:08 -05:00
  • e6b7535b8f Implement __has_c_attribute preprocessor operator (C23). Stephen Heumann 2025-06-28 21:52:27 -05:00
  • 069f97f51f Correct indentation and end-of-block comments. Stephen Heumann 2025-06-28 21:32:02 -05:00
  • 19ecd81c30 Implement __has_include preprocessor operator (C23). Stephen Heumann 2025-06-28 21:17:47 -05:00
  • 9630392c5e Prevent spurious errors when a #embed expands to nothing. Stephen Heumann 2025-06-28 20:21:21 -05:00
  • bb58a1a264 Fix handling of K&R-style parameters without explicit declarations. Stephen Heumann 2025-06-28 14:16:25 -05:00
  • aaa7ae01ce Use an enumeration for special macro algorithms. Stephen Heumann 2025-06-28 14:06:04 -05:00
  • abffba7969 Implement __has_embed preprocessor operator (C23). Stephen Heumann 2025-06-28 13:32:53 -05:00
  • 3803d28f08 Implement #embed directive (C23). Stephen Heumann 2025-06-27 21:40:34 -05:00
  • 13f2487f28 Declare unsigned comparison functions as returning a 16-bit integer. Stephen Heumann 2025-06-26 23:12:59 -05:00
  • ca2ed24817 Support #pragma STDC FENV_ROUND FE_DYNAMIC (C23). Stephen Heumann 2025-06-24 19:50:49 -05:00
  • 2cc445e25e Avoid reporting "compiler error" for attempts to initialize VLAs. Stephen Heumann 2025-06-24 18:18:54 -05:00
  • 1a0d0cdb65 Slight rewording of release notes. Stephen Heumann 2025-06-23 22:23:24 -05:00
  • c8f0e9c008 Update VLA tests. Stephen Heumann 2025-06-23 21:41:11 -05:00
  • 9ac829707c Evaluate typeof operand expressions with variably modified type. Stephen Heumann 2025-06-23 21:06:08 -05:00
  • a9f247c7cf Give compound literals in parameters automatic storage duration in C23. Stephen Heumann 2025-06-23 18:11:34 -05:00
  • 4189ba80ca Enforce constraint that array size expressions have integer type. Stephen Heumann 2025-06-23 18:09:17 -05:00
  • 5496122a9a Avoid generating sign extension code for VLA sizes of type int. Stephen Heumann 2025-06-22 21:25:41 -05:00
  • cf9c24b530 Document VLA support. Stephen Heumann 2025-06-22 21:12:30 -05:00
  • 0c70063081 Check for goto or switch entering scope of identifier with VM type. Stephen Heumann 2025-06-22 20:37:21 -05:00
  • ec8c26202f Add support for variable length array types. Stephen Heumann 2025-06-22 17:28:24 -05:00
  • 7446687559 Move C23 tests to separate test script so they can be run in C23 mode. Stephen Heumann 2025-06-22 17:21:59 -05:00
  • 6bd344c9ec Change ChangePointer to take the pointed-to type, not just its size. Stephen Heumann 2025-06-18 17:07:43 -05:00
  • 64dfdf9c2c Rename arrayExpression to integerConstantExpression. Stephen Heumann 2025-06-17 18:20:33 -05:00
  • 1841e949d4 Implement type inference with "auto" (C23). Stephen Heumann 2025-06-12 22:22:08 -05:00
  • eaad35c1ed Implement typeof and typeof_unqual (C23). Stephen Heumann 2025-06-11 18:01:17 -05:00
  • 3b9b4d5355 Parse function prototypes in type names. Stephen Heumann 2025-06-09 22:24:41 -05:00
  • 19804e013b Handle function-typed parameters whose own params start with attributes. Stephen Heumann 2025-06-08 22:55:10 -05:00
  • 5a4fef4175 Parse type names involving function types more correctly. Stephen Heumann 2025-06-08 22:18:23 -05:00
  • d4b62eeebc Allow for unnamed parameters declared with function type. Stephen Heumann 2025-06-08 20:22:25 -05:00
  • f096bf83c9 Allow parameters declared with function types (adjusted to pointers). Stephen Heumann 2025-06-08 16:19:42 -05:00
  • 67e3b4b2de Avoid usage of global numberOfParameters variable. Stephen Heumann 2025-06-08 13:57:19 -05:00
  • 9251bd08cd Avoid spurious errors about some functions returning function pointers. Stephen Heumann 2025-06-08 13:48:26 -05:00
  • de058c5e50 Fix test name in c23misc. Stephen Heumann 2025-06-05 18:24:01 -05:00
  • a0a8bbf389 Add support for true and false keywords (C23). Stephen Heumann 2025-06-04 21:48:31 -05:00
  • 951355623a Use proper types for constants cast to short, unsigned short, or bool. Stephen Heumann 2025-06-04 20:04:55 -05:00
  • a1506a5248 Support #elifdef and #elifndef preprocessor directives (C23). Stephen Heumann 2025-06-03 21:03:12 -05:00
  • aff5b0c277 Add support for u8-prefixed character constants (C23). Stephen Heumann 2025-06-03 19:57:03 -05:00
  • 27570f3ae2 Allow labels that do not precede a statement (C23). Stephen Heumann 2025-06-01 16:06:02 -05:00
  • 94cebf581d Start new release notes for ORCA/C 2.3.0 development. Stephen Heumann 2025-05-31 22:06:44 -05:00
  • 3b333009a3 Add test case for attributes. Stephen Heumann 2025-05-31 15:14:58 -05:00
  • fed794d3ea Add support for parsing attribute syntax. Stephen Heumann 2025-05-30 18:01:00 -05:00
  • 8d41558ed9 Allow attributes at the beginning of declarations or statements. Stephen Heumann 2025-05-28 21:56:00 -05:00
  • 76a9565e11 Begin implementation of C23 attributes. Stephen Heumann 2025-05-26 17:40:46 -05:00
  • 08f1380d21 Allow some C23 features in earlier compatibility modes. Stephen Heumann 2024-09-14 15:24:53 -05:00
  • fd0b4920f6 Allow Mac OS Roman characters $F6 and $FF to be used in identifiers. Stephen Heumann 2024-09-14 14:23:56 -05:00
  • ead95bcb12 Implement C23 changes to universal character names. Stephen Heumann 2024-09-13 22:14:43 -05:00
  • bae40bc615 Define va_start() such that the second parameter is not required (C23). Stephen Heumann 2024-08-30 21:24:48 -05:00
  • 67a94eda4c Let variadic macro invocations omit final comma for empty varargs (C23). Stephen Heumann 2024-08-30 21:19:37 -05:00
  • 41440e1db1 Add unreachable() macro (C23). Stephen Heumann 2024-08-30 20:39:24 -05:00
  • b35cc8e2e5 Include width macros in <limits.h> and <stdint.h> (C23). Stephen Heumann 2024-08-30 18:40:03 -05:00
  • 22627cbc0d Permit one-argument version of static_assert in C23 mode. Stephen Heumann 2024-08-30 13:52:09 -05:00
  • 1db26a88ad Give u8-prefixed strings "array of unsigned char" type in C23. Stephen Heumann 2024-08-30 13:45:20 -05:00
  • 0fe9424373 Disable recognition of trigraphs in C23 mode. Stephen Heumann 2024-08-30 13:43:59 -05:00
  • b27fc52dc4 Recognize :: as a punctuator token (C23). Stephen Heumann 2024-08-29 22:04:53 -05:00
  • 1e415aadd7 Parse _DecimalN keywords as (unsupported) type specifiers. Stephen Heumann 2024-08-29 13:18:56 -05:00
  • f125a6640c Handle alignas/alignof/bool/static_assert/thread_local keywords (C23). Stephen Heumann 2024-08-29 13:16:01 -05:00
  • 9ecbd42c1a Recognize new C23 keywords as keywords (in C23 mode). Stephen Heumann 2024-08-28 21:58:59 -05:00
  • f59c2cf93d Add a C23 standard option to the compiler. Stephen Heumann 2024-08-27 22:06:55 -05:00
  • 3a0dbd2e15 Update version number for ORCA/C 2.3.0 development. Stephen Heumann 2024-08-27 21:55:57 -05:00
  • b363a2c006 Update ORCA/C version number to 2.2.1 final. orcac-221 Stephen Heumann 2024-08-21 19:05:15 -05:00
  • 55898ddd60 Adjust a test for long numeric constants. Stephen Heumann 2024-08-21 18:22:05 -05:00
  • 347ad00ff7 Allow the operand of sizeof to be an un-parenthesized compound literal. Stephen Heumann 2024-08-11 20:33:36 -05:00
  • 5f59f152ed Allow function pointer == NULL comparisons under strict type checks. Stephen Heumann 2024-08-02 20:26:40 -05:00
  • a9e0b13e1c Require at least one hex digit in \x escape sequences. Stephen Heumann 2024-07-31 17:05:57 -05:00
  • e11c24bc24 Add two constant definitions related to list controls. Stephen Heumann 2024-07-04 12:54:46 -05:00
  • 6cf573a87c Generate better code for equality comparisons against -1/0xFFFF. Stephen Heumann 2024-07-04 12:47:16 -05:00
  • 69320cd4d8 Detect some erroneous numeric constants that were being allowed. Stephen Heumann 2024-04-23 22:07:19 -05:00
  • 8278f7865a Support unconvertible preprocessing numbers. Stephen Heumann 2024-04-23 21:39:14 -05:00
  • 6b7414384f Fix code generation bug for indirect load/store of 64-bit values. Stephen Heumann 2024-04-10 20:49:17 -05:00
  • 77e0b8fc59 Fix codegen error for some indirect accesses to 64-bit values. Stephen Heumann 2024-04-03 21:04:47 -05:00
  • 50636bd28b Fix code generation for qualified struct or union function parameters. Stephen Heumann 2024-04-01 20:06:26 -05:00
  • 83537fd3c7 Disable a peephole optimization that can produce bad code. Stephen Heumann 2024-03-17 21:31:18 -05:00
  • 81934109fc Fix issues with type names in the third expression of a for loop. Stephen Heumann 2024-03-13 22:09:25 -05:00
  • 72234a4f2b Generate better code for most unsigned 32-bit comparisons. Stephen Heumann 2024-03-10 21:24:33 -05:00
  • 36f766a662 Generate better code for comparisons against constant 1 or 2. Stephen Heumann 2024-03-06 21:57:27 -06:00
  • 4c402fc883 Generate better code for certain equality/inequality comparisons. Stephen Heumann 2024-03-06 18:38:31 -06:00
  • ca0147507b Generate slightly better code for logical negation. Stephen Heumann 2024-03-06 17:04:51 -06:00