aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-02-24 21:52:14 +0000
committerChris Lattner <sabre@nondot.org>2009-02-24 21:52:14 +0000
commitc4a09c189981b4561428e4b56fd250718e2717bb (patch)
tree45c3800b8f732f8fbcf255a975be3eaf25569a78
parent067986e534121a0226b5580d026c7afaf5ee514d (diff)
improve comments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65388 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/AST/Expr.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/include/clang/AST/Expr.h b/include/clang/AST/Expr.h
index cfd13b2fbb..9e19940506 100644
--- a/include/clang/AST/Expr.h
+++ b/include/clang/AST/Expr.h
@@ -479,11 +479,18 @@ public:
/// or L"bar" (wide strings). The actual string is returned by getStrData()
/// is NOT null-terminated, and the length of the string is determined by
/// calling getByteLength(). The C type for a string is always a
-/// ConstantArrayType.
+/// ConstantArrayType. In C++, the char type is const qualified, in C it is
+/// not.
///
/// Note that strings in C can be formed by concatenation of multiple string
/// literal pptokens in translation phase #6. This keeps track of the locations
/// of each of these pieces.
+///
+/// Strings in C can also be truncated and extended by assigning into arrays,
+/// e.g. with constructs like:
+/// char X[2] = "foobar";
+/// In this case, getByteLength() will return 6, but the string literal will
+/// have type "char[2]".
class StringLiteral : public Expr {
const char *StrData;
unsigned ByteLength;