[libc] update tidy rules to fix variable formatting

This commit changes the clang-tidy rules for LLVM-libc to follow the new
format. The next commit applies these rules to the codebase.

The rules are as follows:

CamelCase for classes
lower_case for variables
lower_case for functions
UPPER_CASE for constexpr variables

There are also some exceptions, but the most important one is that any
function or variable that starts with an underscore is exempt from the
formatting.

Reviewed By: sivachandra, lntue

Differential Revision: https://reviews.llvm.org/D114301
This commit is contained in:
Michael Jones 2021-11-19 13:54:35 -08:00
parent b5c42ef3da
commit 43e2f7cd24
4 changed files with 32 additions and 1 deletions

View File

@ -55,6 +55,12 @@ if(LLVM_LIBC_ENABLE_LINTING)
if("clang-tools-extra" IN_LIST LLVM_ENABLE_PROJECTS
AND "clang" IN_LIST LLVM_ENABLE_PROJECTS)
add_custom_target(lint-libc)
if(NOT EXISTS "${LIBC_BUILD_DIR}/.clang-tidy")
# add a no-op clang tidy file for the build directory so that the tidy
# rules don't attempt to format the generated code.
file(WRITE ${LIBC_BUILD_DIR}/.clang-tidy "#InheritParentConfig: false
Checks: cppcoreguidelines-avoid-goto")
endif()
else()
message(FATAL_ERROR "
'clang' and 'clang-tools-extra' are required in LLVM_ENABLE_PROJECTS to

View File

@ -232,6 +232,7 @@ function(add_entrypoint_object target_name)
# these.
COMMAND $<TARGET_FILE:clang-tidy>
"--extra-arg=-fno-caret-diagnostics" --quiet
"--export-fixes=${CMAKE_CURRENT_BINARY_DIR}/${target_name}.yaml"
# Path to directory containing compile_commands.json
-p ${PROJECT_BINARY_DIR}
${ADD_ENTRYPOINT_OBJ_SRCS}

View File

@ -1,6 +1,24 @@
Checks: '-*,llvmlibc-*'
Checks: '-*,llvmlibc-*,readability-identifier-naming'
HeaderFilterRegex: '.*'
WarningsAsErrors: 'llvmlibc-*'
CheckOptions:
- key: llvmlibc-restrict-system-libc-headers.Includes
value: '-*, linux/*, asm/*.h, asm-generic/*.h'
- key: readability-identifier-naming.ClassCase
value: CamelCase
- key: readability-identifier-naming.StructCase
value: aNy_CasE
- key: readability-identifier-naming.MemberCase
value: lower_case
- key: readability-identifier-naming.VariableCase
value: lower_case
- key: readability-identifier-naming.VariableIgnoredRegexp
value: "^_[A-Za-z0-9_]+$"
- key: readability-identifier-naming.FunctionCase
value: lower_case
- key: readability-identifier-naming.FunctionIgnoredRegexp
value: "^_[A-Za-z0-9_]+$"
- key: readability-identifier-naming.ConstexprVariableCase
value: UPPER_CASE
- key: readability-identifier-naming.GetConfigPerFile
value: true

View File

@ -0,0 +1,6 @@
Checks: '-*,llvmlibc-*'
HeaderFilterRegex: '.*'
WarningsAsErrors: 'llvmlibc-*'
CheckOptions:
- key: llvmlibc-restrict-system-libc-headers.Includes
value: '-*, linux/*, asm/*.h, asm-generic/*.h'