Changeset: 1981c548092e for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1981c548092e Modified Files: monetdb5/modules/mosaic/mosaic.c monetdb5/modules/mosaic/mosaic_utility.h Branch: mosaic Log Message:
Fix compiler issue's. diffs (67 lines): diff --git a/monetdb5/modules/mosaic/mosaic.c b/monetdb5/modules/mosaic/mosaic.c --- a/monetdb5/modules/mosaic/mosaic.c +++ b/monetdb5/modules/mosaic/mosaic.c @@ -361,22 +361,22 @@ MOSestimate_AND_MOSoptimizerCost_DEF(hge static str MOSestimate(MOStask task, BAT* estimates, size_t* compressed_size) { - str msg; switch(ATOMbasetype(task->type)){ - case TYPE_bte: msg = MOSestimate_bte(task, estimates, compressed_size); break; - case TYPE_sht: msg = MOSestimate_sht(task, estimates, compressed_size); break; - case TYPE_int: msg = MOSestimate_int(task, estimates, compressed_size); break; - case TYPE_lng: msg = MOSestimate_lng(task, estimates, compressed_size); break; - case TYPE_flt: msg = MOSestimate_flt(task, estimates, compressed_size); break; - case TYPE_dbl: msg = MOSestimate_dbl(task, estimates, compressed_size); break; + case TYPE_bte: return MOSestimate_bte(task, estimates, compressed_size); + case TYPE_sht: return MOSestimate_sht(task, estimates, compressed_size); + case TYPE_int: return MOSestimate_int(task, estimates, compressed_size); + case TYPE_lng: return MOSestimate_lng(task, estimates, compressed_size); + case TYPE_flt: return MOSestimate_flt(task, estimates, compressed_size); + case TYPE_dbl: return MOSestimate_dbl(task, estimates, compressed_size); #ifdef HAVE_HGE - case TYPE_hge: msg = MOSestimate_hge(task, estimates, compressed_size); break; + case TYPE_hge: return MOSestimate_hge(task, estimates, compressed_size); #endif - default: // Unknown block type. Should not happen. + default: + // Unknown block type. Should not happen. assert(0); } - return msg; + throw(MAL, "mosaic.estimate", TYPE_NOT_SUPPORTED); } static str diff --git a/monetdb5/modules/mosaic/mosaic_utility.h b/monetdb5/modules/mosaic/mosaic_utility.h --- a/monetdb5/modules/mosaic/mosaic_utility.h +++ b/monetdb5/modules/mosaic/mosaic_utility.h @@ -41,18 +41,21 @@ ALGEBRA_INTERFACES_INTEGERS_ONLY(NAME)\ ALGEBRA_INTERFACE(NAME, flt);\ ALGEBRA_INTERFACE(NAME, dbl); -#define DO_OPERATION_ON_INTEGERS_ONLY_bte(OPERATION, NAME, ...) do_##OPERATION(NAME, bte, __VA_ARGS__) -#define DO_OPERATION_ON_INTEGERS_ONLY_sht(OPERATION, NAME, ...) do_##OPERATION(NAME, sht, __VA_ARGS__) -#define DO_OPERATION_ON_INTEGERS_ONLY_int(OPERATION, NAME, ...) do_##OPERATION(NAME, int, __VA_ARGS__) -#define DO_OPERATION_ON_INTEGERS_ONLY_lng(OPERATION, NAME, ...) do_##OPERATION(NAME, lng, __VA_ARGS__) +// This is just an ugly work around for Microsoft Visual Studio to get the expansion of __VA_ARGS__ right. +#define EXPAND(X) X + +#define DO_OPERATION_ON_INTEGERS_ONLY_bte(OPERATION, NAME, ...) EXPAND(do_##OPERATION(NAME, bte, __VA_ARGS__)) +#define DO_OPERATION_ON_INTEGERS_ONLY_sht(OPERATION, NAME, ...) EXPAND(do_##OPERATION(NAME, sht, __VA_ARGS__)) +#define DO_OPERATION_ON_INTEGERS_ONLY_int(OPERATION, NAME, ...) EXPAND(do_##OPERATION(NAME, int, __VA_ARGS__)) +#define DO_OPERATION_ON_INTEGERS_ONLY_lng(OPERATION, NAME, ...) EXPAND(do_##OPERATION(NAME, lng, __VA_ARGS__)) #define DO_OPERATION_ON_INTEGERS_ONLY_flt(OPERATION, NAME, ...) assert(0) #define DO_OPERATION_ON_INTEGERS_ONLY_dbl(OPERATION, NAME, ...) assert(0) #ifdef HAVE_HGE -#define DO_OPERATION_ON_INTEGERS_ONLY_hge(OPERATION, NAME, ...) do_##OPERATION(NAME, hge, __VA_ARGS__) +#define DO_OPERATION_ON_INTEGERS_ONLY_hge(OPERATION, NAME, ...) EXPAND(do_##OPERATION(NAME, hge, __VA_ARGS__)) #endif #define DO_OPERATION_ON_INTEGERS_ONLY(OPERATION, NAME, TPE, ...) DO_OPERATION_ON_INTEGERS_ONLY_##TPE(OPERATION, NAME, __VA_ARGS__) -#define DO_OPERATION_ON_ALL_TYPES(OPERATION, NAME, TPE, ...) do_##OPERATION(NAME, TPE, __VA_ARGS__) +#define DO_OPERATION_ON_ALL_TYPES(OPERATION, NAME, TPE, ...) EXPAND(do_##OPERATION(NAME, TPE, __VA_ARGS__)) /*DUMMY_PARAM is just an ugly workaround for the fact that a variadic macro must have at least one variadic parameter*/ #define DO_OPERATION_IF_ALLOWED(OPERATION, NAME, TPE) DO_OPERATION_ON_##NAME(OPERATION, TPE, 0 /*DUMMY_PARAM*/) _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list