forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
| //===--- ArgumentsAdjusters.cpp - Command line arguments adjuster ---------===//
 | |
| //
 | |
| //                     The LLVM Compiler Infrastructure
 | |
| //
 | |
| // This file is distributed under the University of Illinois Open Source
 | |
| // License. See LICENSE.TXT for details.
 | |
| //
 | |
| //===----------------------------------------------------------------------===//
 | |
| //
 | |
| // This file contains definitions of classes which implement ArgumentsAdjuster
 | |
| // interface.
 | |
| //
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| #include "clang/Tooling/ArgumentsAdjusters.h"
 | |
| #include "clang/Basic/LLVM.h"
 | |
| #include "llvm/ADT/StringRef.h"
 | |
| 
 | |
| namespace clang {
 | |
| namespace tooling {
 | |
| 
 | |
| void ArgumentsAdjuster::anchor() {
 | |
| }
 | |
| 
 | |
| /// Add -fsyntax-only option to the commnand line arguments.
 | |
| CommandLineArguments
 | |
| ClangSyntaxOnlyAdjuster::Adjust(const CommandLineArguments &Args) {
 | |
|   CommandLineArguments AdjustedArgs;
 | |
|   for (size_t i = 0, e = Args.size(); i != e; ++i) {
 | |
|     StringRef Arg = Args[i];
 | |
|     // FIXME: Remove options that generate output.
 | |
|     if (!Arg.startswith("-fcolor-diagnostics") &&
 | |
|         !Arg.startswith("-fdiagnostics-color"))
 | |
|       AdjustedArgs.push_back(Args[i]);
 | |
|   }
 | |
|   AdjustedArgs.push_back("-fsyntax-only");
 | |
|   return AdjustedArgs;
 | |
| }
 | |
| 
 | |
| CommandLineArguments
 | |
| ClangStripOutputAdjuster::Adjust(const CommandLineArguments &Args) {
 | |
|   CommandLineArguments AdjustedArgs;
 | |
|   for (size_t i = 0, e = Args.size(); i < e; ++i) {
 | |
|     StringRef Arg = Args[i];
 | |
|     if(!Arg.startswith("-o"))
 | |
|       AdjustedArgs.push_back(Args[i]);
 | |
| 
 | |
|     if(Arg == "-o") {
 | |
|       // Output is specified as -o foo. Skip the next argument also.
 | |
|       ++i;
 | |
|     }
 | |
|     // Else, the output is specified as -ofoo. Just do nothing.
 | |
|   }
 | |
|   return AdjustedArgs;
 | |
| }
 | |
| 
 | |
| } // end namespace tooling
 | |
| } // end namespace clang
 | |
| 
 |