Create a new T_UNKNOWN type code and use this for the cases where
we previously abused T_INT. This means we can now reliably deduce
`int` when we see T_INT.
Fix the deduced result types of unary plus and unary minus which weren't
getting integer promotion applied to them.
Fix the deduced result type of the C++ logical not operator which was
`int` but should be `bool`.
WARN_CPP11_AUTO and WARN_CPP14_AUTO warning message tweaks.
Add the ignored variable to the parse tree so that the explicit warning
features work for WARN_CPP11_AUTO.
This change only supports expressions involving literals of built-in
types, and `int` expressions aren't supported (due to the parser
currently setting .type=T_INT when in situations where that isn't
or may not be the correct type).
This uses the existing type deduction code from decltype so has the same
limitations, and such variables will only actually be wrapped when SWIG
can deduce the type.
Fixes#1125