From 6d44b037731fe497a98739bfd237e430f90974aa Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Sun, 27 Oct 2019 21:27:04 -0400 Subject: Eliminate most warnings on Linux --- binaryninjaapi.h | 2 ++ function.cpp | 8 ++++++++ lowlevelilinstruction.cpp | 5 +++++ lowlevelilinstruction.h | 1 + rapidjsonwrapper.h | 10 +++++++++- type.cpp | 4 ++++ ui/action.h | 1 + ui/dockhandler.h | 13 +++++++++++++ ui/linearview.h | 1 + 9 files changed, 44 insertions(+), 1 deletion(-) diff --git a/binaryninjaapi.h b/binaryninjaapi.h index a1233412..fc225316 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -1033,6 +1033,7 @@ __attribute__ ((format (printf, 1, 2))) NameList(const std::string& name, const std::string& join); NameList(const std::vector& name, const std::string& join); NameList(const NameList& name, const std::string& join); + NameList(const NameList& name); virtual ~NameList(); virtual NameList& operator=(const std::string& name); @@ -2424,6 +2425,7 @@ __attribute__ ((format (printf, 1, 2))) Variable(BNVariableSourceType type, uint32_t index, uint64_t storage); Variable(BNVariableSourceType type, uint64_t storage); Variable(const BNVariable& var); + Variable(const Variable& var); Variable& operator=(const Variable& var); diff --git a/function.cpp b/function.cpp index 0d5cb2ba..3dc98112 100644 --- a/function.cpp +++ b/function.cpp @@ -48,6 +48,14 @@ Variable::Variable(const BNVariable& var) } +Variable::Variable(const Variable& var) +{ + type = var.type; + index = var.index; + storage = var.storage; +} + + Variable& Variable::operator=(const Variable& var) { type = var.type; diff --git a/lowlevelilinstruction.cpp b/lowlevelilinstruction.cpp index 0b1a3923..a79910f0 100644 --- a/lowlevelilinstruction.cpp +++ b/lowlevelilinstruction.cpp @@ -323,6 +323,11 @@ RegisterOrFlag::RegisterOrFlag(bool flag, uint32_t i): isFlag(flag), index(i) } +RegisterOrFlag::RegisterOrFlag(const RegisterOrFlag& v): isFlag(v.isFlag), index(v.index) +{ +} + + uint32_t RegisterOrFlag::GetRegister() const { if (isFlag) diff --git a/lowlevelilinstruction.h b/lowlevelilinstruction.h index 2b456bb1..af005943 100644 --- a/lowlevelilinstruction.h +++ b/lowlevelilinstruction.h @@ -61,6 +61,7 @@ namespace BinaryNinja RegisterOrFlag(); RegisterOrFlag(bool flag, uint32_t i); + RegisterOrFlag(const RegisterOrFlag& v); bool IsRegister() const { return !isFlag; } bool IsFlag() const { return isFlag; } diff --git a/rapidjsonwrapper.h b/rapidjsonwrapper.h index cf3dd829..1ff02e7e 100644 --- a/rapidjsonwrapper.h +++ b/rapidjsonwrapper.h @@ -2,6 +2,12 @@ #include #include +#if defined(__GNUC__) && __GNUC__ >= 8 +// Disable warnings from rapidjson performance optimizations +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wclass-memaccess" +#endif + struct GenericException; struct ParseException; @@ -30,4 +36,6 @@ struct ParseException: public std::runtime_error, rapidjson::ParseResult #include "rapidjson/rapidjson.h" #include "rapidjson/document.h" - +#if defined(__GNUC__) && __GNUC__ >= 8 +#pragma GCC diagnostic pop +#endif diff --git a/type.cpp b/type.cpp index a2075103..c5835ba9 100644 --- a/type.cpp +++ b/type.cpp @@ -45,6 +45,10 @@ NameList::NameList(const NameList& name, const string& join): m_join(join), m_na { } +NameList::NameList(const NameList& name): m_join(name.m_join), m_name(name.m_name) +{ +} + NameList::~NameList() {} diff --git a/ui/action.h b/ui/action.h index 8559e887..a374731b 100644 --- a/ui/action.h +++ b/ui/action.h @@ -72,6 +72,7 @@ struct BINARYNINJAUIAPI UIAction UIAction(const std::function& activate, const std::function& isValid); UIAction(const UIAction& other); + UIAction& operator=(const UIAction& other); static void registerAction(const QString& name, const QKeySequence& defaultKeyBinding = QKeySequence()); static void registerAction(const QString& name, const QList& defaultKeyBinding); diff --git a/ui/dockhandler.h b/ui/dockhandler.h index ab6596c7..d349e330 100644 --- a/ui/dockhandler.h +++ b/ui/dockhandler.h @@ -26,6 +26,19 @@ struct BINARYNINJAUIAPI DockProperties dockWidget(dp.dockWidget), visibleState(dp.visibleState), defaultArea(dp.defaultArea), defaultOrientation(dp.defaultOrientation), defaultVisibility(dp.defaultVisibility), viewSensitive(dp.viewSensitive), neverBeenVisible(dp.neverBeenVisible), sizeStash(dp.sizeStash), actionOnShow(dp.actionOnShow) { } + DockProperties& operator=(const DockProperties& dp) + { + dockWidget = dp.dockWidget; + visibleState = dp.visibleState; + defaultArea = dp.defaultArea; + defaultOrientation = dp.defaultOrientation; + defaultVisibility = dp.defaultVisibility; + viewSensitive = dp.viewSensitive; + neverBeenVisible = dp.neverBeenVisible; + sizeStash = dp.sizeStash; + actionOnShow = dp.actionOnShow; + return *this; + } QDockWidget* dockWidget; bool visibleState; diff --git a/ui/linearview.h b/ui/linearview.h index adc14f2e..b30e127c 100644 --- a/ui/linearview.h +++ b/ui/linearview.h @@ -23,6 +23,7 @@ struct BINARYNINJAUIAPI LinearViewCursorPosition: public BinaryNinja::LinearDisa LinearViewCursorPosition(); LinearViewCursorPosition(const LinearViewCursorPosition& pos); LinearViewCursorPosition(const BinaryNinja::LinearDisassemblyPosition& pos); + LinearViewCursorPosition& operator=(const LinearViewCursorPosition& pos); }; class BINARYNINJAUIAPI LinearViewHistoryEntry: public HistoryEntry -- cgit v1.3.1