clang의 API를 사용하여 소스 코드의 블록 활성을 덤프해야합니다. 블록 활자 인쇄를 시도했지만 아무런 성공도 얻지 못했습니다. 다음은 내가 시도한 코드입니다.덤프 블록 Clang을 사용하여 소스 코드의 활발함
나는 오버라이드 비지 티 함수를 가지고 있으며 함수의 활력을 인쇄하려고했습니다. LiveVariables 객체를 얻기 위해 create, computeLiveness 및 getAnalysis 메서드를 사용해 보았지만 모든 접근이 실패했습니다. 그러나 블록 번호를 제외한 모든 생명 정보는 표시되지 않습니다.
lang의 명령 줄 인수를 사용하여 활성을 인쇄하면 출력이 올바르게 표시됩니다.
Live Variable Analysis Wikipedia 에서 가져온 테스트 사례로 다음 소스 코드를 사용하고 있습니다.
int main(int argc, char *argv[])
{
int a,b,c,d,x;
a = 3;
b = 5;
d = 4;
x = 100;
if(a>b){
c = a+b;
d = 2;
}
c = 4;
return b * d + c;
}
누군가 내가 잘못 될 수 있음을 지적 할 수 있습니까? 미리 감사드립니다.
고맙습니다. @Quentin 그것이 효과가있었습니다. :) –
그러나 이것은 clang 3.1에서는 작동하지 않습니다. clang 3.8에서 작동합니다. –