diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2019-05-17 08:01:34 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2019-05-17 08:01:34 +0000 |
| commit | 51ce8444f0eccd7d61177664374e6f0bb2a557fa (patch) | |
| tree | 64a3d2b08481bfffcd696183c477a1fa51e410e6 /clang/test/SemaCXX/builtin-object-size-cxx14.cpp | |
| parent | 77483765eb77b3f15b03ef1d876d4356623aa460 (diff) | |
| download | bcm5719-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.cpp | 7 |
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); +} |

