cb424d7448
verify-patch-sanity.py validates every active recipe .patch has internally- consistent hunk line counts — catching the 'malformed patch at line N' failure at commit/CI/preflight time instead of hours into a cook. This cycle hit that class three times (qtwaylandscanner, sddm, xwayland), each only discovered when cookbook tried to apply the patch. Running it across the repo found 29 latent malformed patches (validated against GNU patch: e.g. relibc/P3-sysv-ipc reproduces 'malformed patch at line 22'). They were harmless only because they sit in vendored recipes (baked, not re- applied) — but would fail on any version-bump re-derivation. --fix recounts the hunk headers (body untouched) and repaired all 29. Wired into build-preflight.sh (Phase 1.0D) and redbear-ci.yml, with a unit test (test-patch-sanity.sh). Skips archived/legacy trees and unvalidatable formats (empty placeholders, bare-@@ git hunks).
55 lines
1.1 KiB
C
55 lines
1.1 KiB
C
// RUN: %clang_cc1 -emit-llvm %s -o %t
|
|
|
|
// From GCC PR19331
|
|
struct SysParams
|
|
{
|
|
unsigned short tag;
|
|
unsigned short version;
|
|
unsigned int seqnum;
|
|
int contrast;
|
|
int igain_1, igain_2;
|
|
int oattn_1, oattn_2;
|
|
int max_out_vltg_1, max_out_vltg_2;
|
|
int max_mains_current;
|
|
int meters_mode;
|
|
int input_select;
|
|
_Bool input_parallelch2:1;
|
|
_Bool cliplmt_ch1:1;
|
|
_Bool cliplmt_ch2:1;
|
|
_Bool gate_ch1:1;
|
|
_Bool gate_ch2:1;
|
|
_Bool mute_ch1:1;
|
|
_Bool mute_ch2:1;
|
|
_Bool brownout:1;
|
|
_Bool power_on:1;
|
|
_Bool pwrup_mute:1;
|
|
_Bool keylock:1;
|
|
_Bool dsp_ch1:1;
|
|
_Bool dsp_ch2:1;
|
|
int dsp_preset;
|
|
long unlock_code;
|
|
};
|
|
extern struct SysParams params;
|
|
|
|
void foo(void *);
|
|
void kcmd_setParams(void)
|
|
{
|
|
struct {
|
|
unsigned char igain_1;
|
|
unsigned char igain_2;
|
|
unsigned char max_out_vltg_1;
|
|
unsigned char max_out_vltg_2;
|
|
unsigned char max_imains;
|
|
unsigned char cliplmt_ch1:1;
|
|
unsigned char cliplmt_ch2:1;
|
|
unsigned char gate_ch1:1;
|
|
unsigned char gate_ch2:1;
|
|
} msg;
|
|
foo(&msg);
|
|
params.cliplmt_ch1 = msg.cliplmt_ch1;
|
|
params.cliplmt_ch2 = msg.cliplmt_ch2;
|
|
params.gate_ch1 = msg.gate_ch1;
|
|
params.gate_ch2 = msg.gate_ch2;
|
|
}
|
|
|