diff options
Diffstat (limited to 'clang/tools/scan-build-py/libscanbuild/runner.py')
-rw-r--r-- | clang/tools/scan-build-py/libscanbuild/runner.py | 11 |
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'])) |