]> granicus.if.org Git - clang/commitdiff
[analyzer][scan-build] Non-existing directory for scan-build output.
authorAnton Yartsev <anton.yartsev@gmail.com>
Sun, 21 Feb 2016 17:04:26 +0000 (17:04 +0000)
committerAnton Yartsev <anton.yartsev@gmail.com>
Sun, 21 Feb 2016 17:04:26 +0000 (17:04 +0000)
Makes scan-build successfully accept non-existing output directories provided via "-o" option. The directory is created in this case. This behavior is conforming to the old perl scan-build implementation.
(http://reviews.llvm.org/D17091)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@261480 91177308-0d34-0410-b5e6-96231b3b80d8

tools/scan-build-py/libscanbuild/report.py

index efc0a55de619e1b558ffb316d6ae1cb0cc9d2a9d..5c33319e206df6e3bbe42a3f32be8e33b2886418 100644 (file)
@@ -35,7 +35,12 @@ def report_directory(hint, keep):
     keep -- a boolean value to keep or delete the empty report directory. """
 
     stamp = time.strftime('scan-build-%Y-%m-%d-%H%M%S-', time.localtime())
-    name = tempfile.mkdtemp(prefix=stamp, dir=hint)
+
+    parentdir = os.path.abspath(hint)
+    if not os.path.exists(parentdir):
+        os.makedirs(parentdir)
+
+    name = tempfile.mkdtemp(prefix=stamp, dir=parentdir)
 
     logging.info('Report directory created: %s', name)