저는 LLVM C API를 사용하여 일부 C 코드를 작성하고 있습니다. 명령 값이 int
유형인지 포인터인지 확인해야합니다. 내가 시도한 것은 LLVMTypeOf(LLVMValueRef val)
을 사용하고 단지 int
: LLVMInt1Type()
, LLVMInt8Type()
, LLVMInt16Type()
등등의 다른 유형과 모두 일치하는지 확인하는 것입니다. 포인터 유형인지 여부는 알지 못했지만 내가 정수인지 아닌지 알기 위해 사용했던 방법을 생각해 보라. http://llvm.org/doxygen/modules.htmlLLVM C API. LLVMValueRef가 정수인지 포인터 유형인지 확인하는 방법은 무엇입니까?
2
A
답변
1
는 C API는 매우 제한 : 다음
내가 참조 된 API입니다.C++ API를 사용해야하거나 C++ API를 직접 C API에 랩핑해야한다고 생각합니다. 예를 들어
,
extern "C" int LLVMTypeIsPointerTy(LLVMTypeRef ty){
return ((llvm::Type*)ty)->isPointerTy();
}
3
C에서 당신은 종류를 확인하기 LLVMGetTypeKind 및 LLVMTypeOf를 사용할 수 있습니다.
정수 유형에 대해, 당신이 확인할 수 있습니다
if(LLVMGetTypeKind(LLVMTypeOf(LLVMValueRef val))==LLVMPointerTypeKind)
열거 형 참조 : 포인터 유형에 대해
if(LLVMGetTypeKind(LLVMTypeOf(LLVMValueRef val))==LLVMIntegerTypeKind)
, 당신은 확인 할 수 LLVMTypeKind
관련 문제
- 1. 오브젝트가 Java의 콜렉션 유형인지 확인하는 방법은 무엇입니까?
- 2. 파일이 C++에서 이미지 유형인지 확인하는 방법은 무엇입니까?
- 3. 변수가 정수인지 확인하는 방법이 있습니까? C++
- 4. LLVM C++ API 란 정확히 무엇입니까
- 5. 경로의 파일이 VB 스크립트의 특정 유형인지 확인하는 방법은 무엇입니까?
- 6. plpgsql로 값이 정수인지 확인하는 방법?
- 7. 변수가 튜플, 문자열 또는 정수인지 확인하는 방법은 무엇입니까?
- 8. 부동 소수점 변수가 정수인지 확인하는 가장 신뢰할 수있는 방법은 무엇입니까?
- 9. 숫자를 8로 나눈 값이 정수인지 확인하는 방법은 무엇입니까?
- 10. php 버전 5.2.9에서 파일이 이미지인지 비디오 유형인지 확인하는 방법은 무엇입니까?
- 11. IOException이 Not-Enough-Disk-Space-Exception 유형인지 확인하는 방법은 무엇입니까?
- 12. 유형이 CLI 메타 데이터의 값 유형인지 확인하는 방법은 무엇입니까?
- 13. NSDecimalNumber가 정수인지 확인하십시오
- 14. 숫자가 64 비트 정수인지 확인하는 방법
- 15. SML에서 숫자가 정수인지 확인하는 inbuilt 함수가 있습니까
- 16. 문자열이 Double 또는 Long 유형인지 확인하는 방법
- 17. 값이 정수인지 확인하십시오 (Objective-C)
- 18. LLVM 자동 C++ 연결
- 19. 타사 API (C#)를 사용하여 이벤트가 완료되었는지 확인하는 방법은 무엇입니까?
- 20. 두 객체가 같은 유형인지 확인하는 가장 빠른 방법
- 21. Type이 RunTimeType인지 확인하는 방법은 무엇입니까?
- 22. LLVM
- 23. 개체가 정수인지 확인
- 24. LLVM C++ API를 통해 Objective-C 블록을 호출하는 방법은 무엇입니까?
- 25. C#에서 변수가 값 유형인지 어떻게 테스트해야합니까?
- 26. 파일이 C 언어의 특정 유형인지 확인하십시오.
- 27. 현재 운영 체제가 C#의 Windows Vista인지 확인하는 방법은 무엇입니까?
- 28. LLVM 명령어를 삽입하는 방법은 무엇입니까?
- 29. 여권을 확인하는 방법은 무엇입니까?
- 30. C++에서 포인터 목록을 섞는 방법은 무엇입니까?