mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-03-03 08:02:41 +00:00
cpp11-migrate: Add EnableHeaderModification flag
First step toward supporting header modifications: adding a flag that turns on such modifications. Eventually header modifications will be on by default but until all the kinks can be worked out, they must be explicitly enabled. llvm-svn: 183444
This commit is contained in:
parent
32e3553f83
commit
622dacd669
@ -111,6 +111,15 @@ struct TransformOptions {
|
||||
/// \brief Enable the use of performance timers.
|
||||
bool EnableTiming;
|
||||
|
||||
/// \brief Allow changes to headers included from the main source file.
|
||||
/// Transform sub-classes should use ModifiableHeaders to determine which
|
||||
/// headers are modifiable and which are not.
|
||||
bool EnableHeaderModifications;
|
||||
|
||||
/// \brief Contains information on which headers are safe to transform and
|
||||
/// which aren't.
|
||||
IncludeExcludeInfo ModifiableHeaders;
|
||||
|
||||
/// \brief Maximum allowed level of risk.
|
||||
RiskLevel MaxRiskLevel;
|
||||
};
|
||||
|
@ -79,6 +79,15 @@ ExcludeFromFile("exclude-from", cl::Hidden, cl::value_desc("filename"),
|
||||
cl::desc("File containing a list of paths that can not be "
|
||||
"transforms"));
|
||||
|
||||
// Header modifications will probably be always on eventually. For now, they
|
||||
// need to be explicitly enabled.
|
||||
static cl::opt<bool, /*ExternalStorage=*/true> EnableHeaderModifications(
|
||||
"headers",
|
||||
cl::Hidden, // Experimental feature for now.
|
||||
cl::desc("Enable modifications to headers"),
|
||||
cl::location(GlobalOptions.EnableHeaderModifications),
|
||||
cl::init(false));
|
||||
|
||||
class EndSyntaxArgumentsAdjuster : public ArgumentsAdjuster {
|
||||
CommandLineArguments Adjust(const CommandLineArguments &Args) {
|
||||
CommandLineArguments AdjustedArgs = Args;
|
||||
@ -113,6 +122,15 @@ int main(int argc, const char **argv) {
|
||||
// against the default value when the command line option is not specified.
|
||||
GlobalOptions.EnableTiming = (TimingDirectoryName != NoTiming);
|
||||
|
||||
// Populate the ModifiableHeaders structure if header modifications are
|
||||
// enabled.
|
||||
if (GlobalOptions.EnableHeaderModifications) {
|
||||
GlobalOptions.ModifiableHeaders
|
||||
.readListFromString(IncludePaths, ExcludePaths);
|
||||
GlobalOptions.ModifiableHeaders
|
||||
.readListFromFile(IncludeFromFile, ExcludeFromFile);
|
||||
}
|
||||
|
||||
TransformManager.createSelectedTransforms(GlobalOptions);
|
||||
|
||||
if (TransformManager.begin() == TransformManager.end()) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user