aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/ChangeLog
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2021-06-15 17:53:34 -0400
committerDavid Malcolm <dmalcolm@redhat.com>2021-06-15 17:53:34 -0400
commitec3fafa9ec7d16b9d89076efd3bac1d1af0502b8 (patch)
treef0ec9db9a54b4825020dba1cf584381c49c8d583 /libstdc++-v3/ChangeLog
parent71790f398e119c7fed867b0cfce60a7500629dff (diff)
downloadgcc-ec3fafa9ec7d16b9d89076efd3bac1d1af0502b8.zip
gcc-ec3fafa9ec7d16b9d89076efd3bac1d1af0502b8.tar.gz
gcc-ec3fafa9ec7d16b9d89076efd3bac1d1af0502b8.tar.bz2
analyzer: fix bitfield endianness issues [PR99212,PR101082]
Looks like my patch for PR analyzer/99212 implicitly assumed little-endian, which the following patch fixes. Fixes bitfields-1.c on: - armeb-none-linux-gnueabihf - cris-elf - powerpc64-darwin - s390-linux-gnu gcc/analyzer/ChangeLog: PR analyzer/99212 PR analyzer/101082 * engine.cc: Include "target.h". (impl_run_checkers): Log BITS_BIG_ENDIAN, BYTES_BIG_ENDIAN, and WORDS_BIG_ENDIAN. * region-model-manager.cc (region_model_manager::maybe_fold_binop): Move support for masking via ARG0 & CST into... (region_model_manager::maybe_undo_optimize_bit_field_compare): ...this new function. Flatten by converting from nested conditionals to a series of early return statements to reject failures. Reject if type is not unsigned_char_type_node. Handle BYTES_BIG_ENDIAN when determining which bits are bound in the binding_map. * region-model.h (region_model_manager::maybe_undo_optimize_bit_field_compare): New decl. * store.cc (bit_range::dump): New function. * store.h (bit_range::dump): New decl. Signed-off-by: David Malcolm <dmalcolm@redhat.com>
Diffstat (limited to 'libstdc++-v3/ChangeLog')
0 files changed, 0 insertions, 0 deletions