The feature as described by Matthew, not only displays the warnings, but a lot of distracting information on how the compiler was called as well.
See the addendum to my question Have the Arduino IDE set compiler warnings to error. It implements the changes to the Arduino script:
-export PATH="${APPDIR}/java/bin:${PATH}"
+export ORGPATH="${APPDIR}/java/bin:${PATH}"
+export PATH="${APPDIR}/extra:${ORGPATH}"
And make the extra/avr-g++:
#! /usr/bin/env python
import os
import sys
import subprocess
checklibpat = [
'SoftwareSerial',
'GSM_GPRS',
]
werr = '-Werror'
wall = '-Wall'
cmd = ['avr-g++'] + sys.argv[1:]
os.environ['PATH'] = os.environ['ORGPATH']
fname = sys.argv[-2][:]
extend = False
warn = False
if cmd[-2].startswith('/tmp'):
extend = True
warn = True
if not extend:
for l in checklibpat:
if l in cmd[-2]:
warn = True
break
if warn:
#print len(fname), list(fname)
for i, c in enumerate(cmd):
if c == '-w':
cmd[i] = wall
break
if extend:
cmd.insert(1, werr)
## to enable deprecated stuff (Print.cpp) with gcc 4.7.0
#cmd.insert(1, '-D__PROG_TYPES_COMPAT__=1')
subprocess.call(cmd)
Comment out extend = True if you do not want the compiler to interpret warnings in your source as errors.
-wto-Wallin 2 places. I didn't find solutions that don't involve hacking the IDE.