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