diff options
author | Lev Walkin <vlm@lionet.info> | 2012-09-03 01:09:54 -0700 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2012-09-03 01:09:54 -0700 |
commit | 271261813c0652a66311bc9d6b4def99f530bbe1 (patch) | |
tree | 653c458491cd4faa922c0cfbb20553b54cc3343b /skeletons | |
parent | f59271171fa344a8619aac80db64ae90ed0b2ac0 (diff) |
remove volatile from GeneralizedTime
Diffstat (limited to 'skeletons')
-rw-r--r-- | skeletons/GeneralizedTime.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/skeletons/GeneralizedTime.c b/skeletons/GeneralizedTime.c index 7794bd43..c4a547a0 100644 --- a/skeletons/GeneralizedTime.c +++ b/skeletons/GeneralizedTime.c @@ -314,14 +314,14 @@ asn_GT2time_prec(const GeneralizedTime_t *st, int *frac_value, int frac_digits, while(fd > frac_digits) fv /= 10, fd--; while(fd < frac_digits) { - int volatile new_fv = fv * 10; - /* GCC 4.x is being too smart without volatile */ - if(new_fv / 10 != fv) { + if(fv < INT_MAX / 10) { + fv *= 10; + fd++; + } else { /* Too long precision request */ fv = 0; break; } - fv = new_fv, fd++; } *frac_value = fv; @@ -447,12 +447,11 @@ asn_GT2time_frac(const GeneralizedTime_t *st, int *frac_value, int *frac_digits, switch(v) { case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: - new_fvalue = fvalue * 10 + (v - 0x30); - if(new_fvalue / 10 != fvalue) { - /* Not enough precision, ignore */ - } else { - fvalue = new_fvalue; + if(fvalue < INT_MAX/10) { + fvalue = fvalue * 10 + (v - 0x30); fdigits++; + } else { + /* Not enough precision, ignore */ } continue; default: |