[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] pickles: Fix recently-introduced `in' related type errors
From: |
Arsen Arsenović |
Subject: |
[PATCH] pickles: Fix recently-introduced `in' related type errors |
Date: |
Mon, 24 Oct 2022 21:40:10 +0200 |
---
Hi,
This patchset should fix all the pickles that have errors with new `in'
semantics.
Please also run check on your machines, since I have some other test failures
currently.
ChangeLog | 17 +++++++++++++++++
pickles/bmp.pk | 2 +-
pickles/bpf.pk | 14 +++++++-------
pickles/coff-i386.pk | 20 ++++++++++----------
pickles/dwarf-info.pk | 2 +-
pickles/elf-64.pk | 6 +++---
6 files changed, 39 insertions(+), 22 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 829a2b58..470d93d2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2022-10-24 Arsen Arsenović <arsen@aarsen.me>
+
+ * pickles/coff-i386.pk: Explicitly set i386 relocation types to
+ uint<16>, to avoid `in' type error.
+
+ * pickles/dwarf-info.pk: Explicitly specify type in version
+ `constraint', to avoid `in' type error.
+
+ * pickles/elf-64.pk: Cast d_tag to int<32>, to avoid `in' type
+ errors.
+
+ * pickles/bpf.pk: Explicitly make instruction classes three-bit
+ uints.
+
+ * pickles/bmp.pk: Use unsigned offsets explicitly, to match header
+ type.
+
2022-10-23 Arsen Arsenović <arsen@aarsen.me>
* doc/gen-pvm-insns.sh (SUBSECTIONS): Emit @pvindex calls for
diff --git a/pickles/bmp.pk b/pickles/bmp.pk
index 5d940a8c..3945b8ca 100644
--- a/pickles/bmp.pk
+++ b/pickles/bmp.pk
@@ -24,7 +24,7 @@ var BI_RGB = 0, /* No compression. */
/* The size of the info header depends on the type of BMP file. */
-var IHS_BMP_V2 = 12#B, IHS_BMP_V3 = 40#B;
+var IHS_BMP_V2 = 12U#B, IHS_BMP_V3 = 40U#B;
type BMP_Header =
struct
diff --git a/pickles/bpf.pk b/pickles/bpf.pk
index 4b92d617..d8f6874e 100644
--- a/pickles/bpf.pk
+++ b/pickles/bpf.pk
@@ -23,13 +23,13 @@
type BPF_Insn_Class = uint<3>;
-var BPF_INSN_CLASS_LD = 0b000,
- BPF_INSN_CLASS_LDX = 0b001,
- BPF_INSN_CLASS_ST = 0b010,
- BPF_INSN_CLASS_STX = 0b011,
- BPF_INSN_CLASS_ALU = 0b100,
- BPF_INSN_CLASS_JMP = 0b101,
- BPF_INSN_CLASS_ALU64 = 0b111;
+var BPF_INSN_CLASS_LD = 0b000 as uint<3>,
+ BPF_INSN_CLASS_LDX = 0b001 as uint<3>,
+ BPF_INSN_CLASS_ST = 0b010 as uint<3>,
+ BPF_INSN_CLASS_STX = 0b011 as uint<3>,
+ BPF_INSN_CLASS_ALU = 0b100 as uint<3>,
+ BPF_INSN_CLASS_JMP = 0b101 as uint<3>,
+ BPF_INSN_CLASS_ALU64 = 0b111 as uint<3>;
fun bpf_class_is_alujmp = (uint<3> class) int:
{
diff --git a/pickles/coff-i386.pk b/pickles/coff-i386.pk
index db5243ac..75122ac2 100644
--- a/pickles/coff-i386.pk
+++ b/pickles/coff-i386.pk
@@ -42,16 +42,16 @@ coff_magic_numbers
/* i386 COFF relocations. */
-var COFF_I386_R_DIR32 = 6,
- COFF_I386_R_IMAGEBASE = 7,
- COFF_I386_R_SECTION = 10,
- COFF_I386_R_SECREL32 = 11,
- COFF_I386_R_RELBYTE = 15,
- COFF_I386_R_RELWORD = 16,
- COFF_I386_R_RELLONG = 17,
- COFF_I386_R_PCRBYTE = 18,
- COFF_I386_R_PCRWORD = 19,
- COFF_I386_R_PCRLONG = 20;
+var COFF_I386_R_DIR32 = 6UH,
+ COFF_I386_R_IMAGEBASE = 7UH,
+ COFF_I386_R_SECTION = 10UH,
+ COFF_I386_R_SECREL32 = 11UH,
+ COFF_I386_R_RELBYTE = 15UH,
+ COFF_I386_R_RELWORD = 16UH,
+ COFF_I386_R_RELLONG = 17UH,
+ COFF_I386_R_PCRBYTE = 18UH,
+ COFF_I386_R_PCRWORD = 19UH,
+ COFF_I386_R_PCRLONG = 20UH;
var coff_i386_relocs =
[ COFF_I386_R_DIR32, COFF_I386_R_IMAGEBASE,
diff --git a/pickles/dwarf-info.pk b/pickles/dwarf-info.pk
index 3b6899a3..4cb0d039 100644
--- a/pickles/dwarf-info.pk
+++ b/pickles/dwarf-info.pk
@@ -374,7 +374,7 @@ type Dwarf_CU_Header =
Dwarf_Initial_Length unit_length;
/* Version of the DWARF information for the compilation unit. */
- uint<16> version : (version in [2, 3, 4, 5]
+ uint<16> version : (version in [2UH, 3UH, 4UH, 5UH]
&& dwarf_set_version (version));
/* Offset into the .debug_abbrev section that associates the
diff --git a/pickles/elf-64.pk b/pickles/elf-64.pk
index 0f0bfadf..bf534f23 100644
--- a/pickles/elf-64.pk
+++ b/pickles/elf-64.pk
@@ -107,9 +107,9 @@ type Elf64_Dyn =
data: even entries use d_ptr while odd entries use d_val. */
Elf64_Addr d_ptr
- : (d_tag in [DT_PLTGOT, DT_HASH, DT_STRTAB, DT_SYMTAB, DT_RELA,
- DT_SYMENT, DT_INIT, DT_FINI, DT_REL, DT_JMPREL,
- DT_INIT_ARRAY, DT_FINI_ARRAY]
+ : (d_tag as int<32> in [DT_PLTGOT, DT_HASH, DT_STRTAB, DT_SYMTAB,
+ DT_RELA, DT_SYMENT, DT_INIT, DT_FINI, DT_REL,
+ DT_JMPREL, DT_INIT_ARRAY, DT_FINI_ARRAY]
|| (d_tag >= DT_ENCODING && d_tag %2 != 0));
Elf64_Xword d_val;
--
2.38.1
- [PATCH] pickles: Fix recently-introduced `in' related type errors,
Arsen Arsenović <=