We don't use any library to minimize dependencies.
| 196 | |
| 197 | // We don't use any library to minimize dependencies. |
| 198 | static void ParseFlags(const std::vector<std::string> &Args, |
| 199 | const ExternalFunctions *EF) { |
| 200 | for (size_t F = 0; F < kNumFlags; F++) { |
| 201 | if (FlagDescriptions[F].IntFlag) |
| 202 | *FlagDescriptions[F].IntFlag = FlagDescriptions[F].Default; |
| 203 | if (FlagDescriptions[F].UIntFlag) |
| 204 | *FlagDescriptions[F].UIntFlag = |
| 205 | static_cast<unsigned int>(FlagDescriptions[F].Default); |
| 206 | if (FlagDescriptions[F].StrFlag) |
| 207 | *FlagDescriptions[F].StrFlag = nullptr; |
| 208 | } |
| 209 | |
| 210 | // Disable len_control by default, if LLVMFuzzerCustomMutator is used. |
| 211 | if (EF->LLVMFuzzerCustomMutator) { |
| 212 | Flags.len_control = 0; |
| 213 | Printf("INFO: found LLVMFuzzerCustomMutator (%p). " |
| 214 | "Disabling -len_control by default.\n", EF->LLVMFuzzerCustomMutator); |
| 215 | } |
| 216 | |
| 217 | Inputs = new std::vector<std::string>; |
| 218 | for (size_t A = 1; A < Args.size(); A++) { |
| 219 | if (ParseOneFlag(Args[A].c_str())) { |
| 220 | if (Flags.ignore_remaining_args) |
| 221 | break; |
| 222 | continue; |
| 223 | } |
| 224 | Inputs->push_back(Args[A]); |
| 225 | } |
| 226 | } |
| 227 | |
| 228 | static std::mutex Mu; |
| 229 |
no test coverage detected