diff options
author | Hans Wennborg <hans@hanshq.net> | 2018-05-23 08:24:01 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2018-05-23 08:24:01 +0000 |
commit | 156349fa109f4cda503a10fff3f3bc07d395cb04 (patch) | |
tree | 91154b0eae2dc9c20a88909a7ddc706adeeb4529 /clang/test/SemaCXX/aggregate-initialization.cpp | |
parent | 1c0a15c4449f862711cb0df0548d4c83a6ff8554 (diff) | |
download | bcm5719-llvm-156349fa109f4cda503a10fff3f3bc07d395cb04.tar.gz bcm5719-llvm-156349fa109f4cda503a10fff3f3bc07d395cb04.zip |
Revert r333044 "Use zeroinitializer for (trailing zero portion of) large array initializers"
It caused asserts, see PR37560.
> Use zeroinitializer for (trailing zero portion of) large array initializers
> more reliably.
>
> Clang has two different ways it emits array constants (from InitListExprs and
> from APValues), and both had some ability to emit zeroinitializer, but neither
> was able to catch all cases where we could use zeroinitializer reliably. In
> particular, emitting from an APValue would fail to notice if all the explicit
> array elements happened to be zero. In addition, for large arrays where only an
> initial portion has an explicit initializer, we would emit the complete
> initializer (which could be huge) rather than emitting only the non-zero
> portion. With this change, when the element would have a suffix of more than 8
> zero elements, we emit the array constant as a packed struct of its initial
> portion followed by a zeroinitializer constant for the trailing zero portion.
>
> In passing, I found a bug where SemaInit would sometimes walk the entire array
> when checking an initializer that only covers the first few elements; that's
> fixed here to unblock testing of the rest.
>
> Differential Revision: https://reviews.llvm.org/D47166
llvm-svn: 333067
Diffstat (limited to 'clang/test/SemaCXX/aggregate-initialization.cpp')
-rw-r--r-- | clang/test/SemaCXX/aggregate-initialization.cpp | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/clang/test/SemaCXX/aggregate-initialization.cpp b/clang/test/SemaCXX/aggregate-initialization.cpp index 0dfb61333ec..514473f9bcb 100644 --- a/clang/test/SemaCXX/aggregate-initialization.cpp +++ b/clang/test/SemaCXX/aggregate-initialization.cpp @@ -180,9 +180,3 @@ namespace IdiomaticStdArrayInitDoesNotWarn { #pragma clang diagnostic pop } - -namespace HugeArraysUseArrayFiller { - // All we're checking here is that initialization completes in a reasonable - // amount of time. - struct A { int n; int arr[1000 * 1000 * 1000]; } a = {1, {2}}; -} |