[cfe-commits] r86824 - /cfe/trunk/tools/clang-cc/clang-cc.cpp
Daniel Dunbar
daniel at zuster.org
Wed Nov 11 01:38:36 PST 2009
Author: ddunbar
Date: Wed Nov 11 03:38:35 2009
New Revision: 86824
URL: http://llvm.org/viewvc/llvm-project?rev=86824&view=rev
Log:
clang-cc: Refactor some -fixit-at handling.
Modified:
cfe/trunk/tools/clang-cc/clang-cc.cpp
Modified: cfe/trunk/tools/clang-cc/clang-cc.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-cc/clang-cc.cpp?rev=86824&r1=86823&r2=86824&view=diff
==============================================================================
--- cfe/trunk/tools/clang-cc/clang-cc.cpp (original)
+++ cfe/trunk/tools/clang-cc/clang-cc.cpp Wed Nov 11 03:38:35 2009
@@ -74,23 +74,6 @@
using namespace clang;
//===----------------------------------------------------------------------===//
-// Source Location Parser
-//===----------------------------------------------------------------------===//
-
-static bool ResolveParsedLocation(ParsedSourceLocation &ParsedLoc,
- FileManager &FileMgr,
- RequestedSourceLocation &Result) {
- const FileEntry *File = FileMgr.getFile(ParsedLoc.FileName);
- if (!File)
- return true;
-
- Result.File = File;
- Result.Line = ParsedLoc.Line;
- Result.Column = ParsedLoc.Column;
- return false;
-}
-
-//===----------------------------------------------------------------------===//
// Global options.
//===----------------------------------------------------------------------===//
@@ -580,6 +563,29 @@
return Ret;
}
+/// AddFixitLocations - Add any individual user specified "fix-it" locations,
+/// and return true on success (if any were added).
+static bool AddFixitLocations(FixItRewriter *FixItRewrite,
+ FileManager &FileMgr) {
+ bool AddedFixitLocation = false;
+
+ for (unsigned i = 0, e = FixItAtLocations.size(); i != e; ++i) {
+ if (const FileEntry *File = FileMgr.getFile(FixItAtLocations[i].FileName)) {
+ RequestedSourceLocation Requested;
+ Requested.File = File;
+ Requested.Line = FixItAtLocations[i].Line;
+ Requested.Column = FixItAtLocations[i].Column;
+ FixItRewrite->addFixItLocation(Requested);
+ AddedFixitLocation = true;
+ } else {
+ llvm::errs() << "FIX-IT could not find file \""
+ << FixItAtLocations[i].FileName << "\"\n";
+ }
+ }
+
+ return AddedFixitLocation;
+}
+
static ASTConsumer *CreateConsumerAction(const CompilerInvocation &CompOpts,
Preprocessor &PP,
const std::string &InFile,
@@ -795,21 +801,7 @@
PP.getSourceManager(),
PP.getLangOptions());
- bool AddedFixitLocation = false;
- for (unsigned Idx = 0, Last = FixItAtLocations.size();
- Idx != Last; ++Idx) {
- RequestedSourceLocation Requested;
- if (ResolveParsedLocation(FixItAtLocations[Idx],
- PP.getFileManager(), Requested)) {
- fprintf(stderr, "FIX-IT could not find file \"%s\"\n",
- FixItAtLocations[Idx].FileName.c_str());
- } else {
- FixItRewrite->addFixItLocation(Requested);
- AddedFixitLocation = true;
- }
- }
-
- if (!AddedFixitLocation) {
+ if (!AddFixitLocations(FixItRewrite, PP.getFileManager())) {
// All of the fix-it locations were bad. Don't fix anything.
delete FixItRewrite;
FixItRewrite = 0;
More information about the cfe-commits
mailing list