diff options
author | Nicolas Pauss <nicolas.pauss@intersec.com> | 2022-09-25 02:02:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-25 09:02:43 +0900 |
commit | 78942df284a4a00c59a6edcc187684cdbc333fb9 (patch) | |
tree | 67594b221cf453a3dec45ee6d6b280af1f722799 /test | |
parent | a56d51ec1cd40172e94a6cb017049c0a7fed08e5 (diff) | |
download | ale-78942df284a4a00c59a6edcc187684cdbc333fb9.zip |
cc: use '-x c*-header' for header files for C and C++ linters. (#4318)
When linting an header file in C or C++, `-x c-header` or
`-x c++-header` should be used instead of `-x c` or `-x c++`.
Using `-x c` or `-x c++` for headers files can lead to unused variables
and functions marked as static inlined as seen in #4096.
Using `-x c-header` or `-x c++-header` solve these issues.
The list of file extensions that are considered as header files can be
configured with the variables `g:ale_c_cc_header_exts` and
`g:ale_cpp_cc_header_exts`.
Diffstat (limited to 'test')
-rw-r--r-- | test/linter/test_c_cc.vader | 16 | ||||
-rw-r--r-- | test/linter/test_cpp_cc.vader | 16 |
2 files changed, 32 insertions, 0 deletions
diff --git a/test/linter/test_c_cc.vader b/test/linter/test_c_cc.vader index c8c2de7d..953aa238 100644 --- a/test/linter/test_c_cc.vader +++ b/test/linter/test_c_cc.vader @@ -53,3 +53,19 @@ Execute(The -std flag should be replaced by parsed C flags): let g:get_cflags_return_value = '-std=c99' AssertLinter 'gcc', ale#Escape('gcc') . b:command_tail + +Execute(The header files should use -x c-header): + let b:command_tail = substitute(b:command_tail, '-x c', '-x c-header', '') + + call ale#test#SetFilename('../test-files/c/makefile_project/subdir/test.h') + + AssertLinter 'gcc', ale#Escape('gcc') . b:command_tail + +Execute(The header file extensions should be configurable): + let b:command_tail = substitute(b:command_tail, '-x c', '-x c-header', '') + + call ale#assert#SetUpLinterTest('c', 'cc') + let b:ale_c_cc_header_exts = ['json'] + call ale#test#SetFilename('../test-files/c/json_project/build/compile_commands.json') + + AssertLinter 'gcc', ale#Escape('gcc') . b:command_tail diff --git a/test/linter/test_cpp_cc.vader b/test/linter/test_cpp_cc.vader index dec3a07c..44fe4521 100644 --- a/test/linter/test_cpp_cc.vader +++ b/test/linter/test_cpp_cc.vader @@ -53,3 +53,19 @@ Execute(The -std flag should be replaced by parsed C flags): let g:get_cflags_return_value = '-std=c++11' AssertLinter 'gcc', ale#Escape('gcc') . b:command_tail + +Execute(The header files should use -x c++-header): + let b:command_tail = substitute(b:command_tail, '-x c++', '-x c++-header', '') + + call ale#test#SetFilename('../test-files/c/hpp_file_project/test.hpp') + + AssertLinter 'gcc', ale#Escape('gcc') . b:command_tail + +Execute(The header file extensions should be configurable): + let b:command_tail = substitute(b:command_tail, '-x c++', '-x c++-header', '') + + call ale#assert#SetUpLinterTest('cpp', 'cc') + let b:ale_cpp_cc_header_exts = ['json'] + call ale#test#SetFilename('../test-files/c/json_project/build/compile_commands.json') + + AssertLinter 'gcc', ale#Escape('gcc') . b:command_tail |