diff options
author | 2022-03-28 21:10:04 +0200 | |
---|---|---|
committer | 2022-03-28 13:58:10 -0700 | |
commit | 33665d98e6bff90896ec5b9f8e8f1223b780a4d1 (patch) | |
tree | e2495a7add1e5e158c0567f70518500279f1f4fa /reftable | |
parent | The 15th batch (diff) | |
download | tgif-33665d98e6bff90896ec5b9f8e8f1223b780a4d1.tar.xz |
reftable: make assignments portable to AIX xlc v12.01
Change the assignment syntax introduced in 66c0dabab5e (reftable: make
reftable_record a tagged union, 2022-01-20) to be portable to AIX xlc
v12.1:
avar@gcc111:[/home/avar]xlc -qversion
IBM XL C/C++ for AIX, V12.1 (5765-J02, 5725-C72)
Version: 12.01.0000.0000
The error emitted before this was e.g.:
"reftable/generic.c", line 133.26: 1506-196 (S) Initialization
between types "char*" and "struct reftable_ref_record" is not
allowed.
The syntax in the pre-image is supported by e.g. xlc 13.01 on a newer
AIX version:
avar@gcc119:[/home/avar]xlc -qversion
IBM XL C/C++ for AIX, V13.1.3 (5725-C72, 5765-J07)
Version: 13.01.0003.0006
But as we've otherwise supported this compiler let's not break it
entirely if it's easy to work around it.
Suggested-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'reftable')
-rw-r--r-- | reftable/generic.c | 8 | ||||
-rw-r--r-- | reftable/record_test.c | 4 | ||||
-rw-r--r-- | reftable/writer.c | 12 |
3 files changed, 18 insertions, 6 deletions
diff --git a/reftable/generic.c b/reftable/generic.c index b27d152e89..57f8032db9 100644 --- a/reftable/generic.c +++ b/reftable/generic.c @@ -130,7 +130,9 @@ int reftable_iterator_next_ref(struct reftable_iterator *it, { struct reftable_record rec = { .type = BLOCK_TYPE_REF, - .u.ref = *ref, + .u = { + .ref = *ref + }, }; int err = iterator_next(it, &rec); *ref = rec.u.ref; @@ -142,7 +144,9 @@ int reftable_iterator_next_log(struct reftable_iterator *it, { struct reftable_record rec = { .type = BLOCK_TYPE_LOG, - .u.log = *log, + .u = { + .log = *log, + }, }; int err = iterator_next(it, &rec); *log = rec.u.log; diff --git a/reftable/record_test.c b/reftable/record_test.c index f91ea5e883..70ae78feca 100644 --- a/reftable/record_test.c +++ b/reftable/record_test.c @@ -339,7 +339,9 @@ static void test_reftable_obj_record_roundtrip(void) }; struct reftable_record in = { .type = BLOCK_TYPE_OBJ, - .u.obj = recs[i], + .u = { + .obj = recs[i], + }, }; struct strbuf key = STRBUF_INIT; struct reftable_record out = { .type = BLOCK_TYPE_OBJ }; diff --git a/reftable/writer.c b/reftable/writer.c index 6d979e245f..427f1317c6 100644 --- a/reftable/writer.c +++ b/reftable/writer.c @@ -257,7 +257,9 @@ int reftable_writer_add_ref(struct reftable_writer *w, { struct reftable_record rec = { .type = BLOCK_TYPE_REF, - .u.ref = *ref, + .u = { + .ref = *ref + }, }; int err = 0; @@ -308,7 +310,9 @@ static int reftable_writer_add_log_verbatim(struct reftable_writer *w, { struct reftable_record rec = { .type = BLOCK_TYPE_LOG, - .u.log = *log, + .u = { + .log = *log, + }, }; if (w->block_writer && block_writer_type(w->block_writer) == BLOCK_TYPE_REF) { @@ -401,7 +405,9 @@ static int writer_finish_section(struct reftable_writer *w) for (i = 0; i < idx_len; i++) { struct reftable_record rec = { .type = BLOCK_TYPE_INDEX, - .u.idx = idx[i], + .u = { + .idx = idx[i], + }, }; if (block_writer_add(w->block_writer, &rec) == 0) { continue; |