#!/bin/sh
#
# We expect warning options for gcc as argumenst and return the ones which are accepted
# by the given gcc.
#
# $Id: gcc-warnings,v 1.4 2007/10/13 14:51:32 bernd67 Exp $

set -ue
#set -vx

OPTS=""
for param; do
    case "$param" in
    -[fW]?*) OPTS="$OPTS $param";;
    *)    echo "Ignoring $param" >&2
    esac
done

testcompile() {
    $CC $OPTS -E - 2>&1 <<- EOF
       int main(void) {
           return 0;
       }
EOF
}

parsetest() {
    while read error; do 
       case "$error" in
       *error:\ unrecognized\ *option*)
                                       opt="${error#*\`}"
                                       opt="${opt%\'*}"
                                       opt="${error#*\"}"
                                       opt="${opt%\"*}"
                                       OPTS=`echo $OPTS | sed -e s/$opt//g`
                                       ;;
       esac
    done
    echo $OPTS
}

testcompile | parsetest

exit 0
