Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 1630f21

Browse files
projectgusdhalbert
authored andcommitted
py/emitinlinethumb: Refactor string literal as array initializer.
Avoids the new Wunterminated-string-literal when compiled with gcc 15.1. This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <[email protected]>
1 parent 1d83528 commit 1630f21

File tree

1 file changed

+54
-54
lines changed

1 file changed

+54
-54
lines changed

py/emitinlinethumb.c

Lines changed: 54 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -150,27 +150,27 @@ typedef struct _reg_name_t { byte reg;
150150
byte name[3];
151151
} reg_name_t;
152152
static const reg_name_t reg_name_table[] = {
153-
{0, "r0\0"},
154-
{1, "r1\0"},
155-
{2, "r2\0"},
156-
{3, "r3\0"},
157-
{4, "r4\0"},
158-
{5, "r5\0"},
159-
{6, "r6\0"},
160-
{7, "r7\0"},
161-
{8, "r8\0"},
162-
{9, "r9\0"},
163-
{10, "r10"},
164-
{11, "r11"},
165-
{12, "r12"},
166-
{13, "r13"},
167-
{14, "r14"},
168-
{15, "r15"},
169-
{10, "sl\0"},
170-
{11, "fp\0"},
171-
{13, "sp\0"},
172-
{14, "lr\0"},
173-
{15, "pc\0"},
153+
{0, {'r', '0' }},
154+
{1, {'r', '1' }},
155+
{2, {'r', '2' }},
156+
{3, {'r', '3' }},
157+
{4, {'r', '4' }},
158+
{5, {'r', '5' }},
159+
{6, {'r', '6' }},
160+
{7, {'r', '7' }},
161+
{8, {'r', '8' }},
162+
{9, {'r', '9' }},
163+
{10, {'r', '1', '0' }},
164+
{11, {'r', '1', '1' }},
165+
{12, {'r', '1', '2' }},
166+
{13, {'r', '1', '3' }},
167+
{14, {'r', '1', '4' }},
168+
{15, {'r', '1', '5' }},
169+
{10, {'s', 'l' }},
170+
{11, {'f', 'p' }},
171+
{13, {'s', 'p' }},
172+
{14, {'l', 'r' }},
173+
{15, {'p', 'c' }},
174174
};
175175

176176
#define MAX_SPECIAL_REGISTER_NAME_LENGTH 7
@@ -368,42 +368,42 @@ typedef struct _cc_name_t { byte cc;
368368
byte name[2];
369369
} cc_name_t;
370370
static const cc_name_t cc_name_table[] = {
371-
{ ASM_THUMB_CC_EQ, "eq" },
372-
{ ASM_THUMB_CC_NE, "ne" },
373-
{ ASM_THUMB_CC_CS, "cs" },
374-
{ ASM_THUMB_CC_CC, "cc" },
375-
{ ASM_THUMB_CC_MI, "mi" },
376-
{ ASM_THUMB_CC_PL, "pl" },
377-
{ ASM_THUMB_CC_VS, "vs" },
378-
{ ASM_THUMB_CC_VC, "vc" },
379-
{ ASM_THUMB_CC_HI, "hi" },
380-
{ ASM_THUMB_CC_LS, "ls" },
381-
{ ASM_THUMB_CC_GE, "ge" },
382-
{ ASM_THUMB_CC_LT, "lt" },
383-
{ ASM_THUMB_CC_GT, "gt" },
384-
{ ASM_THUMB_CC_LE, "le" },
371+
{ ASM_THUMB_CC_EQ, { 'e', 'q' }},
372+
{ ASM_THUMB_CC_NE, { 'n', 'e' }},
373+
{ ASM_THUMB_CC_CS, { 'c', 's' }},
374+
{ ASM_THUMB_CC_CC, { 'c', 'c' }},
375+
{ ASM_THUMB_CC_MI, { 'm', 'i' }},
376+
{ ASM_THUMB_CC_PL, { 'p', 'l' }},
377+
{ ASM_THUMB_CC_VS, { 'v', 's' }},
378+
{ ASM_THUMB_CC_VC, { 'v', 'c' }},
379+
{ ASM_THUMB_CC_HI, { 'h', 'i' }},
380+
{ ASM_THUMB_CC_LS, { 'l', 's' }},
381+
{ ASM_THUMB_CC_GE, { 'g', 'e' }},
382+
{ ASM_THUMB_CC_LT, { 'l', 't' }},
383+
{ ASM_THUMB_CC_GT, { 'g', 't' }},
384+
{ ASM_THUMB_CC_LE, { 'l', 'e' }},
385385
};
386386

