2015-11-16 18 views
5

Tôi vừa cài đặt ClangOnWin và tôi đang cố gắng để kiểm tra "hiện đại hóa" clang-tidy hoạt động. Thật không may, clang-tidy dường như không biết về chúng: clang-tidy -list-checks foo.cpp -- | grep modernize không có đầu ra.Làm cách nào để kích hoạt kiểm tra "hiện đại hóa" của clang-tidy?

Kiểm tra "hiện đại hóa" được liệt kê here, nhưng trang đó có vẻ như tài liệu Clang 3.8 và phiên bản tôi đã cài đặt là 3.7. Tuy nhiên, phiên bản 3.7 là phiên bản hiện tại được liệt kê tại LLVM Download Page.

clang-tidy biết về một loạt các kiểm tra bảo mật, vì vậy tôi nghĩ rằng tôi đã cài đặt nó một cách chính xác. Ví dụ, clang-tidy -list-checks foo.cpp -- | grep security mang này:

clang-analyzer-security.FloatLoopCounter 
clang-analyzer-security.insecureAPI.UncheckedReturn 
clang-analyzer-security.insecureAPI.getpw 
clang-analyzer-security.insecureAPI.gets 
clang-analyzer-security.insecureAPI.mkstemp 
clang-analyzer-security.insecureAPI.mktemp 
clang-analyzer-security.insecureAPI.rand 
clang-analyzer-security.insecureAPI.strcpy 
clang-analyzer-security.insecureAPI.vfork 

Có điều gì đặc biệt tôi cần phải làm để cho phép kiểm tra như modernize-use-overridemodernize-use-nullptr?

Trả lời

1

Bạn đã thử với các tệp nhị phân chính thức từ LLVM: http://llvm.org/releases/download.html? Có lẽ các tập tin nhị phân ClangOnWin không được biên soạn với tất cả các tùy chọn, hoặc một cái gì đó thuộc loại đó.

+0

Với -checks = "*" hoạt động tốt! –

3

Kiểm tra hiện đại hóa đã được thêm sau 3.7 (được chuyển từ hiện đại hóa clang), nhưng hãy thử thêm -checks="*" để xem toàn bộ danh sách kiểm tra có sẵn.

clang-tidy -list-checks -checks="*" foo.cpp -- 
Các vấn đề liên quan