C casts do not require parentheses. C++ casts require grouping around
the target. Prepare for conversion to C++ casts by adding otherwise
unnecessary parentheses around the target of simple C casts.
s/\((\s*\(\(un\)\?signed\|int\|char\|short\|long\|float\|double\|s\?size_t\|\(u\?int[[:digit:]]\+_t\)\)\s*\**\s*)\s*\)\([&+-]\?\)\([[:alnum:]_.]\+\s*->\s*\)*\([[:alnum:]_.]\+\)\(\s*\[[^][]*\]\)*\(\s*\([];+>)*\/^%,|&<>]\)\|$\|\(\s*-\s*[^>]\)\)/\1(\5\6\7\8)\9/g
Some compiler configurations warn that vertices[4] and vertices[5] may
be used uninitialized. Initialize them to a bogus value so that any
actual use will trap, but the comparisons will be well defined.
In every case but one, create_shortpos was called with a constant flag
equal to words_bigendian. The demo system called it with a constant 0.
Split create_shortpos into create_shortpos_little and
create_shortpos_native. Use create_shortpos_native for the demo system,
and create_shortpos_little everywhere else.
Check type before checking signature. Objects with type OBJ_NONE are
not guaranteed to have any particular signature. Commit 91d31b1 removed
the statement which cleared the signature when the type changes to
OBJ_NONE.
Fixes: 91d31b1952 ("Wrap object signature in subtype")
Modifying a by-value temporary does not affect the underlying container,
so modifying it is almost always a bug. Require use of a by-reference
capture when modification is desired.
sed -i -e 's/range_for\s*(\s*\(const\s\+\)\?auto\s\+\([[:alpha:]_]\)/range_for (const auto \2/g'