ASTConsumer *CreateUnitValsChecker(Diagnostic &Diags);
ASTConsumer *CreateLLVMEmitter(Diagnostic &Diags, const LangOptions &Features);
ASTConsumer *CreateCodeRewriterTest(Diagnostic &Diags);
-ASTConsumer *CreateSerializationTest(Diagnostic &Diags, FileManager& FMgr);
+ASTConsumer *CreateSerializationTest(Diagnostic &Diags, FileManager& FMgr,
+ const LangOptions &LOpts);
} // end clang namespace
ASTContext* Context;
Diagnostic &Diags;
FileManager &FMgr;
+ const LangOptions& LangOpts;
std::list<Decl*> Decls;
enum { BasicMetadataBlock = 1,
DeclsBlock = 3 };
public:
- SerializationTest(Diagnostic &d, FileManager& fmgr)
- : Context(NULL), Diags(d), FMgr(fmgr) {};
+ SerializationTest(Diagnostic &d, FileManager& fmgr, const LangOptions& LOpts)
+ : Context(NULL), Diags(d), FMgr(fmgr), LangOpts(LOpts) {};
~SerializationTest();
} // end anonymous namespace
ASTConsumer*
-clang::CreateSerializationTest(Diagnostic &Diags, FileManager& FMgr) {
- return new SerializationTest(Diags,FMgr);
+clang::CreateSerializationTest(Diagnostic &Diags, FileManager& FMgr,
+ const LangOptions &LOpts) {
+ return new SerializationTest(Diags,FMgr,LOpts);
}
static void WritePreamble(llvm::BitstreamWriter& Stream) {
std::vector<std::string> triples;
triples.push_back(triple);
delete [] triple;
- Dezr.RegisterPtr(PtrID,CreateTargetInfo(triples,Diags));
+ Dezr.RegisterPtr(PtrID,CreateTargetInfo(triples,&Diags));
}
// For Selectors, we must read the identifier table first because the
/// CreateTargetInfo - Return the set of target info objects as specified by
/// the -arch command line option.
TargetInfo *clang::CreateTargetInfo(const std::vector<std::string>& triples,
- Diagnostic &Diags) {
+ Diagnostic *Diags) {
assert (!triples.empty() && "No target triple.");
if (!PrimaryTarget)
return NULL;
- TargetInfo *TI = new TargetInfo(PrimaryTarget, &Diags);
+ TargetInfo *TI = new TargetInfo(PrimaryTarget, Diags);
// Add all secondary targets.
for (unsigned i = 1, e = triples.size(); i != e; ++i) {
return CreateUnitValsChecker(Diag);
case TestSerialization:
- return CreateSerializationTest(Diag, FileMgr);
+ return CreateSerializationTest(Diag, FileMgr, LangOpts);
case EmitLLVM:
return CreateLLVMEmitter(Diag, LangOpts);
{ // Create triples, and create the TargetInfo.
std::vector<std::string> triples;
CreateTargetTriples(triples);
- Target = CreateTargetInfo(triples,Diags);
+ Target = CreateTargetInfo(triples,&Diags);
if (Target == 0) {
fprintf(stderr, "Sorry, I don't know what target this is: %s\n",
/// CreateTargetInfo - Return the set of target info objects as specified by
/// the -arch command line option.
TargetInfo *CreateTargetInfo(const std::vector<std::string>& triples,
- Diagnostic &Diags);
+ Diagnostic *Diags);
/// EmitLLVMFromASTs - Implement -emit-llvm, which generates llvm IR from C.
void EmitLLVMFromASTs(Preprocessor &PP, unsigned MainFileID,