Skip to content

fuzzgen-preprocessor compilation error: marked ‘override’, but does not override during cmake build #19

@nharshitavani

Description

@nharshitavani

Getting below error while compiling fuzzgen-preprocessor. Need suggestions to solve the issue, please. I have listed steps that are followed for reference, correct if needed.

cmake --build .
[1/2] Building CXX object tools/clang/tools/fuzzgen/CMakeFiles/fuzzgen-preprocessor.dir/preprocessor.cpp.o
FAILED: tools/clang/tools/fuzzgen/CMakeFiles/fuzzgen-preprocessor.dir/preprocessor.cpp.o
/usr/bin/c++ -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools/clang/tools/fuzzgen -I/opt/llvm-project/clang/tools/fuzzgen -I/opt/llvm-project/clang/include -Itools/clang/include -Iinclude -I/opt/llvm-project/llvm/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -std=c++11 -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment -fno-common -Woverloaded-virtual -fno-strict-aliasing -g -fno-exceptions -fno-rtti -MD -MT tools/clang/tools/fuzzgen/CMakeFiles/fuzzgen-preprocessor.dir/preprocessor.cpp.o -MF tools/clang/tools/fuzzgen/CMakeFiles/fuzzgen-preprocessor.dir/preprocessor.cpp.o.d -o tools/clang/tools/fuzzgen/CMakeFiles/fuzzgen-preprocessor.dir/preprocessor.cpp.o -c /opt/llvm-project/clang/tools/fuzzgen/preprocessor.cpp
In file included from /opt/llvm-project/clang/tools/fuzzgen/preprocessor.cpp:41:
/opt/llvm-project/clang/tools/fuzzgen/preprocessor.h:210:18: error: ‘virtual void IncludesProcessor::InclusionDirective(clang::SourceLocation, const clang::Token&, llvm::StringRef, bool, clang::CharSourceRange, const clang::FileEntry*, llvm::StringRef, llvm::StringRef, const clang::Module*, clang::SrcMgr::CharacteristicKind)’ marked ‘override’, but does not override
210 | virtual void InclusionDirective(SourceLocation, const Token &, StringRef, bool, CharSourceRange,
| ^~~~~~~~~~~~~~~~~~
In file included from /opt/llvm-project/clang/include/clang/Lex/PreprocessingRecord.h:20,
from /opt/llvm-project/clang/include/clang/Frontend/ASTUnit.h:25,
from /opt/llvm-project/clang/include/clang/Frontend/FrontendAction.h:24,
from /opt/llvm-project/clang/include/clang/Frontend/FrontendActions.h:13,
from /opt/llvm-project/clang/tools/fuzzgen/preprocessor.h:44,
from /opt/llvm-project/clang/tools/fuzzgen/preprocessor.cpp:41:
/opt/llvm-project/clang/include/clang/Lex/PPCallbacks.h:120:16: warning: ‘virtual void clang::PPCallbacks::InclusionDirective(clang::SourceLocation, const clang::Token&, llvm::StringRef, bool, clang::CharSourceRange, const clang::FileEntry*, llvm::StringRef, llvm::StringRef, const clang::Module*)’ was hidden [-Woverloaded-virtual]
120 | virtual void InclusionDirective(SourceLocation HashLoc,
| ^~~~~~~~~~~~~~~~~~
In file included from /opt/llvm-project/clang/tools/fuzzgen/preprocessor.cpp:41:
/opt/llvm-project/clang/tools/fuzzgen/preprocessor.h:210:18: warning: by ‘virtual void IncludesProcessor::InclusionDirective(clang::SourceLocation, const clang::Token&, llvm::StringRef, bool, clang::CharSourceRange, const clang::FileEntry*, llvm::StringRef, llvm::StringRef, const clang::Module*, clang::SrcMgr::CharacteristicKind)’ [-Woverloaded-virtual]
210 | virtual void InclusionDirective(SourceLocation, const Token &, StringRef, bool, CharSourceRange,
| ^~~~~~~~~~~~~~~~~~
In file included from /opt/llvm-project/llvm/include/llvm/ADT/STLExtras.h:21,
from /opt/llvm-project/llvm/include/llvm/ADT/StringRef.h:13,
from /opt/llvm-project/clang/include/clang/Basic/DiagnosticIDs.h:20,
from /opt/llvm-project/clang/include/clang/Basic/Diagnostic.h:18,
from /opt/llvm-project/clang/include/clang/Frontend/CompilerInstance.h:14,
from /opt/llvm-project/clang/tools/fuzzgen/preprocessor.h:43,
from /opt/llvm-project/clang/tools/fuzzgen/preprocessor.cpp:41:
/opt/llvm-project/llvm/include/llvm/ADT/SmallVector.h: In instantiation of ‘void llvm::SmallVectorTemplateBase<T, true>::push_back(const T&) [with T = std::pair<void*, long unsigned int>]’:
/opt/llvm-project/llvm/include/llvm/Support/Allocator.h:247:33: required from ‘void* llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold>::Allocate(size_t, size_t) [with AllocatorT = llvm::MallocAllocator; long unsigned int SlabSize = 4096; long unsigned int SizeThreshold = 4096; size_t = long unsigned int]’
/opt/llvm-project/clang/include/clang/AST/ASTContext.h:651:42: required from here
/opt/llvm-project/llvm/include/llvm/ADT/SmallVector.h:312:11: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct std::pair<void*, long unsigned int>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
312 | memcpy(this->end(), &Elt, sizeof(T));
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/utility:70,
from /opt/llvm-project/llvm/include/llvm/Support/type_traits.h:19,
from /opt/llvm-project/llvm/include/llvm/Support/Casting.h:19,
from /opt/llvm-project/clang/include/clang/Basic/LLVM.h:22,
from /opt/llvm-project/clang/include/clang/Basic/DiagnosticIDs.h:18,
from /opt/llvm-project/clang/include/clang/Basic/Diagnostic.h:18,
from /opt/llvm-project/clang/include/clang/Frontend/CompilerInstance.h:14,
from /opt/llvm-project/clang/tools/fuzzgen/preprocessor.h:43,
from /opt/llvm-project/clang/tools/fuzzgen/preprocessor.cpp:41:
/usr/include/c++/9/bits/stl_pair.h:208:12: note: ‘struct std::pair<void*, long unsigned int>’ declared here
208 | struct pair
| ^~~~
ninja: build stopped: subcommand failed.

Steps followed:

  1. git clone https://github.com/llvm/llvm-project
  2. git checkout llvmorg-6.0.0
  3. cd llvm-project
  4. mkdir build
  5. cd build
  6. copy the preprocessor directory under llvm-project/clang/tools as fuzzgen
  7. Add below line to llvm-project/clang/tools/CMakeLists.txt
    add_clang_subdirectory(fuzzgen)
  8. cmake -DLLVM_ENABLE_PROJECTS=clang -G Ninja ../llvm
  9. cmake --build .

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions