summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorGeorge Karpenkov <ekarpenkov@apple.com>2018-05-16 00:29:13 +0000
committerGeorge Karpenkov <ekarpenkov@apple.com>2018-05-16 00:29:13 +0000
commitfaa03f4acaf5a7a2654c440f590c0ba31242b482 (patch)
tree3e70f1c4b601e52f0b7e0d62130de46ec699cdec /clang/test
parent9a40ff502f7ee68ffec7bb2197cf35b90ca052d3 (diff)
downloadbcm5719-llvm-faa03f4acaf5a7a2654c440f590c0ba31242b482.tar.gz
bcm5719-llvm-faa03f4acaf5a7a2654c440f590c0ba31242b482.zip
[analyzer] Do not crash on callback for call_once passed by value
https://bugs.llvm.org/show_bug.cgi?id=37312 rdar://40270582 Differential Revision: https://reviews.llvm.org/D46913 llvm-svn: 332422
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/Analysis/call_once.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/test/Analysis/call_once.cpp b/clang/test/Analysis/call_once.cpp
index dd4b2d45516..344de809078 100644
--- a/clang/test/Analysis/call_once.cpp
+++ b/clang/test/Analysis/call_once.cpp
@@ -403,3 +403,12 @@ void callback_with_implicit_cast() {
std::once_flag flag;
call_once(flag, callback_taking_func, callback_with_implicit_cast);
}
+
+std::once_flag another_once_flag;
+typedef void (*my_callback_t)(int *);
+my_callback_t callback;
+int global_int;
+
+void rdar40270582() {
+ call_once(another_once_flag, callback, &global_int);
+}
OpenPOWER on IntegriCloud