[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [RFC PATCH 1/5] [WIP]misra: add entries to the excluded list
> On 31 Jul 2023, at 16:20, Jan Beulich <jbeulich@xxxxxxxx> wrote: > > On 31.07.2023 17:11, Luca Fancellu wrote: >>>> + { >>>> + "rel_path": "arch/x86/include/asm/bug.h", >>>> + "comment": "Includes mostly assembly macro" >>>> + }, >>> >>> Mind me asking why assembly macros wouldn't want maintaining in proper >>> style? >> >> From what I know (experts on CF correct me if I am wrong) clang-format is >> meant to format only some languages >> (C/C++/...) and assembly is not one of them, so what is happening is that >> most of the time clang-format breaks >> it, in fact we are formatting only .c and .h, but since we have some headers >> with assembly macros, I’ve seen some issues >> that ranges from really ugly formatting to build break. >> >> One thing we could do, is to export the headers that contain only assembly >> stuffs in dedicate headers (<header>_asm.h ?) >> so that we could easily use a name regex to exclude "*_asm.h” from >> clang-format? And also these headers could #error if >> included when __ASSEMBLY__ is not defined? > > In principle this may be a route to go (naming aside), but first of all > I wonder what "assembler macros" are to you: We use both C macros and > true assembler macros in assembly code. The former I would hope formatting > tools don't have an issue with. Yes, C macros are clearly not an issue, true assembler macros are, like the example below: .macro BUG_FRAME type, line, file_str, second_frame, msg .if \type >= BUGFRAME_NR .error "Invalid BUGFRAME index" .endif .L\@ud: ud2a .pushsection .rodata.str1, "aMS", @progbits, 1 .L\@s1: .asciz "\file_str" .popsection .pushsection .bug_frames.\type, "a", @progbits .p2align 2 .L\@bf: .long (.L\@ud - .L\@bf) + \ ((\line >> BUG_LINE_LO_WIDTH) << BUG_DISP_WIDTH) .long (.L\@s1 - .L\@bf) + \ ((\line & ((1 << BUG_LINE_LO_WIDTH) - 1)) << BUG_DISP_WIDTH) .if \second_frame .pushsection .rodata.str1, "aMS", @progbits, 1 .L\@s2: .asciz "\msg" .popsection .long 0, (.L\@s2 - .L\@bf) .endif .popsection .endm I don’t think CF has knowledge of the token .macro/.endm/.if/[...] and so it formats them in weird ways > > Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |