Replace a literal '8' with getCharWidth().

llvm-svn: 124536
This commit is contained in:
Ken Dyck
2011-01-29 17:53:12 +00:00
parent 2a55951d08
commit a45a70cf73

View File

@@ -1717,15 +1717,16 @@ CodeGenModule::GetAddrOfConstantString(const StringLiteral *Literal) {
/// GetStringForStringLiteral - Return the appropriate bytes for a
/// string literal, properly padded to match the literal type.
std::string CodeGenModule::GetStringForStringLiteral(const StringLiteral *E) {
const ASTContext &Context = getContext();
const ConstantArrayType *CAT =
getContext().getAsConstantArrayType(E->getType());
Context.getAsConstantArrayType(E->getType());
assert(CAT && "String isn't pointer or array!");
// Resize the string to the right size.
uint64_t RealLen = CAT->getSize().getZExtValue();
if (E->isWide())
RealLen *= getContext().Target.getWCharWidth()/8;
RealLen *= Context.Target.getWCharWidth() / Context.getCharWidth();
std::string Str = E->getString().str();
Str.resize(RealLen, '\0');