[Pkg-clamav-commits] [SCM] Debian repository for ClamAV branch, debian/unstable, updated. debian/0.95+dfsg-1-6156-g094ec9b

Török Edvin edwin at clamav.net
Sun Apr 4 01:13:06 UTC 2010


The following commit has been merged in the debian/unstable branch:
commit 3cd48316a3a6517fd205b35574c5bcd07f89f34e
Author: Török Edvin <edwin at clamav.net>
Date:   Thu Dec 17 10:58:38 2009 +0200

    Fix some compiler warnings.

diff --git a/libclamav/c++/bytecode2llvm.cpp b/libclamav/c++/bytecode2llvm.cpp
index 61f35f8..3f29233 100644
--- a/libclamav/c++/bytecode2llvm.cpp
+++ b/libclamav/c++/bytecode2llvm.cpp
@@ -175,6 +175,8 @@ public:
 		case DArrayType:
 		    Ty = ArrayType::get(Elts[0], type->numElements);
 		    break;
+		default:
+		    llvm_unreachable("type->kind");
 	    }
 	    // Make the opaque type a concrete type, doing recursive type
 	    // unification if needed.
@@ -199,21 +201,24 @@ private:
     const struct cli_bc *bc;
     Module *M;
     LLVMContext &Context;
+    ExecutionEngine *EE;
+    FunctionPassManager &PM;
     LLVMTypeMapper *TypeMap;
+
     Function **apiFuncs;
-    FunctionMapTy &compiledFunctions;
     LLVMTypeMapper &apiMap;
+    FunctionMapTy &compiledFunctions;
     Twine BytecodeID;
-    ExecutionEngine *EE;
+
     TargetFolder Folder;
     IRBuilder<false, TargetFolder> Builder;
+
     std::vector<Value*> globals;
+    DenseMap<unsigned, unsigned> GVoffsetMap;
+    DenseMap<unsigned, const Type*> GVtypeMap;
     Value **Values;
-    FunctionPassManager &PM;
     unsigned numLocals;
     unsigned numArgs;
-    DenseMap<unsigned, unsigned> GVoffsetMap;
-    DenseMap<unsigned, const Type*> GVtypeMap;
     std::vector<MDNode*> mdnodes;
 
     Value *getOperand(const struct cli_bc_func *func, const Type *Ty, operand_t operand)
@@ -305,6 +310,8 @@ private:
 		Ty = Type::getInt64Ty(Context);
 		v = *(uint64_t*)c;
 		break;
+	    default:
+		llvm_unreachable("width");
 	}
 	return ConstantInt::get(Ty, v);
     }
@@ -375,7 +382,7 @@ private:
 	   return ConstantStruct::get(STy, elements);
 	}
 	Ty->dump();
-	assert(0 && "Not reached");
+	llvm_unreachable("invalid type");
 	return 0;
     }
 
@@ -384,11 +391,11 @@ public:
     LLVMCodegen(const struct cli_bc *bc, Module *M, FunctionMapTy &cFuncs,
 		ExecutionEngine *EE, FunctionPassManager &PM,
 		Function **apiFuncs, LLVMTypeMapper &apiMap)
