summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Scott <craig.scott@crascit.com>2022-12-03 11:25:57 (GMT)
committerCraig Scott <craig.scott@crascit.com>2022-12-03 11:25:57 (GMT)
commit466f9b886da1826243e222e946a48ba1428acf63 (patch)
treebed7dc8cf83e427f95fbdc3ac84ac585f372c2fc
parent7ea665b74da322e96dd3e7f90075143c2957728c (diff)
downloadCMake-466f9b886da1826243e222e946a48ba1428acf63.zip
CMake-466f9b886da1826243e222e946a48ba1428acf63.tar.gz
CMake-466f9b886da1826243e222e946a48ba1428acf63.tar.bz2
cmTargetPropCommandBase::HandleArguments: flags must be OR'able
The flags argument is intended to support multiple flags from the ArgumentFlags enum. Therefore, flags cannot be of enum type, it must be an integral type that allows flags to be OR'ed together. Update the one call site that was erroneously OR'ing multiple values but then casting that to an ArgumentFlags, which could result in passing a technically invalid value. Amends: dd3482f6752d (cmTargetPropCommandBase: Restore ArgumentFlags enum value bool logic, 2022-11-27)
-rw-r--r--Source/cmTargetIncludeDirectoriesCommand.cxx5
-rw-r--r--Source/cmTargetPropCommandBase.cxx2
-rw-r--r--Source/cmTargetPropCommandBase.h3
3 files changed, 4 insertions, 6 deletions
diff --git a/Source/cmTargetIncludeDirectoriesCommand.cxx b/Source/cmTargetIncludeDirectoriesCommand.cxx
index cb83873..7a2dd09 100644
--- a/Source/cmTargetIncludeDirectoriesCommand.cxx
+++ b/Source/cmTargetIncludeDirectoriesCommand.cxx
@@ -100,8 +100,7 @@ bool cmTargetIncludeDirectoriesCommand(std::vector<std::string> const& args,
{
return TargetIncludeDirectoriesImpl(status).HandleArguments(
args, "INCLUDE_DIRECTORIES",
- static_cast<TargetIncludeDirectoriesImpl::ArgumentFlags>(
- TargetIncludeDirectoriesImpl::PROCESS_BEFORE |
+ TargetIncludeDirectoriesImpl::PROCESS_BEFORE |
TargetIncludeDirectoriesImpl::PROCESS_AFTER |
- TargetIncludeDirectoriesImpl::PROCESS_SYSTEM));
+ TargetIncludeDirectoriesImpl::PROCESS_SYSTEM);
}
diff --git a/Source/cmTargetPropCommandBase.cxx b/Source/cmTargetPropCommandBase.cxx
index 391b954..8d2ff71 100644
--- a/Source/cmTargetPropCommandBase.cxx
+++ b/Source/cmTargetPropCommandBase.cxx
@@ -23,7 +23,7 @@ void cmTargetPropCommandBase::SetError(std::string const& e)
bool cmTargetPropCommandBase::HandleArguments(
std::vector<std::string> const& args, const std::string& prop,
- ArgumentFlags flags)
+ unsigned int flags)
{
if (args.size() < 2) {
this->SetError("called with incorrect number of arguments");
diff --git a/Source/cmTargetPropCommandBase.h b/Source/cmTargetPropCommandBase.h
index 487beb4..ac50b4d 100644
--- a/Source/cmTargetPropCommandBase.h
+++ b/Source/cmTargetPropCommandBase.h
@@ -29,8 +29,7 @@ public:
};
bool HandleArguments(std::vector<std::string> const& args,
- const std::string& prop,
- ArgumentFlags flags = NO_FLAGS);
+ const std::string& prop, unsigned int flags = NO_FLAGS);
protected:
std::string Property;