diff options
author | Alexandre Oliva <oliva@adacore.com> | 2025-08-06 16:31:50 -0300 |
---|---|---|
committer | Alexandre Oliva <oliva@gnu.org> | 2025-08-06 16:31:50 -0300 |
commit | 01a523943c0a9b297726289d7333a5217b1d4d31 (patch) | |
tree | 65e3025c886faac48b321ffcbf131a914026936a /gcc/ada/libgnat/s-fileio.ads | |
parent | 88732d9eb88298a2e7a999c83878c8ea9edc5827 (diff) | |
download | gcc-master.zip gcc-master.tar.gz gcc-master.tar.bz2 |
hardbools didn't behave quite like bools when incremented,
decremented, or otherwise modified using their previous value, as in
+= et al. Fix that.
Also fix some checking errors that come up when using qualified base
types.
for gcc/c-family/ChangeLog
* c-attribs.cc (handle_hardbool_attribute): Create distinct
enumeration types, with structural equality. Handle
base type qualifiers.
for gcc/c/ChangeLog
* c-tree.h (C_BOOLEAN_TYPE_P): Cover hardbools as well.
* c-typeck.cc (convert_lvalue_to_rvalue): New overload and
wrapper.
(build_atomic_assign, build_modify_expr): Use it.
(build_asm_expr, handle_omp-array_sections_1): Simplify with
it.
(build_unary_op): Handle hardbools.
for gcc/testsuite/ChangeLog
* gcc.dg/torture/hardbool-ai.c: New.
* gcc.dg/torture/hardbool-vi.c: New.
* gcc.dg/torture/hardbool.c: Handle NO_BITFIELDS.
(add1, preinc, postinc, sub1, predec, postdec): New.
(main): Exercise them.
Diffstat (limited to 'gcc/ada/libgnat/s-fileio.ads')
0 files changed, 0 insertions, 0 deletions