-	: bc(bc), M(M), Context(M->getContext()), compiledFunctions(cFuncs),
-	BytecodeID("bc"+Twine(bc->id)), EE(EE),
-	Folder(EE->getTargetData()), Builder(Context, Folder), PM(PM),
-	apiFuncs(apiFuncs), apiMap(apiMap)
-    {
+	: bc(bc), M(M), Context(M->getContext()), EE(EE),
+	PM(PM), apiFuncs(apiFuncs),apiMap(apiMap),
+	compiledFunctions(cFuncs), BytecodeID("bc"+Twine(bc->id)),
+	Folder(EE->getTargetData()), Builder(Context, Folder) {
+
 	for (unsigned i=0;i<cli_apicall_maxglobal - _FIRST_GLOBAL;i++) {
 	    unsigned id = cli_globals[i].globalid;
 	    GVoffsetMap[id] = cli_globals[i].offset;
@@ -478,7 +485,7 @@ public:
 	FHandler->setDoesNotReturn();
 	FHandler->setDoesNotThrow();
 	FHandler->addFnAttr(Attribute::NoInline);
-	EE->addGlobalMapping(FHandler, (void*)jit_exception_handler);
+	EE->addGlobalMapping(FHandler, (void*)(intptr_t)jit_exception_handler);
 
 	std::vector<const Type*> args;
 	args.push_back(PointerType::getUnqual(Type::getInt8Ty(Context)));
@@ -512,13 +519,13 @@ public:
 	FunctionType* DummyTy = FunctionType::get(Type::getVoidTy(Context), false);
 	Function *FRealMemset = Function::Create(DummyTy, GlobalValue::ExternalLinkage,
 						 "memset", M);
-	EE->addGlobalMapping(FRealMemset, (void*)memset);
+	EE->addGlobalMapping(FRealMemset, (void*)(intptr_t)memset);
 	Function *FRealMemmove = Function::Create(DummyTy, GlobalValue::ExternalLinkage,
 						 "memmove", M);
-	EE->addGlobalMapping(FRealMemmove, (void*)memmove);
+	EE->addGlobalMapping(FRealMemmove, (void*)(intptr_t)memmove);
 	Function *FRealMemcpy = Function::Create(DummyTy, GlobalValue::ExternalLinkage,
 						 "memcpy", M);
-	EE->addGlobalMapping(FRealMemcpy, (void*)memcpy);
+	EE->addGlobalMapping(FRealMemcpy, (void*)(intptr_t)memcpy);
 
 	args.clear();
 	args.push_back(PointerType::getUnqual(Type::getInt8Ty(Context)));
@@ -527,7 +534,7 @@ public:
 	FunctionType* FuncTy_5 = FunctionType::get(Type::getInt32Ty(Context),
 						   args, false);
 	Function* FRealMemcmp = Function::Create(FuncTy_5, GlobalValue::ExternalLinkage, "memcmp", M);
-	EE->addGlobalMapping(FRealMemcmp, (void*)memcmp);
+	EE->addGlobalMapping(FRealMemcmp, (void*)(intptr_t)memcmp);
 
 	// The hidden ctx param to all functions
 	const Type *HiddenCtx = PointerType::getUnqual(Type::getInt8Ty(Context));
@@ -591,7 +598,7 @@ public:
 	    Values = new Value*[func->numValues];
 	    Builder.SetInsertPoint(BB[0]);
 	    Function::arg_iterator I = F->arg_begin();
-	    assert(F->arg_size() == func->numArgs + 1 && "Mismatched args");
+	    assert(F->arg_size() == (unsigned)(func->numArgs + 1) && "Mismatched args");
 	    ++I;
 	    for (unsigned i=0;i<func->numArgs; i++) {
 		assert(I != F->arg_end());
@@ -611,7 +618,6 @@ public:
 
 	    if (FakeGVs.any()) {
 		Argument *Ctx = F->arg_begin();
-		struct cli_bc_ctx *N = 0;
 		for (unsigned i=0;i<bc->num_globals;i++) {
 		    if (!FakeGVs[i])
 			continue;
@@ -859,7 +865,6 @@ public:
 			case OP_BC_CALL_API:
 			{
 			    assert(inst->u.ops.funcid < cli_apicall_maxapi && "APICall out of range");
-			    const struct cli_apicall *api = &cli_apicalls[inst->u.ops.funcid];
 			    std::vector<Value*> args;
 			    Function *DestF = apiFuncs[inst->u.ops.funcid];
 			    args.push_back(&*F->arg_begin()); // pass hidden arg
@@ -1051,8 +1056,8 @@ int cli_vm_execute_jit(const struct cli_all_bc *bcs, struct cli_bc_ctx *ctx,
     // execute;
     if (setjmp(env) == 0) {
 	// setup exception handler to longjmp back here
-	ExceptionReturn.set(&env);
-	uint32_t result = ((uint32_t (*)(struct cli_bc_ctx *))code)(ctx);
+	ExceptionReturn.set((const jmp_buf*)&env);
+	uint32_t result = ((uint32_t (*)(struct cli_bc_ctx *))(intptr_t)code)(ctx);
 	*(uint32_t*)ctx->values = result;
 	return 0;
     }
@@ -1069,7 +1074,7 @@ int cli_bytecode_prepare_jit(struct cli_all_bc *bcs)
       return CL_EBYTECODE;
   jmp_buf env;
   // setup exception handler to longjmp back here
-  ExceptionReturn.set(&env);
+  ExceptionReturn.set((const jmp_buf*)&env);
   if (setjmp(env) != 0) {
       errs() << "\n";
       errs().changeColor(raw_ostream::RED, true) << MODULE 
@@ -1124,11 +1129,13 @@ int cli_bytecode_prepare_jit(struct cli_all_bc *bcs)
 	    void *dest;
 	    switch (api->kind) {
 		case 0:
-		    dest = (void*)cli_apicalls0[api->idx];
+		    dest = (void*)(intptr_t)cli_apicalls0[api->idx];
 		    break;
 		case 1:
-		    dest = (void*)cli_apicalls1[api->idx];
+		    dest = (void*)(intptr_t)cli_apicalls1[api->idx];
 		    break;
+		default:
+		    llvm_unreachable("invalid api type");
 	    }
 	    EE->addGlobalMapping(F, dest);
 	    apiFuncs[i] = F;
@@ -1221,13 +1228,13 @@ void cli_bytecode_debug(int argc, char **argv)
   cl::ParseCommandLineOptions(argc, argv);
 }
 
-struct lines {
+typedef struct lines {
     MemoryBuffer *buffer;
     std::vector<const char*> linev;
-};
+} linesTy;
 
 static struct lineprinter {
-    StringMap<struct lines*> files;
+    StringMap<linesTy*> files;
 } LinePrinter;
 
 void cli_bytecode_debug_printsrc(const struct cli_bc_ctx *ctx)
@@ -1241,10 +1248,10 @@ void cli_bytecode_debug_printsrc(const struct cli_bc_ctx *ctx)
     sys::SmartScopedLock<false> lock(mtx);
 
     std::string path = std::string(ctx->directory) + "/" + std::string(ctx->file);
-    StringMap<struct lines*>::iterator I = LinePrinter.files.find(path);
-    struct lines *lines;
+    StringMap<linesTy*>::iterator I = LinePrinter.files.find(path);
+    linesTy *lines;
     if (I == LinePrinter.files.end()) {
-	lines = new struct lines;
+	lines = new linesTy;
 	std::string ErrorMessage;
 	lines->buffer = MemoryBuffer::getFile(path, &ErrorMessage);
 	if (!lines->buffer) {

-- 
Debian repository for ClamAV



More information about the Pkg-clamav-commits mailing list