aboutsummaryrefslogtreecommitdiff
path: root/CodeGen/CodeGenTypes.cpp
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2007-12-11 00:54:19 +0000
committerDevang Patel <dpatel@apple.com>2007-12-11 00:54:19 +0000
commit15dbf79cf1c2f44397b86cf1e72b6d2e25ed5c83 (patch)
tree08acb74163b48406d209da2bb8fb1d1c91fb652b /CodeGen/CodeGenTypes.cpp
parent6e8df736939325bc2355eeb1e138ecf8b2605616 (diff)
Beautify comment.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44831 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'CodeGen/CodeGenTypes.cpp')
-rw-r--r--CodeGen/CodeGenTypes.cpp32
1 files changed, 20 insertions, 12 deletions
diff --git a/CodeGen/CodeGenTypes.cpp b/CodeGen/CodeGenTypes.cpp
index 02abf8ee51..21046e9c70 100644
--- a/CodeGen/CodeGenTypes.cpp
+++ b/CodeGen/CodeGenTypes.cpp
@@ -66,12 +66,16 @@ namespace {
}
/// fixCursorPosition - When bit-field is followed by a normal field
- /// then cursor position may require some adjustments. For example,
- /// struct { char a; short b:2; char c; };
- /// At the beginning of 'c' during layout, cursor position is 10.
- /// However, only one llvm struct field is allocated and it is i8.
- /// This happens because 'b' shares llvm field with 'a'.
- /// Similar adjustment may be required if bit-field is last field.
+ /// cursor position may require some adjustments.
+ ///
+ /// For example, struct { char a; short b:2; char c; };
+ ///
+ /// At the beginning of field 'c' layout, cursor position is 10.
+ /// However, only llvm struct field allocated so far is of type i8.
+ /// This happens because 'b' shares llvm field with 'a'. Add padding
+ /// field of i8 type and reposition cursor to point at 16. This
+ /// should be done only if next field (i.e. 'c' here) is not a bit-field
+ /// or last record field is a bit-field.
void fixCursorPosition(const ASTRecordLayout &RL);
private:
@@ -570,12 +574,16 @@ void RecordOrganizer::layoutUnionFields() {
}
/// fixCursorPosition - When bit-field is followed by a normal field
-/// then cursor position may require some adjustments. For example,
-/// struct { char a; short b:2; char c; };
-/// At the beginning of 'c' during layout, cursor position is 10.
-/// However, only one llvm struct field is allocated so far is i8.
-/// This happens because 'b' shares llvm field with 'a'.
-/// Similar adjustment may be required if last record field is a bit-field.
+/// cursor position may require some adjustments.
+///
+/// For example, struct { char a; short b:2; char c; };
+///
+/// At the beginning of field 'c' layout, cursor position is 10.
+/// However, only llvm struct field allocated so far is of type i8.
+/// This happens because 'b' shares llvm field with 'a'. Add padding
+/// field of i8 type and reposition cursor to point at 16. This
+/// should be done only if next field (i.e. 'c' here) is not a bit-field
+/// or last record field is a bit-field.
void RecordOrganizer::fixCursorPosition(const ASTRecordLayout &RL) {
uint64_t llvmSize = 0;
for(std::vector<const llvm::Type*>::iterator LI = LLVMFields.begin(),