summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/builtin-object-size-cxx14.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2019-05-17 08:01:34 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2019-05-17 08:01:34 +0000
commit51ce8444f0eccd7d61177664374e6f0bb2a557fa (patch)
tree64a3d2b08481bfffcd696183c477a1fa51e410e6 /clang/test/SemaCXX/builtin-object-size-cxx14.cpp
parent77483765eb77b3f15b03ef1d876d4356623aa460 (diff)
downloadbcm5719-llvm-51ce8444f0eccd7d61177664374e6f0bb2a557fa.tar.gz
bcm5719-llvm-51ce8444f0eccd7d61177664374e6f0bb2a557fa.zip
Fix crash if, during evaluation of __builtin_object_size, we try to load
through an invalid base. llvm-svn: 360998
Diffstat (limited to 'clang/test/SemaCXX/builtin-object-size-cxx14.cpp')
-rw-r--r--clang/test/SemaCXX/builtin-object-size-cxx14.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/builtin-object-size-cxx14.cpp b/clang/test/SemaCXX/builtin-object-size-cxx14.cpp
index 32d752d2736..bc52478e801 100644
--- a/clang/test/SemaCXX/builtin-object-size-cxx14.cpp
+++ b/clang/test/SemaCXX/builtin-object-size-cxx14.cpp
@@ -97,3 +97,10 @@ void tooSmallBuf() {
copy5CharsIntoStrict(small.buf); // expected-error{{no matching function for call}}
}
}
+
+namespace InvalidBase {
+ // Ensure this doesn't crash.
+ struct S { const char *name; };
+ S invalid_base();
+ constexpr long bos_name = __builtin_object_size(invalid_base().name, 1);
+}
OpenPOWER on IntegriCloud