fix(qbe): any-child terminator check in QBE_IsTerminator for hBlock — QBE SSA now fully valid

- QBE_IsTerminator(hBlock) checks ALL children, not just last
- Removed legacy c_backend.bux and nim_backend.bux from _selfhost/src/
- QBE self-hosting QBE phase: PASSES (SSA valid, assembled to .s)
- Remaining: linker errors from missing String_Eq/StringBuilder in runtime
This commit is contained in:
2026-06-02 13:56:12 +03:00
parent 6cb5528a4d
commit eb8179b6d0
142 changed files with 70706 additions and 1407 deletions
Vendored Executable
+38
View File
@@ -0,0 +1,38 @@
#!/bin/sh
DIR=`cd $(dirname "$0"); pwd`
QBE=$DIR/../qbe
BUGF=/tmp/bug.id
FIND=$1
FIND=${FIND:-afl-find}
if ! test -f $BUGF
then
echo 1 > $BUGF
fi
while true
do
ID=`cat $BUGF`
if test `ls $FIND/crashes/id* | wc -l` -lt $ID
then
rm -f bug.ssa
echo "All done!"
exit 0
fi
BUG=`ls $FIND/crashes/id* | sed -ne "${ID}{p;q}"`
echo "*** Crash $ID"
cp $BUG bug.ssa
$QBE bug.ssa > /dev/null
RET=$?
if test \( $RET -ne 0 \) -a \( $RET -ne 1 \)
then
exit 1
fi
expr $ID + 1 > $BUGF
done