aboutsummaryrefslogtreecommitdiffstats
path: root/skeletons
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2012-09-03 01:09:54 -0700
committerLev Walkin <vlm@lionet.info>2012-09-03 01:09:54 -0700
commit271261813c0652a66311bc9d6b4def99f530bbe1 (patch)
tree653c458491cd4faa922c0cfbb20553b54cc3343b /skeletons
parentf59271171fa344a8619aac80db64ae90ed0b2ac0 (diff)
remove volatile from GeneralizedTime
Diffstat (limited to 'skeletons')
-rw-r--r--skeletons/GeneralizedTime.c17
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: