rewrite fallthrough to HEIM_FALLTHROUGH to deal with new Apple SDKs
Apple clang version 14.0.0 (clang-1400.0.17.3.1) fails the build because stds.h defines `fallthrough` as a macro which is then expanded when base.h evaluates # if __has_attribute(fallthrough) && __clang_major__ >= 5 The macOS SDK defines `DISPATCH_FALLTHROUGH` as the macro instead of `fallthrough`. This change replaces the use of `fallthrough` in the tree with `HEIM_FALLTHROUGH` and updates the declaration in configure logic to define `HEIM_FALLTHROUGH` based upon existing definitions (if any) of `fallthrough` or `DISPATCH_FALLTHROUGH`.
This commit is contained in:

committed by
Jeffrey Altman

parent
f6d26bce66
commit
133f517482
@@ -205,18 +205,18 @@ wind_ucs4utf8(const uint32_t *in, size_t in_len, char *out, size_t *out_len)
|
||||
case 4:
|
||||
out[3] = (ch | 0x80) & 0xbf;
|
||||
ch = ch >> 6;
|
||||
fallthrough;
|
||||
HEIM_FALLTHROUGH;
|
||||
case 3:
|
||||
out[2] = (ch | 0x80) & 0xbf;
|
||||
ch = ch >> 6;
|
||||
fallthrough;
|
||||
HEIM_FALLTHROUGH;
|
||||
case 2:
|
||||
out[1] = (ch | 0x80) & 0xbf;
|
||||
ch = ch >> 6;
|
||||
fallthrough;
|
||||
HEIM_FALLTHROUGH;
|
||||
case 1:
|
||||
out[0] = ch | first_char[len - 1];
|
||||
fallthrough;
|
||||
HEIM_FALLTHROUGH;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -486,14 +486,14 @@ wind_ucs2utf8(const uint16_t *in, size_t in_len, char *out, size_t *out_len)
|
||||
case 3:
|
||||
out[2] = (ch | 0x80) & 0xbf;
|
||||
ch = ch >> 6;
|
||||
fallthrough;
|
||||
HEIM_FALLTHROUGH;
|
||||
case 2:
|
||||
out[1] = (ch | 0x80) & 0xbf;
|
||||
ch = ch >> 6;
|
||||
fallthrough;
|
||||
HEIM_FALLTHROUGH;
|
||||
case 1:
|
||||
out[0] = ch | first_char[len - 1];
|
||||
fallthrough;
|
||||
HEIM_FALLTHROUGH;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
Reference in New Issue
Block a user