diff options
| author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-04-26 21:05:39 +0000 |
|---|---|---|
| committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-04-26 21:05:39 +0000 |
| commit | ae40e4e10e196abb21fc8c33d060423571618fd5 (patch) | |
| tree | 67153190de1b0394e3d35d7eaf83f26a95410ed9 /clang/lib/AST/ASTContext.cpp | |
| parent | 029afe4787b49805963c52819321174b757e6df9 (diff) | |
| download | bcm5719-llvm-ae40e4e10e196abb21fc8c33d060423571618fd5.tar.gz bcm5719-llvm-ae40e4e10e196abb21fc8c33d060423571618fd5.zip | |
Gcc pads the size of an array using the alignment of its elements.
The size of the array may not be aligned according to alignment of its elements if an alignment attribute is
specified in a typedef. Fixes rdar://8665729 & http://llvm.org/PR5637.
llvm-svn: 130242
Diffstat (limited to 'clang/lib/AST/ASTContext.cpp')
| -rw-r--r-- | clang/lib/AST/ASTContext.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp index a31969dc907..e49bde3487e 100644 --- a/clang/lib/AST/ASTContext.cpp +++ b/clang/lib/AST/ASTContext.cpp @@ -724,6 +724,7 @@ ASTContext::getTypeInfo(const Type *T) const { std::pair<uint64_t, unsigned> EltInfo = getTypeInfo(CAT->getElementType()); Width = EltInfo.first*CAT->getSize().getZExtValue(); Align = EltInfo.second; + Width = llvm::RoundUpToAlignment(Width, Align); break; } case Type::ExtVector: |

