blob: 07c290a0be5c800e08cfb1ea60e8f422c9c800dc [file] [log] [blame]
Matt Morehouseb1b02b72017-10-13 17:35:37 +00001//===--- llvm-demangle-fuzzer.cpp - Fuzzer for the Itanium Demangler ------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#include "llvm/Demangle/Demangle.h"
11
12#include <cstdint>
13#include <cstdlib>
14#include <string>
15
16extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
Nico Weber576e6bc2018-12-19 20:19:58 +000017 std::string NullTerminatedString((const char *)Data, Size);
18 int status = 0;
19 if (char *demangle = llvm::itaniumDemangle(NullTerminatedString.c_str(), nullptr,
20 nullptr, &status))
21 free(demangle);
Matt Morehouseb1b02b72017-10-13 17:35:37 +000022
23 return 0;
24}