summaryrefslogtreecommitdiffstats
path: root/clang/tools/scan-build-py/libscanbuild/runner.py
diff options
context:
space:
mode:
Diffstat (limited to 'clang/tools/scan-build-py/libscanbuild/runner.py')
-rw-r--r--clang/tools/scan-build-py/libscanbuild/runner.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/clang/tools/scan-build-py/libscanbuild/runner.py b/clang/tools/scan-build-py/libscanbuild/runner.py
index 248ca90ad3e..63b9f743699 100644
--- a/clang/tools/scan-build-py/libscanbuild/runner.py
+++ b/clang/tools/scan-build-py/libscanbuild/runner.py
@@ -41,6 +41,7 @@ def require(required):
@require(['command', 'directory', 'file', # an entry from compilation database
'clang', 'direct_args', # compiler name, and arguments from command
+ 'force_analyze_debug_code', # preprocessing options
'output_dir', 'output_format', 'output_failures'])
def run(opts):
""" Entry point to run (or not) static analyzer against a single entry
@@ -164,9 +165,13 @@ def set_analyzer_output(opts, continuation=run_analyzer):
opts.update({'output': ['-o', opts['output_dir']]})
return continuation(opts)
+def force_analyze_debug_code(cmd):
+ """ Enable assert()'s by undefining NDEBUG. """
+ cmd.append('-UNDEBUG')
-@require(['file', 'directory', 'clang', 'direct_args', 'language',
- 'output_dir', 'output_format', 'output_failures'])
+@require(['file', 'directory', 'clang', 'direct_args',
+ 'force_analyze_debug_code', 'language', 'output_dir',
+ 'output_format', 'output_failures'])
def create_commands(opts, continuation=set_analyzer_output):
""" Create command to run analyzer or failure report generation.
@@ -178,6 +183,8 @@ def create_commands(opts, continuation=set_analyzer_output):
if 'arch' in opts:
common.extend(['-arch', opts.pop('arch')])
common.extend(opts.pop('compile_options', []))
+ if opts['force_analyze_debug_code']:
+ force_analyze_debug_code(common)
common.extend(['-x', opts['language']])
common.append(os.path.relpath(opts['file'], opts['directory']))
OpenPOWER on IntegriCloud