2016-06-08 9 views
0

의 특정 유형에 대해서만 Clang의 -fno-caret 진단을 선언합니다. TODO주의 사항을 기억하기 위해 Clang의 #pragma message에 의존합니다. 예를 들어,#pragma

int 
main(void) 
{ 
#pragma message "TODO: do something" 
} 

clang -o todo todo.c이 출력을 제공한다 :

todo.c:4:9: warning: TODO: do something [-W#pragma-messages] 
#pragma message "TODO: do something" 
     ^
1 warning generated. 

이, 그러나, 중복입니다. 컴파일러의 출력에 #pragma 행이 생기는 것을 피하기 위해 Clang과 함께 -fno-caret-diagnostics 플래그를 사용할 수 있다는 것을 알고 있지만,이를 피하기 위해 다른 경고 및 오류에 대한 캐럿 진단을 비활성화합니다.

#pragma의 경우에만 -fno-caret-diagnostics을 선언하는 방법이 있습니까?

+1

'/ TODO'을 쓰고 프로젝트를 통해 텍스트 검색을 할 수있는 이유가 있습니까? 너무 쉽다? – Lundin

+1

@ Lundin의 코멘트에 확장 : 기본적으로 XY 문제. kwrite와 같은 일부 편집자는 주석 ('/ TODO','// NOTE' 등)을 강조 표시합니다. 또한 doxygen (어쨌든 더 큰 프로젝트에서 사용되어야 함)은'todo' 태그가 붙은 단락을 수집하여 별도의 장으로 제공합니다. – Olaf

+0

당신 말이 맞아요. 왜냐하면'#pragma message'에 의존하는 것이 점진적인 컴파일로는 어쩔 수없는 것처럼 보이기 때문에, 호환성 이유 때문에, 그리고 내가 생각하기에''TODO''가 더 나은 방법입니다. – Pablo

답변

0

제가 올바르게 이해하면 대답은 this question의 일부입니다. -Wno#pragma-messages은 원하는 것을 처리합니까?

+0

아니요,'-Wno- #pragma-messages'는이'#pragma'의 모든 출력을 숨기고 목표는 코드에 소스를 표시하지 않고이 메시지를 출력하는 것입니다. 그러나 위의 @Lundin 및 @ Olaf의 의견은 내가 무엇을 요구했는지는 TODO를 추적하는 최선의 방법이 아니라는 것을 보여주었습니다. – Pablo