| //===--- LangOptions.cpp - Language feature info --------------------------===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This file implements the methods for LangOptions. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "clang/Basic/LangOptions.h" |
| #include "llvm/Bitcode/Serialize.h" |
| #include "llvm/Bitcode/Deserialize.h" |
| |
| using namespace clang; |
| |
| void LangOptions::Emit(llvm::Serializer& S) const { |
| S.EmitBool((bool) Trigraphs); |
| S.EmitBool((bool) BCPLComment); |
| S.EmitBool((bool) DollarIdents); |
| S.EmitBool((bool) Digraphs); |
| S.EmitBool((bool) HexFloats); |
| S.EmitBool((bool) C99); |
| S.EmitBool((bool) Microsoft); |
| S.EmitBool((bool) CPlusPlus); |
| S.EmitBool((bool) CPlusPlus0x); |
| S.EmitBool((bool) NoExtensions); |
| S.EmitBool((bool) CXXOperatorNames); |
| S.EmitBool((bool) ObjC1); |
| S.EmitBool((bool) ObjC2); |
| S.EmitBool((unsigned) GC); |
| S.EmitBool((bool) PascalStrings); |
| S.EmitBool((bool) Boolean); |
| S.EmitBool((bool) WritableStrings); |
| S.EmitBool((bool) LaxVectorConversions); |
| } |
| |
| void LangOptions::Read(llvm::Deserializer& D) { |
| Trigraphs = D.ReadBool() ? 1 : 0; |
| BCPLComment = D.ReadBool() ? 1 : 0; |
| DollarIdents = D.ReadBool() ? 1 : 0; |
| Digraphs = D.ReadBool() ? 1 : 0; |
| HexFloats = D.ReadBool() ? 1 : 0; |
| C99 = D.ReadBool() ? 1 : 0; |
| Microsoft = D.ReadBool() ? 1 : 0; |
| CPlusPlus = D.ReadBool() ? 1 : 0; |
| CPlusPlus0x = D.ReadBool() ? 1 : 0; |
| NoExtensions = D.ReadBool() ? 1 : 0; |
| CXXOperatorNames = D.ReadBool() ? 1 : 0; |
| ObjC1 = D.ReadBool() ? 1 : 0; |
| ObjC2 = D.ReadBool() ? 1 : 0; |
| GC = D.ReadInt(); |
| PascalStrings = D.ReadBool() ? 1 : 0; |
| Boolean = D.ReadBool() ? 1 : 0; |
| WritableStrings = D.ReadBool() ? 1 : 0; |
| LaxVectorConversions = D.ReadBool() ? 1 : 0; |
| } |