about summary refs log tree commit diff
path: root/scripts/wrap-compiler-for-flag-check
blob: b014f11e7000f6fefede3b2d2359a11b7c1634d8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/sh

# This file is in the public domain.
# https://github.com/kmcallister/autoharden/blob/c5c7842f39c2f8d19836bb5427d6479db4436d62/LICENSE
#
# From kmcallister: 
# https://github.com/kmcallister/autoharden/blob/efaf5a16612589808c276a11536ea9a47071f74b/scripts/wrap-compiler-for-flag-check

# Prior to clang v5.1, there was no way to make
# clang's "argument unused" warning fatal.  This
# wrapper script that greps for this warning message. Newer clang's have no issues.
#
# Ideally the search string would also include 'clang: ' but this output might
# depend on clang's argv[0].
#
set -o errexit
set -o nounset

if out=`"$@" 2>&1`; then
  echo "$out"
  if echo "$out" | grep 'warning: argument unused' >/dev/null; then
    echo "$0: found clang warning"
    exit 1
  else
    exit 0
  fi
else
  code=$?
  echo "$out"
  exit $code
fi