mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Merge remote-tracking branch 'origin/topic/vern/CPP-trim'
* origin/topic/vern/CPP-trim: suppress unneeded initializations address clang 10 warnings
This commit is contained in:
commit
fbcebb85a1
7 changed files with 40 additions and 25 deletions
4
CHANGES
4
CHANGES
|
@ -1,3 +1,7 @@
|
|||
4.2.0-dev.391 | 2021-11-29 13:44:11 -0700
|
||||
|
||||
* suppress unneeded initializations (Vern Paxson, Corelight)
|
||||
|
||||
4.2.0-dev.387 | 2021-11-24 13:32:33 -0700
|
||||
|
||||
* fixes for constructing and assigning records with fields that are empty vectors (Vern Paxson, Corelight)
|
||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
4.2.0-dev.387
|
||||
4.2.0-dev.391
|
||||
|
|
|
@ -64,6 +64,12 @@ void CPPCompile::Compile(bool report_uncompilable)
|
|||
// previously compiled instances of those if present.
|
||||
for ( const auto& func : funcs )
|
||||
{
|
||||
if ( func.ShouldSkip() )
|
||||
{
|
||||
not_fully_compilable.insert(func.Func()->Name());
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( func.Func()->Flavor() != FUNC_FLAVOR_FUNCTION )
|
||||
// Can't be called directly.
|
||||
continue;
|
||||
|
@ -94,7 +100,6 @@ void CPPCompile::Compile(bool report_uncompilable)
|
|||
{
|
||||
TypePtr tp{NewRef{}, (Type*)(t)};
|
||||
types.AddKey(tp, pfs.HashType(t));
|
||||
(void)RegisterType(tp);
|
||||
}
|
||||
|
||||
// ### This doesn't work for -O add-C++
|
||||
|
@ -102,13 +107,6 @@ void CPPCompile::Compile(bool report_uncompilable)
|
|||
|
||||
NL();
|
||||
|
||||
#if 0
|
||||
for ( auto gi : all_global_info )
|
||||
Emit(gi->Declare());
|
||||
|
||||
NL();
|
||||
#endif
|
||||
|
||||
for ( auto& g : pfs.AllGlobals() )
|
||||
CreateGlobal(g);
|
||||
|
||||
|
@ -126,6 +124,7 @@ void CPPCompile::Compile(bool report_uncompilable)
|
|||
// The scaffolding is now in place to go ahead and generate
|
||||
// the functions & lambdas. First declare them ...
|
||||
for ( const auto& func : funcs )
|
||||
if ( ! func.ShouldSkip() )
|
||||
DeclareFunc(func);
|
||||
|
||||
// We track lambdas by their internal names, because two different
|
||||
|
@ -148,6 +147,7 @@ void CPPCompile::Compile(bool report_uncompilable)
|
|||
|
||||
// ... and now generate their bodies.
|
||||
for ( const auto& func : funcs )
|
||||
if ( ! func.ShouldSkip() )
|
||||
CompileFunc(func);
|
||||
|
||||
lambda_names.clear();
|
||||
|
|
|
@ -240,6 +240,9 @@ void CPPCompile::GenStandaloneActivation()
|
|||
|
||||
for ( const auto& func : funcs )
|
||||
{
|
||||
if ( func.ShouldSkip() )
|
||||
continue;
|
||||
|
||||
auto f = func.Func();
|
||||
auto fname = BodyName(func);
|
||||
auto bname = Canonicalize(fname.c_str()) + "_zf";
|
||||
|
|
|
@ -382,19 +382,6 @@ static void generate_CPP(std::unique_ptr<ProfileFuncs>& pfs)
|
|||
|
||||
auto hm = std::make_unique<CPPHashManager>(hash_name.c_str());
|
||||
|
||||
if ( analysis_options.gen_CPP )
|
||||
{
|
||||
if ( analysis_options.only_func )
|
||||
{ // deactivate all functions except the target one
|
||||
for ( auto& func : funcs )
|
||||
{
|
||||
auto fn = func.Func()->Name();
|
||||
if ( *analysis_options.only_func != fn )
|
||||
func.SetSkip(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const auto gen_name = hash_dir + "CPP-gen.cc";
|
||||
const auto addl_name = hash_dir + "CPP-gen-addl.h";
|
||||
|
||||
|
@ -551,6 +538,19 @@ void analyze_scripts()
|
|||
// No work to do, avoid profiling overhead.
|
||||
return;
|
||||
|
||||
if ( analysis_options.gen_CPP )
|
||||
{
|
||||
if ( analysis_options.only_func )
|
||||
{ // deactivate all functions except the target one
|
||||
for ( auto& func : funcs )
|
||||
{
|
||||
auto fn = func.Func()->Name();
|
||||
if ( *analysis_options.only_func != fn )
|
||||
func.SetSkip(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Now that everything's parsed and BiF's have been initialized,
|
||||
// profile the functions.
|
||||
auto pfs = std::make_unique<ProfileFuncs>(funcs, is_CPP_compilable, false);
|
||||
|
|
|
@ -1099,7 +1099,7 @@ eval auto v = frame[z.v2].double_val;
|
|||
ZAM_run_time_error(z.loc, "underflow converting double to count");
|
||||
break;
|
||||
}
|
||||
if ( v > UINT64_MAX )
|
||||
if ( v > static_cast<double>(UINT64_MAX) )
|
||||
{
|
||||
ZAM_run_time_error(z.loc, "overflow converting double to count");
|
||||
break;
|
||||
|
|
|
@ -379,6 +379,13 @@ const ZAMStmt ZAMCompiler::GenCond(const Expr* e, int& branch_v)
|
|||
else
|
||||
branch_v = 2;
|
||||
|
||||
// clang 10 gets perturbed that the indentation of the "default" in the
|
||||
// following switch block doesn't match that of the cases that we include
|
||||
// from "ZAM-Conds.h". It really shouldn't worry about indentation mismatches
|
||||
// across included files since those are not indicative of possible
|
||||
// logic errors, but Oh Well.
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wmisleading-indentation"
|
||||
switch ( e->Tag() )
|
||||
{
|
||||
#include "ZAM-Conds.h"
|
||||
|
@ -386,6 +393,7 @@ const ZAMStmt ZAMCompiler::GenCond(const Expr* e, int& branch_v)
|
|||
default:
|
||||
reporter->InternalError("bad expression type in ZAMCompiler::GenCond");
|
||||
}
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
// Not reached.
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue