clang 20.0.0git
Functions
Job.cpp File Reference
#include "clang/Driver/Job.h"
#include "clang/Basic/LLVM.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/DriverDiagnostic.h"
#include "clang/Driver/InputInfo.h"
#include "clang/Driver/Tool.h"
#include "clang/Driver/ToolChain.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Support/CrashRecoveryContext.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/PrettyStackTrace.h"
#include "llvm/Support/Program.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <string>
#include <system_error>
#include <utility>

Go to the source code of this file.

Functions

static bool skipArgs (const char *Flag, bool HaveCrashVFS, int &SkipNum, bool &IsInclude)
 Check if the compiler flag in question should be skipped when emitting a reproducer.
 
static void rewriteIncludes (const llvm::ArrayRef< const char * > &Args, size_t Idx, size_t NumArgs, llvm::SmallVectorImpl< llvm::SmallString< 128 > > &IncFlags)
 Rewrite relative include-like flag paths to absolute ones.
 

Function Documentation

◆ rewriteIncludes()

static void rewriteIncludes ( const llvm::ArrayRef< const char * > &  Args,
size_t  Idx,
size_t  NumArgs,
llvm::SmallVectorImpl< llvm::SmallString< 128 > > &  IncFlags 
)
static

Rewrite relative include-like flag paths to absolute ones.

Definition at line 169 of file Job.cpp.

Referenced by clang::driver::Command::Print().

◆ skipArgs()

static bool skipArgs ( const char *  Flag,
bool  HaveCrashVFS,
int SkipNum,
bool IsInclude 
)
static

Check if the compiler flag in question should be skipped when emitting a reproducer.

Also track how many arguments it has and if the option is some kind of include path.

Definition at line 57 of file Job.cpp.

Referenced by clang::driver::Command::Print().