2016-06-21 18 views
7

Tôi đang cố thiết lập tính năng ngăn nắp cho một dự án. Tôi muốn có thể có đầu ra sạch và khuyến khích sử dụng chế độ -fix nếu có thể. Tuy nhiên, có những trường hợp riêng lẻ cần một ngoại lệ.Cách nội tuyến để vô hiệu hóa các kiểm tra clang-gọn gàng

nhiều vì nó có thể sử dụng

#pragma clang diagnostic push 
#pragma clang diagnostic ignored "-Wreserved-id-macro" 
// Code that is being specially exempted 
#pragma clang diagnostic pop 

đối với trường hợp tương đương, nơi ai muốn ở địa phương vô hiệu hóa một cảnh báo trình biên dịch, là nó có thể làm điều gì đó tương tự từ kêu vang-gọn gàng?

Tôi đã thử

#pragma clang diagnostic push 
#pragma clang diagnostic ignored "readability-identifier-naming" 
// Code that is being specially exempted 
#pragma clang diagnostic pop 

và cũng với clang thay thế bằng clang-tidy. Thật không may khi sử dụng clang như mục tiêu pragma và biên soạn với kêu vang đều đặn, tôi nhận được cảnh báo biên soạn

warning: pragma diagnostic expected option name (e.g. "-Wundef") [-Wunknown-pragmas] 

warning: unknown pragma ignored [clang-diagnostic-unknown-pragmas] 

khi biên dịch nếu tôi sử dụng clang-tidy ở vị trí của clang. Không ảnh hưởng đến những gì clang-tidy đầu ra chính nó khi chạy trên nguồn.

Đây là với clangclang-tidy 3.8 trên x86_64 Linux.

+0

Tôi cũng biết về https://llvm.org/bugs/show_bug.cgi?id=27910, điều này có thể cho thấy điều đó là không thể, nhưng không có hoạt động nào khác ngoài hoạt động gốc bài báo cáo. –

Trả lời

8

Chỉ cần thêm nhận xét chứa chuỗi NOLINT ở bất kỳ đâu trên dòng bạn muốn clang-gọn gàng để bỏ qua. Ví dụ:

badcode; // NOLINT 
Các vấn đề liên quan