Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enabled and fixed performance-enum-size clang-tidy warnings #6221

Merged
merged 1 commit into from
Jun 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ Checks: >
-modernize-use-nodiscard,
-modernize-use-trailing-return-type,
-performance-avoid-endl,
-performance-enum-size,
-performance-inefficient-string-concatenation,
-performance-no-automatic-move,
-performance-noexcept-swap,
Expand Down
1 change: 0 additions & 1 deletion clang-tidy.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,6 @@ We run this separately via `clang-include-cleaner` in the `iwyu.yml` workflow as
`performance-noexcept-swap`<br/>
`bugprone-switch-missing-default-case`<br/>
`bugprone-empty-catch`<br/>
`performance-enum-size`<br/>
`readability-avoid-nested-conditional-operator`</br>

To be evaluated (need to remove exclusion).
Expand Down
3 changes: 2 additions & 1 deletion cli/cmdlineparser.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#define CMDLINE_PARSER_H

#include <cstddef>
#include <cstdint>
#include <list>
#include <string>
#include <vector>
Expand Down Expand Up @@ -55,7 +56,7 @@ class CmdLineParser {
*/
CmdLineParser(CmdLineLogger &logger, Settings &settings, Suppressions &suppressions);

enum class Result { Success, Exit, Fail };
enum class Result : std::uint8_t { Success, Exit, Fail };

/**
* @brief Parse command line args and fill settings and file lists
Expand Down
4 changes: 2 additions & 2 deletions cli/processexecutor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
#include <sys/prctl.h>
#endif

enum class Color;
enum class Color : std::uint8_t;

// NOLINTNEXTLINE(misc-unused-using-decls) - required for FD_ZERO
using std::memset;
Expand All @@ -73,7 +73,7 @@ ProcessExecutor::ProcessExecutor(const std::list<FileWithDetails> &files, const
namespace {
class PipeWriter : public ErrorLogger {
public:
enum PipeSignal {REPORT_OUT='1',REPORT_ERROR='2', CHILD_END='5'};
enum PipeSignal : std::uint8_t {REPORT_OUT='1',REPORT_ERROR='2', CHILD_END='5'};

explicit PipeWriter(int pipe) : mWpipe(pipe) {}

Expand Down
2 changes: 1 addition & 1 deletion cli/threadexecutor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
#include <utility>
#include <vector>

enum class Color;
enum class Color : std::uint8_t;

ThreadExecutor::ThreadExecutor(const std::list<FileWithDetails> &files, const std::list<FileSettings>& fileSettings, const Settings &settings, SuppressionList &suppressions, ErrorLogger &errorLogger, CppCheck::ExecuteCmdFn executeCommand)
: Executor(files, fileSettings, settings, suppressions, errorLogger)
Expand Down
3 changes: 2 additions & 1 deletion gui/checkthread.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include "suppressions.h"

#include <atomic>
#include <cstdint>
#include <string>
#include <vector>

Expand Down Expand Up @@ -115,7 +116,7 @@ class CheckThread : public QThread {
* has been completed. Thread must be stopped cleanly, just terminating thread
* likely causes unpredictable side-effects.
*/
enum State {
enum State : std::uint8_t {
Running, /**< The thread is checking. */
Stopping, /**< The thread will stop after current work. */
Stopped, /**< The thread has been stopped. */
Expand Down
4 changes: 3 additions & 1 deletion gui/codeeditor.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
#ifndef CODEEDITOR_H
#define CODEEDITOR_H

#include <cstdint>

#include <QObject>
#include <QPlainTextEdit>
#include <QRegularExpression>
Expand Down Expand Up @@ -51,7 +53,7 @@ class Highlighter : public QSyntaxHighlighter {
void highlightBlock(const QString &text) override;

private:
enum RuleRole {
enum RuleRole : std::uint8_t {
Keyword = 1,
Class = 2,
Comment = 3,
Expand Down
4 changes: 3 additions & 1 deletion gui/cppchecklibrarydata.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
#ifndef CPPCHECKLIBRARYDATA_H
#define CPPCHECKLIBRARYDATA_H

#include <cstdint>

#include <QList>
#include <QMap>
#include <QPair>
Expand Down Expand Up @@ -72,7 +74,7 @@ class CppcheckLibraryData {
struct Function {
QString comments;
QString name;
enum TrueFalseUnknown { False, True, Unknown } noreturn = Unknown;
enum TrueFalseUnknown : std::uint8_t { False, True, Unknown } noreturn = Unknown;
bool gccPure{};
bool gccConst{};
bool leakignore{};
Expand Down
4 changes: 3 additions & 1 deletion gui/mainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
#include "library.h"
#include "platforms.h"

#include <cstdint>

#include <QFileDialog>
#include <QMainWindow>
#include <QObject>
Expand Down Expand Up @@ -62,7 +64,7 @@ class MainWindow : public QMainWindow {
/**
* @brief Maximum number of MRU project items in File-menu.
*/
enum { MaxRecentProjects = 5 };
enum : std::uint8_t { MaxRecentProjects = 5 };

MainWindow(TranslationHandler* th, QSettings* settings);
MainWindow(const MainWindow &) = delete;
Expand Down
2 changes: 1 addition & 1 deletion gui/newsuppressiondialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
#include <QStringList>

class QWidget;
enum class Color;
enum class Color : std::uint8_t;

NewSuppressionDialog::NewSuppressionDialog(QWidget *parent) :
QDialog(parent),
Expand Down
3 changes: 2 additions & 1 deletion gui/projectfile.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#include "suppressions.h"

#include <cstddef>
#include <cstdint>
#include <map>
#include <utility>

Expand Down Expand Up @@ -53,7 +54,7 @@ class ProjectFile : public QObject {
if (this == mActiveProject) mActiveProject = nullptr;
}

enum class CheckLevel {
enum class CheckLevel : std::uint8_t {
normal,
exhaustive
};
Expand Down
4 changes: 3 additions & 1 deletion gui/report.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
#ifndef REPORT_H
#define REPORT_H

#include <cstdint>

#include <QFile>
#include <QObject>
#include <QString>
Expand All @@ -33,7 +35,7 @@ class ErrorItem;
*/
class Report : public QObject {
public:
enum Type {
enum Type : std::uint8_t {
TXT,
XMLV2,
CSV,
Expand Down
4 changes: 3 additions & 1 deletion gui/resultstree.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@

#include "showtypes.h"

#include <cstdint>

#include <QObject>
#include <QStandardItemModel>
#include <QString>
Expand All @@ -39,7 +41,7 @@ class ThreadHandler;
class QContextMenuEvent;
class QKeyEvent;
class QSettings;
enum class Severity;
enum class Severity : std::uint8_t;

/// @addtogroup GUI
/// @{
Expand Down
6 changes: 4 additions & 2 deletions gui/showtypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,11 @@
#ifndef SHOWTYPES_H
#define SHOWTYPES_H

#include <cstdint>

#include <QVariant>

enum class Severity;
enum class Severity : std::uint8_t;

/// @addtogroup GUI
/// @{
Expand All @@ -41,7 +43,7 @@ class ShowTypes {
/**
* @brief Show types we have (i.e. severities in the GUI).
*/
enum ShowType {
enum ShowType : std::uint8_t {
ShowStyle = 0,
ShowWarnings,
ShowPerformance,
Expand Down
12 changes: 7 additions & 5 deletions lib/analyzer.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@

#include "config.h"
#include "mathlib.h"

#include <cstdint>
#include <string>
#include <type_traits>
#include <vector>
Expand All @@ -43,7 +45,7 @@ struct Analyzer {
Action(T f) : mFlag(f) // cppcheck-suppress noExplicitConstructor
{}

enum {
enum : std::uint16_t {
None = 0,
Read = (1 << 0),
Write = (1 << 1),
Expand Down Expand Up @@ -130,7 +132,7 @@ struct Analyzer {
unsigned int mFlag{};
};

enum class Terminate { None, Bail, Escape, Modified, Inconclusive, Conditional };
enum class Terminate : std::uint8_t { None, Bail, Escape, Modified, Inconclusive, Conditional };

struct Result {
explicit Result(Action action = Action::None, Terminate terminate = Terminate::None)
Expand All @@ -146,18 +148,18 @@ struct Analyzer {
}
};

enum class Direction { Forward, Reverse };
enum class Direction : std::uint8_t { Forward, Reverse };

struct Assume {
enum Flags {
enum Flags : std::uint8_t {
None = 0,
Quiet = (1 << 0),
Absolute = (1 << 1),
ContainerEmpty = (1 << 2),
};
};

enum class Evaluate { Integral, ContainerEmpty };
enum class Evaluate : std::uint8_t { Integral, ContainerEmpty };

/// Analyze a token
virtual Action analyze(const Token* tok, Direction d) const = 0;
Expand Down
5 changes: 3 additions & 2 deletions lib/astutils.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#define astutilsH
//---------------------------------------------------------------------------

#include <cstdint>
#include <functional>
#include <list>
#include <stack>
Expand All @@ -39,7 +40,7 @@

class Settings;

enum class ChildrenToVisit {
enum class ChildrenToVisit : std::uint8_t {
none,
op1,
op2,
Expand Down Expand Up @@ -436,7 +437,7 @@ bool isConstVarExpression(const Token* tok, const std::function<bool(const Token

bool isLeafDot(const Token* tok);

enum class ExprUsage { None, NotUsed, PassedByReference, Used, Inconclusive };
enum class ExprUsage : std::uint8_t { None, NotUsed, PassedByReference, Used, Inconclusive };

ExprUsage getExprUsage(const Token* tok, int indirect, const Settings& settings);

Expand Down
2 changes: 1 addition & 1 deletion lib/checkclass.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3079,7 +3079,7 @@ void CheckClass::duplInheritedMembersError(const Token *tok1, const Token* tok2,
// Check that copy constructor and operator defined together
//---------------------------------------------------------------------------

enum class CtorType {
enum class CtorType : std::uint8_t {
NO,
WITHOUT_BODY,
WITH_BODY
Expand Down
5 changes: 3 additions & 2 deletions lib/checkclass.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#include "tokenize.h"
#include "symboldatabase.h"

#include <cstdint>
#include <list>
#include <map>
#include <set>
Expand Down Expand Up @@ -299,15 +300,15 @@ class CPPCHECKLIB CheckClass : public Check {
bool hasAllocation(const Function *func, const Scope* scope, const Token *start, const Token *end) const;
bool hasAllocationInIfScope(const Function *func, const Scope* scope, const Token *ifStatementScopeStart) const;
static bool hasAssignSelf(const Function *func, const Token *rhs, const Token *&out_ifStatementScopeStart);
enum class Bool { TRUE, FALSE, BAILOUT };
enum class Bool : std::uint8_t { TRUE, FALSE, BAILOUT };
static Bool isInverted(const Token *tok, const Token *rhs);
static const Token * getIfStmtBodyStart(const Token *tok, const Token *rhs);

// checkConst helper functions
bool isMemberVar(const Scope *scope, const Token *tok) const;
static bool isMemberFunc(const Scope *scope, const Token *tok);
static bool isConstMemberFunc(const Scope *scope, const Token *tok);
enum class MemberAccess { NONE, SELF, MEMBER };
enum class MemberAccess : std::uint8_t { NONE, SELF, MEMBER };
bool checkConstFunc(const Scope *scope, const Function *func, MemberAccess& memberAccessed) const;

// constructors helper function
Expand Down
2 changes: 1 addition & 1 deletion lib/checkcondition.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -689,7 +689,7 @@ void CheckCondition::multiCondition2()
});

// parse until second condition is reached..
enum MULTICONDITIONTYPE { INNER, AFTER };
enum MULTICONDITIONTYPE : std::uint8_t { INNER, AFTER };
const Token *tok;

// Parse inner condition first and then early return condition
Expand Down
6 changes: 3 additions & 3 deletions lib/checkio.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ void CheckIO::coutCerrMisusageError(const Token* tok, const std::string& streamN
// fopen("","r"); fwrite(); <- write to read-only file (or vice versa)
// fclose(); fread(); <- Use closed file
//---------------------------------------------------------------------------
enum class OpenMode { CLOSED, READ_MODE, WRITE_MODE, RW_MODE, UNKNOWN_OM };
enum class OpenMode : std::uint8_t { CLOSED, READ_MODE, WRITE_MODE, RW_MODE, UNKNOWN_OM };
static OpenMode getMode(const std::string& str)
{
if (str.find('+', 1) != std::string::npos)
Expand All @@ -112,9 +112,9 @@ namespace {
struct Filepointer {
OpenMode mode;
nonneg int mode_indent{};
enum class Operation {NONE, UNIMPORTANT, READ, WRITE, POSITIONING, OPEN, CLOSE, UNKNOWN_OP} lastOperation = Operation::NONE;
enum class Operation : std::uint8_t {NONE, UNIMPORTANT, READ, WRITE, POSITIONING, OPEN, CLOSE, UNKNOWN_OP} lastOperation = Operation::NONE;
nonneg int op_indent{};
enum class AppendMode { UNKNOWN_AM, APPEND, APPEND_EX };
enum class AppendMode : std::uint8_t { UNKNOWN_AM, APPEND, APPEND_EX };
AppendMode append_mode = AppendMode::UNKNOWN_AM;
std::string filename;
explicit Filepointer(OpenMode mode_ = OpenMode::UNKNOWN_OM)
Expand Down
3 changes: 2 additions & 1 deletion lib/checkio.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include "config.h"
#include "tokenize.h"

#include <cstdint>
#include <ostream>
#include <string>

Expand All @@ -33,7 +34,7 @@ class Settings;
class Token;
class Variable;
class ErrorLogger;
enum class Severity;
enum class Severity : std::uint8_t;

/// @addtogroup Checks
/// @{
Expand Down
2 changes: 1 addition & 1 deletion lib/checkleakautovar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1134,7 +1134,7 @@ void CheckLeakAutoVar::ret(const Token *tok, VarInfo &varInfo, const bool isEndO
// don't warn if we leave an inner scope
if (isEndOfScope && var->scope() && tok != var->scope()->bodyEnd)
continue;
enum class PtrUsage { NONE, DEREF, PTR } used = PtrUsage::NONE;
enum class PtrUsage : std::uint8_t { NONE, DEREF, PTR } used = PtrUsage::NONE;
for (const Token *tok2 = tok; tok2; tok2 = tok2->next()) {
if (tok2->str() == ";")
break;
Expand Down
Loading
Loading