devel/cdecl: update to 16.0
Release Notes:
Macro expansion
Cdecl now allows you to #define macros and expand them step-by-step.
C99 with extension error messages
Improved C99 with extension error messages.
--disable-cdecl-debug removed
The --disable-cdecl-debug configure option has been removed (which means cdecl debug output is always compiled in).
GCC_COLORS
Support for GCC_COLORS has been removed. It was more of a hindrance than a help.
Implicit int pointers in C++
Implicit int pointer declarations, e.g., *p, are now correctly illegal in C++.
--infer-command, -I
The former --explain and -e options have been renamed --infer-command and -I; the former explain-by-default set option has been renamed infer-command.
Fixed issue #32: Invalid function declarator accepted as valid
A declarator like int f()()() was incorrectly accepted as valid — fixed.
Fixed infer-command comment syntax error
When in infer-command mode, a line starting with a comment would cause a syntax error. Fixed.
--east-const, -e
Since the old -e was renamed to -I, the short option for --east-const is now -e.
Lambdas in C
Lambdas are now correctly illegal in C.
Nested typedefs
Fixed printing of typedefs of nested types, e.g.:
c++decl> struct S { typedef int I; }
c++decl> typedef typename S::I T
c++decl> show
typedef S::I T;
restrict arrays
Arrays being restrict except as function parameter is now correctly illegal.
Fixed parsing struct member bit-field
A declararation like:
struct S
explain int S::x : 3
was incorrectly parsed; that's now fixed. (Scoped names still correctly can't be declared like that with bit fields, however.)
Types in error & warning messages
For types that are typedefs, now printing aka followed by their underlying types in more cases.
Fixed escaped newlines
Fixed escaped newline handling when not using GNU readline.
Fixed q command
Fixed having q be a synonym for quit in infer-command (formerly explain- by-default) mode.