reftable: make assignments portable to AIX xlc v12.01
Change the assignment syntax introduced in 66c0dabab5
(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>
This commit is contained in:
parent
abf474a5dd
commit
33665d98e6
@ -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;
|
||||
|
@ -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 };
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user