Skip to content

Commit

Permalink
Address Coverity's complaints
Browse files Browse the repository at this point in the history
Coverity: CID 211805 211803 211793 211791 211781 211778 211777 211766 211706
  • Loading branch information
Keno committed May 24, 2019
1 parent 798f64b commit 5c251ee
Show file tree
Hide file tree
Showing 10 changed files with 27 additions and 23 deletions.
10 changes: 6 additions & 4 deletions src/ccall.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ static bool runtime_sym_gvs(const char *f_lib, const char *f_name, MT &&M,
symMap = &libgv.second;
libsym = jl_get_library(f_lib);
assert(libsym != NULL);
*(void**)jl_emit_and_add_to_shadow(libptrgv) = libsym;
*jl_emit_and_add_to_shadow(libptrgv) = libsym;
}
else {
libptrgv = iter->second.first;
Expand Down Expand Up @@ -116,7 +116,7 @@ static bool runtime_sym_gvs(const char *f_lib, const char *f_name, MT &&M,
(*symMap)[f_name] = std::make_pair(llvmgv, addr);
if (symaddr)
*symaddr = addr;
*(void**)jl_emit_and_add_to_shadow(llvmgv) = addr;
*jl_emit_and_add_to_shadow(llvmgv) = addr;
}
else {
if (symaddr)
Expand Down Expand Up @@ -238,7 +238,7 @@ static GlobalVariable *emit_plt_thunk(
GlobalVariable *got = new GlobalVariable(*M, T_pvoidfunc, false,
GlobalVariable::ExternalLinkage,
nullptr, gname);
*(void**)jl_emit_and_add_to_shadow(got) = symaddr;
*jl_emit_and_add_to_shadow(got) = symaddr;
BasicBlock *b0 = BasicBlock::Create(jl_LLVMContext, "top", plt);
IRBuilder<> irbuilder(b0);
Value *ptr = runtime_sym_lookup(irbuilder, funcptype, f_lib, f_name, plt, libptrgv,
Expand Down Expand Up @@ -1426,7 +1426,9 @@ static jl_cgval_t emit_ccall(jl_codectx_t &ctx, jl_value_t **args, size_t nargs)
// method involving `jl_dlsym()` on Linux platforms instead.
#ifdef _OS_LINUX_
jl_ptls_t (*p)(void);
jl_dlsym(jl_dlopen(nullptr, 0), "jl_get_ptls_states", (void **)&p, 0);
void *handle = jl_dlopen(nullptr, 0);
jl_dlsym(handle, "jl_get_ptls_states", (void **)&p, 0);
jl_dlclose(handle);
return p;
#else
return &jl_get_ptls_states;
Expand Down
7 changes: 4 additions & 3 deletions src/cgmemmgr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,10 @@ static bool check_fd_or_close(int fd)
{
if (fd == -1)
return false;
fcntl(fd, F_SETFD, FD_CLOEXEC);
fchmod(fd, S_IRWXU);
if (ftruncate(fd, jl_page_size) != 0) {
int err = fcntl(fd, F_SETFD, FD_CLOEXEC);
assert(err == 0);
if (fchmod(fd, S_IRWXU) != 0 ||
ftruncate(fd, jl_page_size) != 0) {
close(fd);
return false;
}
Expand Down
7 changes: 2 additions & 5 deletions src/codegen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1101,11 +1101,7 @@ jl_code_instance_t *jl_compile_linfo(jl_method_instance_t *mi, jl_code_info_t *s
if (codeinst->min_world <= world && world <= codeinst->max_world) {
jl_llvm_functions_t decls = codeinst->functionObjectsDecls;
bool already_compiled = params->cached && decls.functionObject != NULL;
if (!src) {
if (already_compiled || codeinst->invoke == jl_fptr_const_return)
goto locked_out;
}
else if (already_compiled) {
if (already_compiled) {
goto locked_out;
}
}
Expand Down Expand Up @@ -1634,6 +1630,7 @@ void *jl_get_llvmf_decl(jl_method_instance_t *mi, size_t world, bool getwrapper,
return returninfo.decl;
}
}
assert(decls.functionObject);
auto f = Function::Create(jl_func_sig, GlobalVariable::ExternalLinkage, decls.functionObject);
add_return_attr(f, Attribute::NonNull);
f->addFnAttr(Thunk);
Expand Down
4 changes: 2 additions & 2 deletions src/datatype.c
Original file line number Diff line number Diff line change
Expand Up @@ -852,6 +852,8 @@ JL_DLLEXPORT jl_value_t *jl_new_structt(jl_datatype_t *type, jl_value_t *tup)
jl_ptls_t ptls = jl_get_ptls_states();
if (!jl_is_tuple(tup))
jl_type_error("new", (jl_value_t*)jl_tuple_type, tup);
if (type->layout == NULL)
jl_type_error("new", (jl_value_t *)jl_datatype_type, (jl_value_t *)type);
size_t nargs = jl_nfields(tup);
size_t nf = jl_datatype_nfields(type);
JL_NARGS(new, nf, nf);
Expand All @@ -866,8 +868,6 @@ JL_DLLEXPORT jl_value_t *jl_new_structt(jl_datatype_t *type, jl_value_t *tup)
}
return type->instance;
}
if (type->layout == NULL)
jl_type_error("new", (jl_value_t*)jl_datatype_type, (jl_value_t*)type);
jl_value_t *jv = jl_gc_alloc(ptls, jl_datatype_size(type), type);
jl_value_t *fi = NULL;
JL_GC_PUSH2(&jv, &fi);
Expand Down
1 change: 1 addition & 0 deletions src/dump.c
Original file line number Diff line number Diff line change
Expand Up @@ -3072,6 +3072,7 @@ static jl_method_t *jl_lookup_method_worldset(jl_methtable_t *mt, jl_datatype_t
while (1) {
entry = jl_typemap_assoc_by_type(
mt->defs, (jl_value_t*)sig, NULL, /*subtype*/0, /*offs*/0, world, /*max_world_mask*/(~(size_t)0) >> 1);
assert(entry);
jl_method_t *_new = (jl_method_t*)entry->func.value;
world = lowerbound_dependent_world_set(_new->primary_world, dependent_worlds);
if (world == _new->primary_world) {
Expand Down
1 change: 1 addition & 0 deletions src/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,7 @@ static void *init_stdio_handle(const char *stdio, uv_os_fd_t fd, int readable)
{
int nullfd;
nullfd = open("/dev/null", O_RDWR, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH /* 0666 */);
assert(nullfd != -1);
dup2(nullfd, fd);
close(nullfd);
}
Expand Down
12 changes: 6 additions & 6 deletions src/jitlayers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -433,9 +433,9 @@ JuliaOJIT::JuliaOJIT(TargetMachine &TM)
// Make sure SectionMemoryManager::getSymbolAddressInProcess can resolve
// symbols in the program as well. The nullptr argument to the function
// tells DynamicLibrary to load the program, not a library.
std::string *ErrorStr = nullptr;
if (sys::DynamicLibrary::LoadLibraryPermanently(nullptr, ErrorStr))
report_fatal_error("FATAL: unable to dlopen self\n" + *ErrorStr);
std::string ErrorStr;
if (sys::DynamicLibrary::LoadLibraryPermanently(nullptr, &ErrorStr))
report_fatal_error("FATAL: unable to dlopen self\n" + ErrorStr);
}

void JuliaOJIT::addGlobalMapping(StringRef Name, uint64_t Addr)
Expand Down Expand Up @@ -873,7 +873,7 @@ static std::map<void*, jl_value_llvm> jl_value_to_llvm;
//
// then add a global mapping to the current value (usually from calloc'd space)
// to the execution engine to make it valid for the current session (with the current value)
void* jl_emit_and_add_to_shadow(GlobalVariable *gv, void *gvarinit)
void** jl_emit_and_add_to_shadow(GlobalVariable *gv, void *gvarinit)
{
PointerType *T = cast<PointerType>(gv->getType()->getElementType()); // pointer is the only supported type here

Expand All @@ -896,7 +896,7 @@ void* jl_emit_and_add_to_shadow(GlobalVariable *gv, void *gvarinit)
}

// make the pointer valid for this session
void *slot = calloc(1, sizeof(void*));
void **slot = (void**)calloc(1, sizeof(void*));
jl_ExecutionEngine->addGlobalMapping(gv, slot);
return slot;
}
Expand Down Expand Up @@ -1150,7 +1150,7 @@ GlobalVariable *jl_get_global_for(const char *cname, void *addr, Module *M)
GlobalVariable *gv = new GlobalVariable(*M, T_pjlvalue,
false, GlobalVariable::ExternalLinkage,
NULL, gvname.str());
*(void**)jl_emit_and_add_to_shadow(gv, addr) = addr;
*jl_emit_and_add_to_shadow(gv, addr) = addr;
return gv;
}

Expand Down
2 changes: 1 addition & 1 deletion src/jitlayers.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ typedef struct {Value *gv; int32_t index;} jl_value_llvm; // uses 1-based indexi

void addTargetPasses(legacy::PassManagerBase *PM, TargetMachine *TM);
void addOptimizationPasses(legacy::PassManagerBase *PM, int opt_level, bool lower_intrinsics=true, bool dump_native=false);
void* jl_emit_and_add_to_shadow(GlobalVariable *gv, void *gvarinit = NULL);
void** jl_emit_and_add_to_shadow(GlobalVariable *gv, void *gvarinit = NULL);
void* jl_get_globalvar(GlobalVariable *gv);
GlobalVariable *jl_get_global_for(const char *cname, void *addr, Module *M);
void jl_add_to_shadow(Module *m);
Expand Down
2 changes: 1 addition & 1 deletion src/runtime_ccall.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ jl_value_t *jl_get_cfunction_trampoline(

// not found, allocate a new one
size_t n = jl_svec_len(fill);
void **nval = (void**)malloc(sizeof(void**) * (n + 1));
void **nval = (void**)malloc(sizeof(void*) * (n + 1));
nval[0] = (void*)fobj;
jl_value_t *result;
JL_TRY {
Expand Down
4 changes: 3 additions & 1 deletion src/sys.c
Original file line number Diff line number Diff line change
Expand Up @@ -493,7 +493,9 @@ JL_DLLEXPORT long jl_getpagesize(void)
#else
JL_DLLEXPORT long jl_getpagesize(void)
{
return sysconf(_SC_PAGESIZE);
long page_size = sysconf(_SC_PAGESIZE);
assert(page_size != -1);
return page_size;
}
#endif

Expand Down

0 comments on commit 5c251ee

Please sign in to comment.