summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra
diff options
context:
space:
mode:
authorDavid Stenberg <david.stenberg@ericsson.com>2018-05-31 09:05:22 +0000
committerDavid Stenberg <david.stenberg@ericsson.com>2018-05-31 09:05:22 +0000
commit3891885ca06a6e390fc281f59130f07d36214400 (patch)
tree3749d5e5100bbf8aaff575289e4bde460f998c8a /clang-tools-extra
parenta375349c53d914ab24de2af5a95d6e0455007ff2 (diff)
downloadbcm5719-llvm-3891885ca06a6e390fc281f59130f07d36214400.tar.gz
bcm5719-llvm-3891885ca06a6e390fc281f59130f07d36214400.zip
[Driver] Clean up tmp files when deleting Compilation objects
Summary: In rL327851 the createUniqueFile() and createTemporaryFile() variants that do not return the file descriptors were changed to create empty files, rather than only check if the paths are free. This change was done in order to make the functions race-free. That change led to clang-tidy (and possibly other tools) leaving behind temporary assembly files, of the form placeholder-*, when using a target that does not support the internal assembler. The temporary files are created when building the Compilation object in stripPositionalArgs(), as a part of creating the compilation database for the arguments after the double-dash. The files are created by Driver::GetNamedOutputPath(). Fix this issue by cleaning out temporary files at the deletion of Compilation objects. This fixes https://bugs.llvm.org/show_bug.cgi?id=37091. Reviewers: klimek, sepavloff, arphaman, aaron.ballman, john.brawn, mehdi_amini, sammccall, bkramer, alexfh, JDevlieghere Reviewed By: aaron.ballman, JDevlieghere Subscribers: erichkeane, lebedev.ri, Ka-Ka, cfe-commits Differential Revision: https://reviews.llvm.org/D45686 llvm-svn: 333637
Diffstat (limited to 'clang-tools-extra')
-rw-r--r--clang-tools-extra/test/clang-tidy/pr37091.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/clang-tools-extra/test/clang-tidy/pr37091.cpp b/clang-tools-extra/test/clang-tidy/pr37091.cpp
new file mode 100644
index 00000000000..e56115a5fe8
--- /dev/null
+++ b/clang-tools-extra/test/clang-tidy/pr37091.cpp
@@ -0,0 +1,10 @@
+// REQUIRES: shell
+// RUN: rm -rf %t
+// RUN: mkdir -p %t
+
+// This is a reproducer for PR37091.
+//
+// Verify that no temporary files are left behind by the clang-tidy invocation.
+
+// RUN: env TMPDIR=%t TEMP=%t TMP=%t clang-tidy %s -- --target=mips64
+// RUN: rmdir %t
OpenPOWER on IntegriCloud