diff options
| author | Ben Boeckel <MathStuf@gmail.com> | 2008-12-26 12:00:14 -0500 |
|---|---|---|
| committer | Ben Boeckel <MathStuf@gmail.com> | 2008-12-26 12:00:14 -0500 |
| commit | 63961be3711be4543ffbcbdc4b667ecfbe7890ca (patch) | |
| tree | 6b0fd5140aa3a84d869efb40a8ab4b4736da171f | |
| parent | 914961ded95358677c578dc23e60e0a0cb4bf74d (diff) | |
Fixed up some macros
| -rw-r--r-- | sigmod/Macros.h | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/sigmod/Macros.h b/sigmod/Macros.h index 8c50ae70..acd71516 100644 --- a/sigmod/Macros.h +++ b/sigmod/Macros.h @@ -123,12 +123,17 @@ #define ERROR(msg) emit(error(msg)) #define EBOUNDS(variable, min, max) EBOUNDS_MOD(variable, (min), (max), variable) #define EBOUNDS_IDX(variable) emit(error(bounds(#variable, variable))) -#define EBOUNDS_MOD(variableName, min, max, variable) emit(error(bounds(#variableName, (min), (max), variable))) -#define TBOUNDS(variable, min, max) \ - if ((variable < (min)) || ((max) < variable)) \ +#define EBOUNDS_MOD(variable, min, max, value) emit(error(bounds(#variable, (min), (max), value))) +#define TBOUNDS(variable, min, max) TBOUNDS_MOD(variable, min, max, variable) +#define TBOUNDS_MOD(variable, min, max, value) \ { \ - EBOUNDS(variable, (min), (max)); \ - return false; \ + const __typeof(min) variable##_min = (min); \ + const __typeof(max) variable##_max = (max); \ + if ((value < variable##_min) || (variable##_max < value)) \ + { \ + EBOUNDS_MOD(variable, variable##_min, variable##_max, value); \ + return false; \ + } \ } #define IBOUNDS(variable, pointer, subclass) \ if (!pointer->subclass##ById(variable)) \ |
