[cfe-dev] wchar printer
Bill Wendling
isanbard at gmail.com
Thu Jun 5 00:50:55 PDT 2008
On Jun 4, 2008, at 6:40 PM, Mike Stump wrote:
> This removes one FIXME by arranging for wide characters to be
> printed correctly.
>
+ CharacterLiteral(unsigned value, bool iswide, QualType type,
SourceLocation l)
+ : Expr(CharacterLiteralClass, type), Value(value),
IsWide(iswide), Loc(l) {
You need to have "IsWide" the last in the initialization list.
Otherwise, the compiler will complain with -Wall.
void CharacterLiteral::EmitImpl(Serializer& S) const {
S.Emit(Value);
+ S.EmitBool(IsWide);
S.Emit(Loc);
S.Emit(getType());
}
Why not emit in the same order that the variables are defined in the
class?
class CharacterLiteral : public Expr {
unsigned Value;
SourceLocation Loc;
+ bool IsWide;
public:
Same below:
CharacterLiteral* CharacterLiteral::CreateImpl(Deserializer& D,
ASTContext& C) {
unsigned value = D.ReadInt();
+ bool iswide = D.ReadBool();
SourceLocation Loc = SourceLocation::ReadVal(D);
QualType T = QualType::ReadVal(D);
- return new CharacterLiteral(value,T,Loc);
+ return new CharacterLiteral(value,iswide,T,Loc);
}
-bw
More information about the cfe-dev
mailing list