Skip to content

Commit 53c1584

Browse files
committed
[NFC] [libunwind] turn assert into static_assert
Reviewed By: #libunwind, MaskRay Differential Revision: https://reviews.llvm.org/D126987
1 parent 42c7f49 commit 53c1584

File tree

2 files changed

+47
-18
lines changed

2 files changed

+47
-18
lines changed

libunwind/src/DwarfInstructions.hpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -213,9 +213,10 @@ int DwarfInstructions<A, R>::stepWithDwarf(A &addressSpace, pint_t pc,
213213
newRegisters.setSP(cfa);
214214

215215
pint_t returnAddress = 0;
216-
const int lastReg = R::lastDwarfRegNum();
217-
assert(static_cast<int>(CFI_Parser<A>::kMaxRegisterNumber) >= lastReg &&
218-
"register range too large");
216+
constexpr int lastReg = R::lastDwarfRegNum();
217+
static_assert(static_cast<int>(CFI_Parser<A>::kMaxRegisterNumber) >=
218+
lastReg,
219+
"register range too large");
219220
assert(lastReg >= (int)cieInfo.returnAddressRegister &&
220221
"register range does not contain return address register");
221222
for (int i = 0; i <= lastReg; ++i) {

libunwind/src/Registers.hpp

Lines changed: 43 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,9 @@ class _LIBUNWIND_HIDDEN Registers_x86 {
7070
void setVectorRegister(int num, v128 value);
7171
static const char *getRegisterName(int num);
7272
void jumpto() { __libunwind_Registers_x86_jumpto(this); }
73-
static int lastDwarfRegNum() { return _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86; }
73+
static constexpr int lastDwarfRegNum() {
74+
return _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86;
75+
}
7476
static int getArch() { return REGISTERS_X86; }
7577

7678
uint32_t getSP() const { return _registers.__esp; }
@@ -286,7 +288,9 @@ class _LIBUNWIND_HIDDEN Registers_x86_64 {
286288
void setVectorRegister(int num, v128 value);
287289
static const char *getRegisterName(int num);
288290
void jumpto() { __libunwind_Registers_x86_64_jumpto(this); }
289-
static int lastDwarfRegNum() { return _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_64; }
291+
static constexpr int lastDwarfRegNum() {
292+
return _LIBUNWIND_HIGHEST_DWARF_REGISTER_X86_64;
293+
}
290294
static int getArch() { return REGISTERS_X86_64; }
291295

292296
uint64_t getSP() const { return _registers.__rsp; }
@@ -603,7 +607,9 @@ class _LIBUNWIND_HIDDEN Registers_ppc {
603607
void setVectorRegister(int num, v128 value);
604608
static const char *getRegisterName(int num);
605609
void jumpto();
606-
static int lastDwarfRegNum() { return _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC; }
610+
static constexpr int lastDwarfRegNum() {
611+
return _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC;
612+
}
607613
static int getArch() { return REGISTERS_PPC; }
608614

609615
uint64_t getSP() const { return _registers.__r1; }
@@ -1171,7 +1177,9 @@ class _LIBUNWIND_HIDDEN Registers_ppc64 {
11711177
void setVectorRegister(int num, v128 value);
11721178
static const char *getRegisterName(int num);
11731179
void jumpto();
1174-
static int lastDwarfRegNum() { return _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64; }
1180+
static constexpr int lastDwarfRegNum() {
1181+
return _LIBUNWIND_HIGHEST_DWARF_REGISTER_PPC64;
1182+
}
11751183
static int getArch() { return REGISTERS_PPC64; }
11761184

11771185
uint64_t getSP() const { return _registers.__r1; }
@@ -1818,7 +1826,9 @@ class _LIBUNWIND_HIDDEN Registers_arm64 {
18181826
void setVectorRegister(int num, v128 value);
18191827
static const char *getRegisterName(int num);
18201828
void jumpto() { __libunwind_Registers_arm64_jumpto(this); }
1821-
static int lastDwarfRegNum() { return _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM64; }
1829+
static constexpr int lastDwarfRegNum() {
1830+
return _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM64;
1831+
}
18221832
static int getArch() { return REGISTERS_ARM64; }
18231833

18241834
uint64_t getSP() const { return _registers.__sp; }
@@ -2108,7 +2118,9 @@ class _LIBUNWIND_HIDDEN Registers_arm {
21082118
restoreSavedFloatRegisters();
21092119
restoreCoreAndJumpTo();
21102120
}
2111-
static int lastDwarfRegNum() { return _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM; }
2121+
static constexpr int lastDwarfRegNum() {
2122+
return _LIBUNWIND_HIGHEST_DWARF_REGISTER_ARM;
2123+
}
21122124
static int getArch() { return REGISTERS_ARM; }
21132125

21142126
uint32_t getSP() const { return _registers.__sp; }
@@ -2608,7 +2620,9 @@ class _LIBUNWIND_HIDDEN Registers_or1k {
26082620
void setVectorRegister(int num, v128 value);
26092621
static const char *getRegisterName(int num);
26102622
void jumpto();
2611-
static int lastDwarfRegNum() { return _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K; }
2623+
static constexpr int lastDwarfRegNum() {
2624+
return _LIBUNWIND_HIGHEST_DWARF_REGISTER_OR1K;
2625+
}
26122626
static int getArch() { return REGISTERS_OR1K; }
26132627

26142628
uint64_t getSP() const { return _registers.__r[1]; }
@@ -2805,7 +2819,9 @@ class _LIBUNWIND_HIDDEN Registers_mips_o32 {
28052819
void setVectorRegister(int num, v128 value);
28062820
static const char *getRegisterName(int num);
28072821
void jumpto();
2808-
static int lastDwarfRegNum() { return _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS; }
2822+
static constexpr int lastDwarfRegNum() {
2823+
return _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS;
2824+
}
28092825
static int getArch() { return REGISTERS_MIPS_O32; }
28102826

28112827
uint32_t getSP() const { return _registers.__r[29]; }
@@ -3132,7 +3148,9 @@ class _LIBUNWIND_HIDDEN Registers_mips_newabi {
31323148
void setVectorRegister(int num, v128 value);
31333149
static const char *getRegisterName(int num);
31343150
void jumpto();
3135-
static int lastDwarfRegNum() { return _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS; }
3151+
static constexpr int lastDwarfRegNum() {
3152+
return _LIBUNWIND_HIGHEST_DWARF_REGISTER_MIPS;
3153+
}
31363154
static int getArch() { return REGISTERS_MIPS_NEWABI; }
31373155

31383156
uint64_t getSP() const { return _registers.__r[29]; }
@@ -3427,7 +3445,9 @@ class _LIBUNWIND_HIDDEN Registers_sparc {
34273445
void setVectorRegister(int num, v128 value);
34283446
static const char *getRegisterName(int num);
34293447
void jumpto();
3430-
static int lastDwarfRegNum() { return _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC; }
3448+
static constexpr int lastDwarfRegNum() {
3449+
return _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC;
3450+
}
34313451
static int getArch() { return REGISTERS_SPARC; }
34323452

34333453
uint64_t getSP() const { return _registers.__regs[UNW_SPARC_O6]; }
@@ -3611,7 +3631,7 @@ class _LIBUNWIND_HIDDEN Registers_sparc64 {
36113631
void setVectorRegister(int num, v128 value);
36123632
const char *getRegisterName(int num);
36133633
void jumpto();
3614-
static int lastDwarfRegNum() {
3634+
static constexpr int lastDwarfRegNum() {
36153635
return _LIBUNWIND_HIGHEST_DWARF_REGISTER_SPARC64;
36163636
}
36173637
static int getArch() { return REGISTERS_SPARC64; }
@@ -3796,7 +3816,9 @@ class _LIBUNWIND_HIDDEN Registers_hexagon {
37963816
void setVectorRegister(int num, v128 value);
37973817
const char *getRegisterName(int num);
37983818
void jumpto();
3799-
static int lastDwarfRegNum() { return _LIBUNWIND_HIGHEST_DWARF_REGISTER_HEXAGON; }
3819+
static constexpr int lastDwarfRegNum() {
3820+
return _LIBUNWIND_HIGHEST_DWARF_REGISTER_HEXAGON;
3821+
}
38003822
static int getArch() { return REGISTERS_HEXAGON; }
38013823

38023824
uint32_t getSP() const { return _registers.__r[UNW_HEXAGON_R29]; }
@@ -4009,7 +4031,9 @@ class _LIBUNWIND_HIDDEN Registers_riscv {
40094031
void setVectorRegister(int num, v128 value);
40104032
static const char *getRegisterName(int num);
40114033
void jumpto();
4012-
static int lastDwarfRegNum() { return _LIBUNWIND_HIGHEST_DWARF_REGISTER_RISCV; }
4034+
static constexpr int lastDwarfRegNum() {
4035+
return _LIBUNWIND_HIGHEST_DWARF_REGISTER_RISCV;
4036+
}
40134037
static int getArch() { return REGISTERS_RISCV; }
40144038

40154039
reg_t getSP() const { return _registers[2]; }
@@ -4295,7 +4319,9 @@ class _LIBUNWIND_HIDDEN Registers_ve {
42954319
void setVectorRegister(int num, v128 value);
42964320
static const char *getRegisterName(int num);
42974321
void jumpto();
4298-
static int lastDwarfRegNum() { return _LIBUNWIND_HIGHEST_DWARF_REGISTER_VE; }
4322+
static constexpr int lastDwarfRegNum() {
4323+
return _LIBUNWIND_HIGHEST_DWARF_REGISTER_VE;
4324+
}
42994325
static int getArch() { return REGISTERS_VE; }
43004326

43014327
uint64_t getSP() const { return _registers.__s[11]; }
@@ -4736,7 +4762,9 @@ class _LIBUNWIND_HIDDEN Registers_s390x {
47364762
void setVectorRegister(int num, v128 value);
47374763
static const char *getRegisterName(int num);
47384764
void jumpto();
4739-
static int lastDwarfRegNum() { return _LIBUNWIND_HIGHEST_DWARF_REGISTER_S390X; }
4765+
static constexpr int lastDwarfRegNum() {
4766+
return _LIBUNWIND_HIGHEST_DWARF_REGISTER_S390X;
4767+
}
47404768
static int getArch() { return REGISTERS_S390X; }
47414769

47424770
uint64_t getSP() const { return _registers.__gpr[15]; }

0 commit comments

Comments
 (0)