mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-11-04 10:18:41 +02:00 
			
		
		
		
	sccache-dist / icecream preprocess the file and then send it to a builder. That means that the file contains #line directives or equivalents in order for diagnostics and such to work correctly. Unfortunately our clang-plugin build fails catastrophically if you include a third-party header, as it doesn't account for them. Use SourceManager::getPresumedLoc to get filenames, as it accounts for them, unlike just getFilename. Differential Revision: https://phabricator.services.mozilla.com/D50633 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			27 lines
		
	
	
	
		
			985 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
	
		
			985 B
		
	
	
	
		
			C++
		
	
	
	
	
	
/* This Source Code Form is subject to the terms of the Mozilla Public
 | 
						|
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
						|
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | 
						|
 | 
						|
#include "DiagnosticsMatcher.h"
 | 
						|
#include "plugin.h"
 | 
						|
#include "clang/Frontend/FrontendPluginRegistry.h"
 | 
						|
 | 
						|
class MozCheckAction : public PluginASTAction {
 | 
						|
public:
 | 
						|
  ASTConsumerPtr CreateASTConsumer(CompilerInstance &CI,
 | 
						|
                                   StringRef FileName) override {
 | 
						|
    void *Buffer = CI.getASTContext().Allocate<DiagnosticsMatcher>();
 | 
						|
    auto Matcher = new (Buffer) DiagnosticsMatcher(CI);
 | 
						|
    return Matcher->makeASTConsumer();
 | 
						|
  }
 | 
						|
 | 
						|
  bool ParseArgs(const CompilerInstance &CI,
 | 
						|
                 const std::vector<std::string> &Args) override {
 | 
						|
    return true;
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
static FrontendPluginRegistry::Add<MozCheckAction> X("moz-check",
 | 
						|
                                                     "check moz action");
 | 
						|
 | 
						|
DenseMap<StringRef, bool> InThirdPartyPathCache;
 |