387387
typedef struct _format_4_op_t { byte op;
388388
char name[3];
389389
} format_4_op_t;
390390
#define X(x) (((x) >> 4) & 0xff) // only need 1 byte to distinguish these ops
391391
static const format_4_op_t format_4_op_table[] = {
392-
{ X(ASM_THUMB_FORMAT_4_EOR), "eor" },
393-
{ X(ASM_THUMB_FORMAT_4_LSL), "lsl" },
394-
{ X(ASM_THUMB_FORMAT_4_LSR), "lsr" },
395-
{ X(ASM_THUMB_FORMAT_4_ASR), "asr" },
396-
{ X(ASM_THUMB_FORMAT_4_ADC), "adc" },
397-
{ X(ASM_THUMB_FORMAT_4_SBC), "sbc" },
398-
{ X(ASM_THUMB_FORMAT_4_ROR), "ror" },
399-
{ X(ASM_THUMB_FORMAT_4_TST), "tst" },
400-
{ X(ASM_THUMB_FORMAT_4_NEG), "neg" },
401-
{ X(ASM_THUMB_FORMAT_4_CMP), "cmp" },
402-
{ X(ASM_THUMB_FORMAT_4_CMN), "cmn" },
403-
{ X(ASM_THUMB_FORMAT_4_ORR), "orr" },
404-
{ X(ASM_THUMB_FORMAT_4_MUL), "mul" },
405-
{ X(ASM_THUMB_FORMAT_4_BIC), "bic" },
406-
{ X(ASM_THUMB_FORMAT_4_MVN), "mvn" },
392+
{ X(ASM_THUMB_FORMAT_4_EOR), {'e', 'o', 'r' }},
393+
{ X(ASM_THUMB_FORMAT_4_LSL), {'l', 's', 'l' }},
394+
{ X(ASM_THUMB_FORMAT_4_LSR), {'l', 's', 'r' }},
395+
{ X(ASM_THUMB_FORMAT_4_ASR), {'a', 's', 'r' }},
396+
{ X(ASM_THUMB_FORMAT_4_ADC), {'a', 'd', 'c' }},
397+
{ X(ASM_THUMB_FORMAT_4_SBC), {'s', 'b', 'c' }},
398+
{ X(ASM_THUMB_FORMAT_4_ROR), {'r', 'o', 'r' }},
399+
{ X(ASM_THUMB_FORMAT_4_TST), {'t', 's', 't' }},
400+
{ X(ASM_THUMB_FORMAT_4_NEG), {'n', 'e', 'g' }},
401+
{ X(ASM_THUMB_FORMAT_4_CMP), {'c', 'm', 'p' }},
402+
{ X(ASM_THUMB_FORMAT_4_CMN), {'c', 'm', 'n' }},
403+
{ X(ASM_THUMB_FORMAT_4_ORR), {'o', 'r', 'r' }},
404+
{ X(ASM_THUMB_FORMAT_4_MUL), {'m', 'u', 'l' }},
405+
{ X(ASM_THUMB_FORMAT_4_BIC), {'b', 'i', 'c' }},
406+
{ X(ASM_THUMB_FORMAT_4_MVN), {'m', 'v', 'n' }},
407407
};
408408
#undef X
409409

@@ -428,10 +428,10 @@ typedef struct _format_vfp_op_t {
428428
char name[3];
429429
} format_vfp_op_t;
430430
static const format_vfp_op_t format_vfp_op_table[] = {
431-
{ 0x30, "add" },
432-
{ 0x34, "sub" },
433-
{ 0x20, "mul" },
434-
{ 0x80, "div" },
431+
{ 0x30, {'a', 'd', 'd' }},
432+
{ 0x34, {'s', 'u', 'b' }},
433+
{ 0x20, {'m', 'u', 'l' }},
434+
{ 0x80, {'d', 'i', 'v' }},
435435
};
436436

437437
// shorthand alias for whether we allow ARMv7-M instructions

0 commit comments

Comments
 (0)