[llvm] [VFABI] fix vfabi-demangler-fuzzer.cpp (PR #79581)

via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 26 03:45:45 PST 2024


https://github.com/DavidKorczynski created https://github.com/llvm/llvm-project/pull/79581

This is a follow up to https://github.com/llvm/llvm-project/pull/77513 which broke the fuzzer, which is currently failing the OSS-Fuzz build with:

```
[233/242] Building CXX object tools/vfabi-demangle-fuzzer/CMakeFiles/vfabi-demangler-fuzzer.dir/vfabi-demangler-fuzzer.cpp.o
Step #3 - "compile-honggfuzz-address-x86_64": FAILED: tools/vfabi-demangle-fuzzer/CMakeFiles/vfabi-demangler-fuzzer.dir/vfabi-demangler-fuzzer.cpp.o 
Step #3 - "compile-honggfuzz-address-x86_64": /usr/local/bin/clang++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/src/build/tools/vfabi-demangle-fuzzer -I/src/llvm-project/llvm/tools/vfabi-demangle-fuzzer -I/src/build/include -I/src/llvm-project/llvm/include -O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize-address-use-after-scope -fsanitize-coverage=trace-pc-guard,indirect-calls,trace-cmp -stdlib=libc++ -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fno-omit-frame-pointer -gline-tables-only -fsanitize=address -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -std=c++17 -MD -MT tools/vfabi-demangle-fuzzer/CMakeFiles/vfabi-demangler-fuzzer.dir/vfabi-demangler-fuzzer.cpp.o -MF tools/vfabi-demangle-fuzzer/CMakeFiles/vfabi-demangler-fuzzer.dir/vfabi-demangler-fuzzer.cpp.o.d -o tools/vfabi-demangle-fuzzer/CMakeFiles/vfabi-demangler-fuzzer.dir/vfabi-demangler-fuzzer.cpp.o -c /src/llvm-project/llvm/tools/vfabi-demangle-fuzzer/vfabi-demangler-fuzzer.cpp
Step #3 - "compile-honggfuzz-address-x86_64": /src/llvm-project/llvm/tools/vfabi-demangle-fuzzer/vfabi-demangler-fuzzer.cpp:20:16: error: variable has incomplete type 'llvm::SMDiagnostic'
Step #3 - "compile-honggfuzz-address-x86_64":   SMDiagnostic Err;
Step #3 - "compile-honggfuzz-address-x86_64":                ^
Step #3 - "compile-honggfuzz-address-x86_64": /src/llvm-project/llvm/include/llvm/AsmParser/Parser.h:29:7: note: forward declaration of 'llvm::SMDiagnostic'
Step #3 - "compile-honggfuzz-address-x86_64": class SMDiagnostic;
Step #3 - "compile-honggfuzz-address-x86_64":       ^
Step #3 - "compile-honggfuzz-address-x86_64": /src/llvm-project/llvm/tools/vfabi-demangle-fuzzer/vfabi-demangler-fuzzer.cpp:33:44: error: member access into incomplete type 'llvm::Module'
Step #3 - "compile-honggfuzz-address-x86_64":         FunctionType::get(Type::getVoidTy(M->getContext()), false);
Step #3 - "compile-honggfuzz-address-x86_64":                                            ^
Step #3 - "compile-honggfuzz-address-x86_64": /src/llvm-project/llvm/include/llvm/AsmParser/Parser.h:26:7: note: forward declaration of 'llvm::Module'
Step #3 - "compile-honggfuzz-address-x86_64": class Module;
Step #3 - "compile-honggfuzz-address-x86_64":       ^
Step #3 - "compile-honggfuzz-address-x86_64": 2 errors generated.
Step #3 - "compile-honggfuzz-address-x86_64":
```

>From 71bd41c93bcd592112d25d7ce4913d0c530aff02 Mon Sep 17 00:00:00 2001
From: DavidKorczynski <david at adalogics.com>
Date: Fri, 26 Jan 2024 11:45:27 +0000
Subject: [PATCH] [VFABI] fix vfabi-demangler-fuzzer.cpp
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is a follow up to https://github.com/llvm/llvm-project/pull/77513 which broke the fuzzer, which is currently failing the OSS-Fuzz build with:

```
[233/242] Building CXX object tools/vfabi-demangle-fuzzer/CMakeFiles/vfabi-demangler-fuzzer.dir/vfabi-demangler-fuzzer.cpp.o
Step #3 - "compile-honggfuzz-address-x86_64": FAILED: tools/vfabi-demangle-fuzzer/CMakeFiles/vfabi-demangler-fuzzer.dir/vfabi-demangler-fuzzer.cpp.o
Step #3 - "compile-honggfuzz-address-x86_64": /usr/local/bin/clang++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/src/build/tools/vfabi-demangle-fuzzer -I/src/llvm-project/llvm/tools/vfabi-demangle-fuzzer -I/src/build/include -I/src/llvm-project/llvm/include -O1 -fno-omit-frame-pointer -gline-tables-only -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize-address-use-after-scope -fsanitize-coverage=trace-pc-guard,indirect-calls,trace-cmp -stdlib=libc++ -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fno-omit-frame-pointer -gline-tables-only -fsanitize=address -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -std=c++17 -MD -MT tools/vfabi-demangle-fuzzer/CMakeFiles/vfabi-demangler-fuzzer.dir/vfabi-demangler-fuzzer.cpp.o -MF tools/vfabi-demangle-fuzzer/CMakeFiles/vfabi-demangler-fuzzer.dir/vfabi-demangler-fuzzer.cpp.o.d -o tools/vfabi-demangle-fuzzer/CMakeFiles/vfabi-demangler-fuzzer.dir/vfabi-demangler-fuzzer.cpp.o -c /src/llvm-project/llvm/tools/vfabi-demangle-fuzzer/vfabi-demangler-fuzzer.cpp
Step #3 - "compile-honggfuzz-address-x86_64": /src/llvm-project/llvm/tools/vfabi-demangle-fuzzer/vfabi-demangler-fuzzer.cpp:20:16: error: variable has incomplete type 'llvm::SMDiagnostic'
Step #3 - "compile-honggfuzz-address-x86_64":   SMDiagnostic Err;
Step #3 - "compile-honggfuzz-address-x86_64":                ^
Step #3 - "compile-honggfuzz-address-x86_64": /src/llvm-project/llvm/include/llvm/AsmParser/Parser.h:29:7: note: forward declaration of 'llvm::SMDiagnostic'
Step #3 - "compile-honggfuzz-address-x86_64": class SMDiagnostic;
Step #3 - "compile-honggfuzz-address-x86_64":       ^
Step #3 - "compile-honggfuzz-address-x86_64": /src/llvm-project/llvm/tools/vfabi-demangle-fuzzer/vfabi-demangler-fuzzer.cpp:33:44: error: member access into incomplete type 'llvm::Module'
Step #3 - "compile-honggfuzz-address-x86_64":         FunctionType::get(Type::getVoidTy(M->getContext()), false);
Step #3 - "compile-honggfuzz-address-x86_64":                                            ^
Step #3 - "compile-honggfuzz-address-x86_64": /src/llvm-project/llvm/include/llvm/AsmParser/Parser.h:26:7: note: forward declaration of 'llvm::Module'
Step #3 - "compile-honggfuzz-address-x86_64": class Module;
Step #3 - "compile-honggfuzz-address-x86_64":       ^
Step #3 - "compile-honggfuzz-address-x86_64": 2 errors generated.
Step #3 - "compile-honggfuzz-address-x86_64":
```
---
 llvm/tools/vfabi-demangle-fuzzer/vfabi-demangler-fuzzer.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/llvm/tools/vfabi-demangle-fuzzer/vfabi-demangler-fuzzer.cpp b/llvm/tools/vfabi-demangle-fuzzer/vfabi-demangler-fuzzer.cpp
index e1041bd4eef9983..309fe2b9957a4b4 100644
--- a/llvm/tools/vfabi-demangle-fuzzer/vfabi-demangler-fuzzer.cpp
+++ b/llvm/tools/vfabi-demangle-fuzzer/vfabi-demangler-fuzzer.cpp
@@ -11,7 +11,9 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/AsmParser/Parser.h"
+#include "llvm/IR/Module.h"
 #include "llvm/IR/VFABIDemangler.h"
+#include "llvm/Support/SourceMgr.h"
 
 using namespace llvm;
 



More information about the llvm-commits mailing list