diff --git a/libc/CMakeLists.txt b/libc/CMakeLists.txt --- a/libc/CMakeLists.txt +++ b/libc/CMakeLists.txt @@ -55,6 +55,12 @@ 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 diff --git a/libc/cmake/modules/LLVMLibCObjectRules.cmake b/libc/cmake/modules/LLVMLibCObjectRules.cmake --- a/libc/cmake/modules/LLVMLibCObjectRules.cmake +++ b/libc/cmake/modules/LLVMLibCObjectRules.cmake @@ -232,6 +232,7 @@ # these. COMMAND $ "--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} diff --git a/libc/src/.clang-tidy b/libc/src/.clang-tidy --- a/libc/src/.clang-tidy +++ b/libc/src/.clang-tidy @@ -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 diff --git a/libc/src/.clang-tidy b/libc/src/__support/CPP/.clang-tidy copy from libc/src/.clang-tidy copy to libc/src/__support/CPP/.clang-tidy