build(clint): don't allow INIT() in non-header files (#27407)

This commit is contained in:
zeertzjq 2024-02-10 11:11:30 +08:00 committed by GitHub
parent 8e739af064
commit dcb11c1091
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 2 deletions

View File

@ -152,8 +152,10 @@ _ERROR_CATEGORIES = [
'build/endif_comment',
'build/header_guard',
'build/include_defs',
'build/defs_header',
'build/printf_format',
'build/storage_class',
'build/init_macro',
'readability/bool',
'readability/multiline_comment',
'readability/multiline_string',
@ -2086,6 +2088,11 @@ def CheckLanguage(filename, clean_lines, linenum, error):
" named ('k' followed by CamelCase) compile-time constant for"
" the size.")
# INIT() macro should only be used in header files.
if not filename.endswith('.h') and Search(r' INIT\(', line):
error(filename, linenum, 'build/init_macro', 4,
'INIT() macro should only be used in header files.')
# Detect TRUE and FALSE.
match = Search(r'\b(TRUE|FALSE)\b', line)
if match:

View File

@ -55,8 +55,8 @@
# include "sign.c.generated.h"
#endif
static PMap(cstr_t) sign_map INIT( = MAP_INIT);
static kvec_t(Integer) sign_ns INIT( = MAP_INIT);
static PMap(cstr_t) sign_map = MAP_INIT;
static kvec_t(Integer) sign_ns = KV_INITIAL_VALUE;
static char *cmds[] = {
"define",