Open sbkim28 opened 6 months ago
안녕하세요, 백엔드에서 miscompilation이 일어나는 것 같아서 이를 제보하고자 합니다.
다음은 제가 임의로 작성한 LLVM IR 코드입니다.
define dso_local i32 @main() #0 { entry: %ptr = call noalias ptr @malloc(i64 noundef 16) %ptr0 = getelementptr inbounds i64, ptr %ptr, i32 1 %ptr1 = getelementptr inbounds i64, ptr %ptr0, i32 -1 store i64 1, ptr %ptr1, align 8 %0 = load i64, ptr %ptr, align 8 call void @write(i64 noundef %0) ret i32 0 }
해당 코드를 컴파일 후 실행하면 다음과 같은 오류를 얻습니다. Error occurs while trying to access adress 34359943168 : line 12
Error occurs while trying to access adress 34359943168 : line 12
backend의 gep_eliminate.cpp에서 index를 unsigned로 처리해서 문제가 생기는 것 같은데, 관련해서 해당 문제를 확인해주셨으면 합니다.
gep_eliminate.cpp
감사합니다.
GEP의 인덱스가 음수일 때를 상정하지 않아서 발생한 오류입니다. 백엔드 버그가 맞으며, 수정 예정입니다.
안녕하세요, 백엔드에서 miscompilation이 일어나는 것 같아서 이를 제보하고자 합니다.
다음은 제가 임의로 작성한 LLVM IR 코드입니다.
해당 코드를 컴파일 후 실행하면 다음과 같은 오류를 얻습니다.
Error occurs while trying to access adress 34359943168 : line 12
backend의
gep_eliminate.cpp
에서 index를 unsigned로 처리해서 문제가 생기는 것 같은데, 관련해서 해당 문제를 확인해주셨으면 합니다.감사합니다.