Author: majnemer Date: Wed Mar 2 00:48:47 2016 New Revision: 262466 URL: http://llvm.org/viewvc/llvm-project?rev=262466&view=rev Log: [Sema] PR26444 fix crash when alignment value is >= 2**16
Sema allows max values up to 2**28, use unsigned instead of unsiged short to hold values that large. Differential Revision: http://reviews.llvm.org/D17248 Patch by Don Hinton! Modified: cfe/trunk/lib/CodeGen/CGValue.h cfe/trunk/test/Sema/attr-aligned.c Modified: cfe/trunk/lib/CodeGen/CGValue.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGValue.h?rev=262466&r1=262465&r2=262466&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGValue.h (original) +++ cfe/trunk/lib/CodeGen/CGValue.h Wed Mar 2 00:48:47 2016 @@ -445,7 +445,7 @@ class AggValueSlot { // Qualifiers Qualifiers Quals; - unsigned short Alignment; + unsigned Alignment; /// DestructedFlag - This is set to true if some external code is /// responsible for setting up a destructor for the slot. Otherwise Modified: cfe/trunk/test/Sema/attr-aligned.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/attr-aligned.c?rev=262466&r1=262465&r2=262466&view=diff ============================================================================== --- cfe/trunk/test/Sema/attr-aligned.c (original) +++ cfe/trunk/test/Sema/attr-aligned.c Wed Mar 2 00:48:47 2016 @@ -3,6 +3,9 @@ int x __attribute__((aligned(3))); // expected-error {{requested alignment is not a power of 2}} int y __attribute__((aligned(1 << 29))); // expected-error {{requested alignment must be 268435456 bytes or smaller}} +// PR26444 +int y __attribute__((aligned(1 << 28))); + // PR3254 short g0[3] __attribute__((aligned)); short g0_chk[__alignof__(g0) == 16 ? 1 : -1]; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits