]> granicus.if.org Git - clang/commitdiff
Frontend: Change FrontendAction::BeginSourceFile to take the input kind instead of...
authorDaniel Dunbar <daniel@zuster.org>
Mon, 7 Jun 2010 23:23:06 +0000 (23:23 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Mon, 7 Jun 2010 23:23:06 +0000 (23:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105578 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Frontend/FrontendAction.h
lib/Frontend/ASTUnit.cpp
lib/Frontend/CompilerInstance.cpp
lib/Frontend/FrontendAction.cpp

index 8e6b86aa741b0c9bf7163fff2ae9585dcf7cde62..1171f1f95a960c0f4c7ffd8aa8fa5eeb17ded96d 100644 (file)
@@ -166,17 +166,18 @@ public:
   /// \param Filename - The input filename, which will be made available to
   /// clients via \see getCurrentFile().
   ///
-  /// \param IsAST - Indicates whether this is an AST input. AST inputs require
-  /// special handling, since the AST file itself contains several objects which
-  /// would normally be owned by the CompilerInstance. When processing AST input
-  /// files, these objects should generally not be initialized in the
-  /// CompilerInstance -- they will automatically be shared with the AST file in
-  /// between \see BeginSourceFile() and \see EndSourceFile().
+  /// \param InputKind - The type of input. Some input kinds are handled
+  /// specially, for example AST inputs, since the AST file itself contains
+  /// several objects which would normally be owned by the
+  /// CompilerInstance. When processing AST input files, these objects should
+  /// generally not be initialized in the CompilerInstance -- they will
+  /// automatically be shared with the AST file in between \see
+  /// BeginSourceFile() and \see EndSourceFile().
   ///
   /// \return True on success; the compilation of this file should be aborted
   /// and neither Execute nor EndSourceFile should be called.
   bool BeginSourceFile(CompilerInstance &CI, llvm::StringRef Filename,
-                       bool IsAST = false);
+                       InputKind Kind);
 
   /// Execute - Set the source managers main input file, and run the action.
   void Execute();
index 48a698368db4fa1d516c2bf12a37821229837505..2b4eecd2b22438c41f346e72ddb89030884522fe 100644 (file)
@@ -359,7 +359,7 @@ ASTUnit *ASTUnit::LoadFromCompilerInvocation(CompilerInvocation *CI,
 
   Act.reset(new TopLevelDeclTrackerAction(*AST));
   if (!Act->BeginSourceFile(Clang, Clang.getFrontendOpts().Inputs[0].second,
-                           /*IsAST=*/false))
+                            Clang.getFrontendOpts().Inputs[0].first))
     goto error;
 
   Act->Execute();
index 4f6ed5641098ceebbb3ba883750ba17931681d19..0af355c43190f65b9693c8050e8e8f42fdb6d6b0 100644 (file)
@@ -509,7 +509,7 @@ bool CompilerInstance::ExecuteAction(FrontendAction &Act) {
       createPreprocessor();
     }
 
-    if (Act.BeginSourceFile(*this, InFile, IsAST)) {
+    if (Act.BeginSourceFile(*this, InFile, getFrontendOpts().Inputs[i].first)) {
       Act.Execute();
       Act.EndSourceFile();
     }
index 87fc1227b2f250b1d3109d85ed4b10b757df779d..66bec7c4aef1cf852b2a57f104ce2db2506ae9d6 100644 (file)
@@ -32,7 +32,7 @@ void FrontendAction::setCurrentFile(llvm::StringRef Value, ASTUnit *AST) {
 
 bool FrontendAction::BeginSourceFile(CompilerInstance &CI,
                                      llvm::StringRef Filename,
-                                     bool IsAST) {
+                                     InputKind InputKind) {
   assert(!Instance && "Already processing a source file!");
   assert(!Filename.empty() && "Unexpected empty filename!");
   setCurrentFile(Filename);
@@ -40,6 +40,7 @@ bool FrontendAction::BeginSourceFile(CompilerInstance &CI,
 
   // AST files follow a very different path, since they share objects via the
   // AST unit.
+  bool IsAST = InputKind == IK_AST;
   if (IsAST) {
     assert(!usesPreprocessorOnly() &&
            "Attempt to pass AST file to preprocessor only action!");