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).
97 lines
1.5 KiB
TableGen
97 lines
1.5 KiB
TableGen
// RUN: llvm-tblgen %s | FileCheck %s
|
|
// XFAIL: vg_leak
|
|
|
|
// "zing = 4" x 28
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK: zing = 4
|
|
// CHECK-NOT: zing = 4
|
|
|
|
class C1<int A, string B> {
|
|
int bar = A;
|
|
string thestr = B;
|
|
int zing;
|
|
}
|
|
|
|
def T : C1<4, "blah">;
|
|
|
|
multiclass t1<int a1> {
|
|
def S1 : C1<a1, "foo"> {
|
|
int foo = 4;
|
|
let bar = 1;
|
|
}
|
|
def S2 : C1<a1, "bar">;
|
|
}
|
|
|
|
multiclass t2<int a2> {
|
|
def S3 : C1<a2, "foo"> {
|
|
int foo = 4;
|
|
let bar = 1;
|
|
}
|
|
def S4 : C1<a2, "bar">;
|
|
}
|
|
|
|
multiclass s1<int as1, int bs1> : t1<as1> {
|
|
def S5 : C1<bs1, "moo"> {
|
|
int moo = 3;
|
|
let bar = 1;
|
|
}
|
|
def S6 : C1<bs1, "baz">;
|
|
}
|
|
|
|
multiclass s2<int as2> : t1<as2>, t2<as2>;
|
|
|
|
multiclass s3<int as3, int bs3> : t1<as3>, t2<as3> {
|
|
def S7 : C1<bs3, "moo"> {
|
|
int moo = 3;
|
|
let bar = 1;
|
|
}
|
|
def S8 : C1<bs3, "baz">;
|
|
}
|
|
|
|
let zing = 4 in
|
|
defm FOO1 : s1<42, 24>;
|
|
|
|
let zing = 4 in
|
|
defm FOO2 : s2<99>;
|
|
|
|
let zing = 4 in
|
|
defm FOO3 : s3<84, 48>;
|
|
|
|
def T4 : C1<6, "foo">;
|
|
|
|
let zing = 4 in
|
|
defm BAZ1 : s1<3, 4>;
|
|
|
|
let zing = 4 in
|
|
defm BAZ2 : s2<5>;
|
|
|
|
let zing = 4 in
|
|
defm BAZ3 : s3<6, 7>;
|
|
|