vfabi-demangler-fuzzer.cpp revision 1.1.1.1
1//===-- vfabi-demangler-fuzzer.cpp - Fuzzer VFABI using lib/Fuzzer ------===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// Build tool to fuzz the demangler for the vector function ABI names. 10// 11//===----------------------------------------------------------------------===// 12 13#include "llvm/Analysis/VectorUtils.h" 14 15using namespace llvm; 16 17extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 18 const StringRef MangledName((const char *)Data, Size); 19 const auto Info = VFABI::tryDemangleForVFABI(MangledName); 20 21 // Do not optimize away the return value. Inspired by 22 // https://github.com/google/benchmark/blob/master/include/benchmark/benchmark.h#L307-L345 23 asm volatile("" : : "r,m"(Info) : "memory"); 24 25 return 0; 26} 27