mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 03:46:07 +00:00

- Fix diagnoses when the argument to `alignas` or `_Alignas` is an incomplete type. Before: ``` ./alignas.cpp:1:15: error: invalid application of 'alignof' to an incomplete type 'void' class alignas(void) Foo {}; ~^~~~~ 1 error generated. ``` Now: ``` ./alignas.cpp:1:15: error: invalid application of 'alignas' to an incomplete type 'void' class alignas(void) Foo {}; ~^~~~~ 1 error generated. ``` - Improve the AST fidelity of `alignas` and `_Alignas` attribute. Before: ``` AlignedAttr 0x13f07f278 <col:7> alignas `-ConstantExpr 0x13f07f258 <col:15, col:21> 'unsigned long' |-value: Int 8 `-UnaryExprOrTypeTraitExpr 0x13f07f118 <col:15, col:21> 'unsigned long' alignof 'void *' ``` Now: ``` AlignedAttr 0x14288c608 <col:7> alignas 'void *' ``` Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D150528
10 lines
598 B
C++
10 lines
598 B
C++
// RUN: %clang_cc1 -triple powerpc64-unknown-aix -target-feature +altivec -target-cpu pwr7 -verify -fsyntax-only %s
|
|
// RUN: %clang_cc1 -triple powerpc-unknown-aix -target-feature +altivec -target-cpu pwr7 -verify -fsyntax-only %s
|
|
|
|
struct alignas(8) Align8 {
|
|
void *a, *b;
|
|
};
|
|
|
|
alignas(8) vector int V1; // expected-warning {{requested alignment is less than minimum alignment of 16 for type '__vector int' (vector of 4 'int' values)}}
|
|
alignas(Align8) vector int V2; // expected-warning {{requested alignment is less than minimum alignment of 16 for type '__vector int' (vector of 4 'int' values)}}
|