clang-wrapper.sh raw
1 #!/bin/bash
2 # Wrapper for clang-21 that patches known IR issues before compiling
3 for arg in "$@"; do
4 if [[ "$arg" == *"_mxc_stage4_"*".ll" ]]; then
5 # Patch the resolveArrayLenFromSrc call
6 if grep -q 'resolveArrayLenFromSrc({ptr, i32, i32} %t320, ptr null)' "$arg" 2>/dev/null; then
7 sed -i 's|%t319 = load ptr, ptr %t264|%t319.gep = getelementptr inbounds {{ptr, ptr}, {ptr, ptr}, {{{ptr, i32, i32}}, {{{ptr, ptr}, {ptr, ptr}, i16}}}}, ptr %t318, i32 0, i32 2, i32 0, i32 0\n %t319.pos = load {ptr, i32, i32}, ptr %t319.gep|' "$arg"
8 sed -i 's|call i64 @main.resolveArrayLenFromSrc({ptr, i32, i32} %t320, ptr null)|call i64 @main.resolveArrayLenFromSrc({ptr, i32, i32} %t319.pos, ptr %t320)|' "$arg"
9 fi
10 fi
11 done
12 exec clang-21 "$@"
13