mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
Fix clang-tidy performance-unnecessary-copy-initialization warnings
This commit is contained in:
parent
909413838c
commit
cb8c35748a
15 changed files with 26 additions and 28 deletions
|
@ -6,6 +6,7 @@ Checks: [-*,
|
|||
performance-for-range-copy,
|
||||
performance-inefficient-vector-operation,
|
||||
performance-move-const-argument,
|
||||
performance-unnecessary-copy-initialization,
|
||||
|
||||
# Skipping these temporarily because they are very noisy
|
||||
-bugprone-narrowing-conversions,
|
||||
|
|
|
@ -1026,8 +1026,8 @@ ValPtr BinaryExpr::TableFold(Val* v1, Val* v2) const {
|
|||
}
|
||||
|
||||
ValPtr BinaryExpr::AddrFold(Val* v1, Val* v2) const {
|
||||
IPAddr a1 = v1->AsAddr();
|
||||
IPAddr a2 = v2->AsAddr();
|
||||
const IPAddr& a1 = v1->AsAddr();
|
||||
const IPAddr& a2 = v2->AsAddr();
|
||||
bool result = false;
|
||||
|
||||
switch ( tag ) {
|
||||
|
|
|
@ -694,8 +694,7 @@ struct type_checker {
|
|||
else if ( type->Tag() == TYPE_OPAQUE ) {
|
||||
// TODO: Could avoid doing the full unserialization here
|
||||
// and just check if the type is a correct match.
|
||||
auto cpy = a;
|
||||
auto ov = OpaqueVal::UnserializeData(BrokerListView{&cpy});
|
||||
auto ov = OpaqueVal::UnserializeData(BrokerListView{&a});
|
||||
return ov != nullptr;
|
||||
}
|
||||
|
||||
|
@ -729,14 +728,14 @@ std::optional<broker::data> val_to_data(const Val* v) {
|
|||
return {broker::port(p->Port(), to_broker_port_proto(p->PortType()))};
|
||||
}
|
||||
case TYPE_ADDR: {
|
||||
auto a = v->AsAddr();
|
||||
const auto& a = v->AsAddr();
|
||||
in6_addr tmp;
|
||||
a.CopyIPv6(&tmp);
|
||||
return {broker::address(reinterpret_cast<const uint32_t*>(&tmp), broker::address::family::ipv6,
|
||||
broker::address::byte_order::network)};
|
||||
} break;
|
||||
case TYPE_SUBNET: {
|
||||
auto s = v->AsSubNet();
|
||||
const auto& s = v->AsSubNet();
|
||||
in6_addr tmp;
|
||||
s.Prefix().CopyIPv6(&tmp);
|
||||
auto a = broker::address(reinterpret_cast<const uint32_t*>(&tmp), broker::address::family::ipv6,
|
||||
|
|
|
@ -1144,7 +1144,7 @@ string CPPCompile::GenListAssign(const ExprPtr& lhs, const ExprPtr& rhs) {
|
|||
}
|
||||
|
||||
string CPPCompile::GenVectorOp(const Expr* e, string op, const char* vec_op) {
|
||||
auto t = e->GetType();
|
||||
const auto& t = e->GetType();
|
||||
auto gen_t = GenTypeName(t);
|
||||
auto gen = string("vec_op_") + vec_op + "__CPP(" + op + ", " + gen_t + ")";
|
||||
|
||||
|
|
|
@ -190,7 +190,7 @@ void CPP_IndexedInits<T>::Generate(InitsManager* im, std::vector<AttrPtr>& ivec,
|
|||
}
|
||||
|
||||
case AE_RECORD: {
|
||||
auto t = im->Types(e_arg);
|
||||
const auto& t = im->Types(e_arg);
|
||||
auto rt = cast_intrusive<RecordType>(t);
|
||||
auto empty_vals = make_intrusive<ListExpr>();
|
||||
auto construct = make_intrusive<RecordConstructorExpr>(empty_vals);
|
||||
|
@ -410,7 +410,7 @@ TypePtr CPP_TypeInits::BuildRecordType(InitsManager* im, ValElemVec& init_vals,
|
|||
while ( i < n ) {
|
||||
auto s = im->Strings(init_vals[i++]);
|
||||
auto id = util::copy_string(s);
|
||||
auto type = im->Types(init_vals[i++]);
|
||||
const auto& type = im->Types(init_vals[i++]);
|
||||
auto attrs_i = init_vals[i++];
|
||||
|
||||
AttributesPtr attrs;
|
||||
|
@ -439,7 +439,7 @@ int CPP_FieldMapping::ComputeOffset(InitsManager* im) const {
|
|||
fm_offset = r->NumFields();
|
||||
|
||||
auto id = util::copy_string(field_name.c_str(), field_name.size());
|
||||
auto type = im->Types(field_type);
|
||||
const auto& type = im->Types(field_type);
|
||||
|
||||
AttributesPtr attrs;
|
||||
if ( field_attrs >= 0 )
|
||||
|
|
|
@ -1526,7 +1526,7 @@ ASTBlockAnalyzer::ASTBlockAnalyzer(std::vector<FuncInfo>& funcs) {
|
|||
|
||||
auto func = f.Func();
|
||||
auto fn = func->GetName();
|
||||
auto body = f.Body();
|
||||
const auto& body = f.Body();
|
||||
|
||||
// First get the line numbers all sorted out.
|
||||
SetBlockLineNumbers sbln;
|
||||
|
|
|
@ -471,7 +471,7 @@ bool Reducer::ExprValid(const ID* id, const Expr* e1, const Expr* e2) const {
|
|||
std::optional<ExprSideEffects>& e1_se = e1->GetOptInfo()->SideEffects();
|
||||
if ( ! e1_se ) {
|
||||
bool has_side_effects = false;
|
||||
auto e1_t = e1->GetType();
|
||||
const auto& e1_t = e1->GetType();
|
||||
|
||||
if ( e1_t->Tag() == TYPE_OPAQUE || e1_t->Tag() == TYPE_ANY )
|
||||
// These have difficult-to-analyze semantics.
|
||||
|
|
|
@ -1104,7 +1104,7 @@ StmtPtr AssertStmt::DoReduce(Reducer* c) {
|
|||
|
||||
bool WhenInfo::HasUnreducedIDs(Reducer* c) const {
|
||||
for ( auto& cp : *cl ) {
|
||||
auto cid = cp.Id();
|
||||
const auto& cid = cp.Id();
|
||||
|
||||
if ( when_new_locals.count(cid.get()) == 0 && ! c->ID_IsReduced(cp.Id()) )
|
||||
return true;
|
||||
|
|
|
@ -357,7 +357,7 @@ bool MultiZBI::Build(ZAMCompiler* zam, const NameExpr* n, const ExprPList& args)
|
|||
break;
|
||||
|
||||
case 2: {
|
||||
auto c2 = consts[1];
|
||||
const auto& c2 = consts[1];
|
||||
auto c2_t = c2->GetType()->Tag();
|
||||
|
||||
ASSERT(c2_t == TYPE_BOOL || c2_t == TYPE_INT || c2_t == TYPE_COUNT);
|
||||
|
|
|
@ -540,7 +540,7 @@ const ZAMStmt ZAMCompiler::CompileSchedule(const NameExpr* n, const ConstExpr* c
|
|||
}
|
||||
|
||||
const ZAMStmt ZAMCompiler::CompileEvent(EventHandler* h, const ListExpr* l) {
|
||||
auto exprs = l->Exprs();
|
||||
const auto& exprs = l->Exprs();
|
||||
unsigned int n = exprs.length();
|
||||
|
||||
bool all_vars = true;
|
||||
|
@ -895,7 +895,7 @@ const ZAMStmt ZAMCompiler::CompileIndex(const NameExpr* n1, int n2_slot, const T
|
|||
}
|
||||
}
|
||||
|
||||
auto indexes = l->Exprs();
|
||||
const auto& indexes = l->Exprs();
|
||||
|
||||
ZOp op;
|
||||
|
||||
|
@ -1515,7 +1515,7 @@ const ZAMStmt ZAMCompiler::ConstructVector(const NameExpr* n, const Expr* e) {
|
|||
}
|
||||
|
||||
const ZAMStmt ZAMCompiler::ArithCoerce(const NameExpr* n, const Expr* e) {
|
||||
auto nt = n->GetType();
|
||||
const auto& nt = n->GetType();
|
||||
auto nt_is_vec = nt->Tag() == TYPE_VECTOR;
|
||||
|
||||
auto op = e->GetOp1();
|
||||
|
|
|
@ -44,7 +44,7 @@ std::unique_ptr<OpaqueVals> ZAMCompiler::BuildVals(const ListExprPtr& l) {
|
|||
}
|
||||
|
||||
ZInstAux* ZAMCompiler::InternalBuildVals(const ListExpr* l, int stride) {
|
||||
auto exprs = l->Exprs();
|
||||
const auto& exprs = l->Exprs();
|
||||
int n = exprs.length();
|
||||
|
||||
auto aux = new ZInstAux(n * stride);
|
||||
|
|
|
@ -616,7 +616,7 @@ const ZAMStmt ZAMCompiler::TypeSwitch(const SwitchStmt* sw, const NameExpr* v, c
|
|||
}
|
||||
|
||||
const ZAMStmt ZAMCompiler::CompileWhile(const WhileStmt* ws) {
|
||||
auto loop_condition = ws->Condition();
|
||||
const auto& loop_condition = ws->Condition();
|
||||
|
||||
if ( loop_condition->Tag() == EXPR_CONST ) {
|
||||
if ( loop_condition->IsZero() )
|
||||
|
@ -1019,7 +1019,7 @@ const ZAMStmt ZAMCompiler::CompileWhen(const WhenStmt* ws) {
|
|||
aux->wi = wi;
|
||||
|
||||
for ( auto i = 0; i < n; ++i ) {
|
||||
auto la = local_aggr_slots[i];
|
||||
const auto& la = local_aggr_slots[i];
|
||||
aux->Add(i, FrameSlot(la), la->GetType());
|
||||
}
|
||||
|
||||
|
@ -1072,7 +1072,7 @@ const ZAMStmt ZAMCompiler::CompileAssert(const AssertStmt* as) {
|
|||
auto cond_desc = make_intrusive<StringVal>(new String(as->CondDesc()));
|
||||
auto cond_desc_e = make_intrusive<ConstExpr>(cond_desc);
|
||||
|
||||
if ( auto msg = as->Msg() ) {
|
||||
if ( const auto& msg = as->Msg() ) {
|
||||
auto& msg_setup_stmt = as->MsgSetupStmt();
|
||||
if ( msg_setup_stmt )
|
||||
(void)CompileStmt(msg_setup_stmt);
|
||||
|
|
|
@ -15,7 +15,7 @@ Key::Key(const void* session, size_t size, size_t type, bool copy) : size(size),
|
|||
copied = copy;
|
||||
}
|
||||
|
||||
Key::Key(Key&& rhs) {
|
||||
Key::Key(Key&& rhs) noexcept {
|
||||
data = rhs.data;
|
||||
size = rhs.size;
|
||||
copied = rhs.copied;
|
||||
|
@ -25,7 +25,7 @@ Key::Key(Key&& rhs) {
|
|||
rhs.copied = false;
|
||||
}
|
||||
|
||||
Key& Key::operator=(Key&& rhs) {
|
||||
Key& Key::operator=(Key&& rhs) noexcept {
|
||||
if ( this != &rhs ) {
|
||||
data = rhs.data;
|
||||
size = rhs.size;
|
||||
|
|
|
@ -44,8 +44,8 @@ public:
|
|||
|
||||
// Implement move semantics for Key, since they're used as keys
|
||||
// in a map.
|
||||
Key(Key&& rhs);
|
||||
Key& operator=(Key&& rhs);
|
||||
Key(Key&& rhs) noexcept;
|
||||
Key& operator=(Key&& rhs) noexcept;
|
||||
|
||||
// Explicitly delete the copy constructor and operator since copying
|
||||
// may cause issues with double-freeing pointers.
|
||||
|
|
|
@ -491,9 +491,7 @@ void ScriptTarget::DoGenerate() const {
|
|||
pkg_deps[i]->Generate();
|
||||
}
|
||||
|
||||
for ( size_t i = 0; i < dir_contents.size(); ++i ) {
|
||||
string f = dir_contents[i];
|
||||
|
||||
for ( const auto& f : dir_contents ) {
|
||||
if ( targets.find(f) != targets.end() )
|
||||
continue;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue