#!/bin/sh # Copyright 2011-2018 Free Software Foundation, Inc. # # This is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see # . # You must set PYTHON_PLUGIN in the environment. # It should be the directory holding the "python.so" file. # Usage: gcc-with-excheck [-Xx|-Xc] [--] ARGS # -Xx means to invoke the exception checker. # -Xc means to invoke the cleanup checker. # -- means stop processing -X options. # ARGS are passed to gcc. GCC=${GCC:-gcc} exdir=`dirname $0` pargs= while true; do case "$1" in -Xc) pargs="$pargs -fplugin-arg-python-script=$exdir/cleanup_check.py" ;; -Xx) pargs="$pargs -fplugin-arg-python-script=$exdir/excheck.py" ;; -X*) echo "unrecognized argument $1" 1>&2 exit 1 ;; --) shift break ;; *) break ;; esac shift done # Recent versions of the Python plugin build two .so files in # different directories, so we have to set this. This will be fixed # upstream at some point. export LD_LIBRARY_PATH=$PYTHON_PLUGIN:$PYTHON_PLUGIN/gcc-c-api gcc -fplugin=$PYTHON_PLUGIN/python.so $pargs "$@"