mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 05:46:06 +00:00

I was doing this API conversion to use std::string_view top-down in D149104, but this exposed issues in individual demanglers that needed to get fixed first. There's no issue with the conversion for the D language demangler, so convert it. I have a more aggressive refactoring of the entire D language demangler to use std::string_view more extensively, but the interface with llvm::nonMicrosoftDemangle is the more interesting one. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D151003
20 lines
700 B
C++
20 lines
700 B
C++
//===--- llvm-dlang-demangle-fuzzer.cpp - Fuzzer for the DLang Demangler --===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "llvm/Demangle/Demangle.h"
|
|
#include <cstdint>
|
|
#include <cstdlib>
|
|
#include <string>
|
|
|
|
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
|
|
std::string NullTerminatedString((const char *)Data, Size);
|
|
char *Demangled = llvm::dlangDemangle(NullTerminatedString);
|
|
std::free(Demangled);
|
|
return 0;
|
|
}
|