Update Info


Recommended update for cdecl

Type: recommended
Severity: moderate
Issued: 2021-07-08
This update for cdecl fixes the following issues:

Update to release 10.0

* cdecl now recognizes "asm" just to say it's not supported.
* Improved operator<=> now checks for usable return type.
* Default relational operators in C++20 are now supported.
* C++'s raw string literals R"delim(...)delim" are now supported.

Update to release 9.10

* The show command now supports globs.

Update to release 9.9

* Added more predefined types: iconv_t, locale_t,
  posix_spawnattr_t, posix_spawn_file_actions_t, regex_t,
  regmatch_t, and regoff_t.
* A pointer to function with qualifiers is now caught for C.
* Nested types are now correctly caught as an error in C.
* A scoped name having a bit-field width is now caught as
  an error.
* A declaration having a storage class and a bit-field width is
  now correctly caught as an error.

Update to release 9.8

* extern "C" using declarations are now supported.
* The help for pseudo-English now correctly includes auto as a
  storage class for C++98 and C++03.

Update to release 9.7

* Multi-type typedef support

Update to release 9.6

* More constructor & destructor warning checks
* Type redefinition error now includes existing type

Update to release 9.5.1

* A function as a parameter is now automatically converted to a
  pointer to function per of the C standard.

Update to release 9.5

* Added enum, class, struct, and union attribute specifier
* Added fixed-type enum support.
* Added C2X __attr__ aliases.
* Added support for parsing C++ attribute arguments.
* Added support for parsing C++17 using in attributes.
* Added support for parsing GNU __attribute__.

Update to release 9.4

* Improved constructor & destructor declaration support
* Ability to explain forward declarations
* Ability to catch types having bit-field widths

Update to release 9.3

* Declarations with bit-field widths are now supported.

Update to release 9.2

* In-class constructor declarations without any
  storage-class-like type are now supported.
* Both final and override are now recognized as keywords only
  in a member function declaration context.

Update to release 9.1

* Implicit int functions in K&R C are now supported ("set knrc",
  "explain f(x)")

Update to release 9.0

* The `show` command can now alternatively show types as
  `using` declarations.
* For `predefined` or `user`, the `show` command now shows only
  types that are valid in the current language.
* When printing `enum`, `struct`, `class`, or `union` types,
  they are shown differently depending on what language the
  type was defined in and whether the current language is C or

Update to release 8.3

* "Did you mean ...?" added
* Multiple, comma-separated declarations are supported

Update to release 8.2

* Pseudo-English now allows "align" as a synonym for "aligned".
* The "set" command can now take multiple options.
* C99 type-qualified array function arguments can now have a
  size omitted. ("void f(int a[const])")

Update to release 8.1

* Added support for Unified Parallel C

Update to release 8.0

* Support for C2X and Embedded C.
* More support for C++20.

Update to release 7.4.1

* The legal signed main() signature is now accepted.
* "East const" is now ignored when explaining gibberish.

Update to release 7.3

* Explaining a declaration like: "explain void f(double (*a)[5])"
  crashed; this was fixed.

Update to release 7.2

* Added support for composing and deciphering C++ overloaded
  new, new[], delete, and delete[] operators.
* Added types std::align_val_t, std::destroying_delete_t, and

Update to release 7.1

* Added GNU C's __complex, __complex__, __const, __inline,
  __restrict, __signed, __signed__, __volatile, and

Update to release 7.0

* New -E/--east-const command-line option.
* Added support for the [[no_unique_address]] attribute
  from C++20.

Update to release 6.11

* Added __inline__, __restrict__, and __thread
* Added GNU C types
* Added WIN32 types

Update to release 6.10

* The "long long" type was incorrectly allowed in C89; it
  was not added until C99.
* Added pthread.h, threads.h, and C++ thread types.

Update to release 6.9

* The `cast` command now accepts `as` and `to` in addition
  to `into`.
* Autocomplete was missing `explain-by-default;`.

Update to release 6.8.2

* When in explain-by-default mode, a special case has to be made
  for `const` and `static` keywords, since the `explain` command
  is implied only when not followed by the `cast` keyword.

Update to release 6.8.1

* Reset lexer start-state

Update to release 6.8

* Since the set explicit-int option was added (an option that
  takes a value), a set lang=lang option was added.

Update to release 6.7

* Add emission of explicit "int" to English output mode.

Update to release 6.6.2

* Command-line long-options.
* Distinguishes among K&R C, C89, C95, C99, C11, C18, C++98,
  C++03, C++11, C++14, C++17, and C++20.
* Support for C89 const, restrict, and volatile declarations.
* Support for the standard C95 type wchar_t.
* Support for the standard C99 types _Bool, _Complex,
  _Imaginary, int8_t, int16_t, ptrdiff_t, size_t, etc.
* Support for C99 static, type-qualified, and variable length
  array function arguments.
* Support for the standard C11 atomic types atomic_bool,
  atomic_char, etc.
* Support for the standard C11 and C++11 types char16_t,
  char32_t, and thread_local.
* Support for inline function and variable declarations.
* Support for typedef declarations.
* Support for variadic function arguments.
* Support for C and C++ alternative tokens (and, and_eq, etc.).
* Support for C++ mutable data members, namespaces and scoped
  names, new-style casts, throw, overloaded operators, and
  friend, virtual and pure virtual member function
  declarations, and user-defined conversion operators.
* Support for C++11 constexpr, enum class, final, noexcept,
  override, rvalue references, user-defined literals, using (as
  a typedef synonym), the function trailing return-type syntax,
  and ref-qualified member function declarations.
* Support for C++ [[carries_dependency]], [[deprecated]],
  [[maybe_unused]], [[nodiscard]], and [[noreturn]] attribute
* Better warning and error messages complete with location
  information and color.



No references


  • cdecl-10.0-bp153.2.3.1