clang 3.9+ picks up some potential undefined behavior I wasn't aware of: EXP58-CPP
Basically, anything subject to promotion can't be the last non-variadic argument in a variadic function. It's unlikely to be a problem, but technically enums aren't allowed. Need to make an API change to fix this, just not sure what the best option is yet…
Possibly others, I haven't done a full check. One option would be reversing the stream_type and codec arguments, but that doesn't fit with the rest of the API. Changing SquashStreamType to an int would ruin -Wswitch-enum. Maybe drop SquashStreamType in favor of a bool…
clang 3.9+ picks up some potential undefined behavior I wasn't aware of: EXP58-CPP
Basically, anything subject to promotion can't be the last non-variadic argument in a variadic function. It's unlikely to be a problem, but technically enums aren't allowed. Need to make an API change to fix this, just not sure what the best option is yet…
Relevant functions are
Possibly others, I haven't done a full check. One option would be reversing the
stream_type
andcodec
arguments, but that doesn't fit with the rest of the API. ChangingSquashStreamType
to an int would ruin-Wswitch-enum
. Maybe dropSquashStreamType
in favor of a bool…