#!/bin/bash # Clang Driver requires exit code -1 for failure and -2 for crash # Report exit code status if non-zero for Linux or kill signal check_exit_status () { local status="$?" local signal="" local orig_msg="${@}" if [ ${status} -ne 0 ]; then local src_lineno="${BASH_SOURCE[1]##*/}[${BASH_LINENO[0]}]" if [ $((${status} < 128)) -ne 0 ]; then echo "Error: $src_lineno: $orig_msg failed with status $status" exit -1 else signal="$(builtin kill -l $((${status} - 128)) 2>/dev/null)" if [ "$signal" ]; then echo "Error: $src_lineno: $orig_msg failed by kill signal $signal" fi exit -2 fi fi return 0; } exit_with_code () { local code="${@}" local src_lineno="${BASH_SOURCE[1]##*/}[${BASH_LINENO[0]}]" echo "Error: $src_lineno: failed with status $code" exit -1 }