]> granicus.if.org Git - clang/commitdiff
improve comments.
authorChris Lattner <sabre@nondot.org>
Tue, 24 Feb 2009 21:52:14 +0000 (21:52 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 24 Feb 2009 21:52:14 +0000 (21:52 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65388 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/Expr.h

index cfd13b2fbbf92f1ade5da876ffdbc9c3f1ab18ec..9e19940506e49e217c6dc82a6caf72b9f8d95c3c 100644 (file)
@@ -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;