Có một plugin clang, trong số elfs-clang-plugins (do chính tôi viết, nguồn mở) giúp ích.
Mặc dù không dành cho GCC, nhưng vẫn có thể hữu ích, ví dụ: nếu bạn có thể thêm nó vào quá trình CI gatekeeping của bạn (nếu bạn có một) hoặc chỉ cần chạy nó một cách thủ công một lần trong một thời gian.
Plugin warn_unused_result sẽ phát ra cảnh báo cho các hàm thiếu thuộc tính warn_unused_result. Plugin chỉ xem xét các hàm được khai báo hoặc được định nghĩa trong đơn vị biên dịch hiện tại, do đó các thư viện bên ngoài không thêm tiếng ồn.
Plugin chấp nhận tùy chọn arg, --static-only khiến nó chỉ cảnh báo về các hàm tĩnh (vì khi thay đổi API bên ngoài quá nhiều công việc).
Ví dụ:
int foo(void);
biên dịch ra:
/tmp/test.c:1:5: warning: missing attribute warn_unused_result
int foo(void);
Từ việc xem xét các tài liệu tôi sẽ nói câu trả lời là không. –
thay thế: bạn có thể chạy các chương trình của bạn thông qua nẹp, thử nghiệm cho các giá trị trả lại bị bỏ qua: http://www.splint.org – justin
Trình biên dịch nào hỗ trợ nó? – sinelaw