Changeset 1152


Ignore:
Timestamp:
Aug 11, 2003, 2:03:40 PM (17 years ago)
Author:
luba
Message:
  • checking of argument of type_int is corrected
Location:
to-imperative/trunk/library/Access
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • to-imperative/trunk/library/Access/l.cc

    r1129 r1152  
    77#include <rf_short_int.hh>
    88#include <rf_integer.hh>
     9#include <stdint.h>
    910
    1011namespace refal
     
    2627  {
    2728    intptr_t l = static_cast<Int32*>(p_Left)->to_int();
    28     if (l < 0 || uintptr_t(l) > SIZE_MAX)
     29    if (l < 0 || uintptr_t(l) > SIZE_MAX) 
    2930      RF_LIB_ERROR("Invalid argument");
    3031    left = l;
     
    3435  {
    3536    Integer* Left = static_cast<Integer*>(p_Left);
    36     intptr_t l = Left->to_int();
    37     if (Left->cmp(0) < 0 || uintptr_t(l) > SIZE_MAX)
     37    if (Left->cmp(0) < 0 || Left->cmp(SIZE_MAX) > 0)
    3838      RF_LIB_ERROR("Invalid argument");
    39     else
     39    else {
     40      intptr_t l = Left->to_int();
    4041      left = l;
     42    }
    4143  }
    4244  else
    43   {
    4445    RF_LIB_ERROR("Invalid argument");
    45   }
    4646
    4747  if (e_Exp.get_len() == 0 || left > e_Exp.get_len() - 1)
  • to-imperative/trunk/library/Access/left.cc

    r1129 r1152  
    3333  if (p_Left->get_type() == type_int) {
    3434    Integer* Left = static_cast<Integer*>(p_Left);
    35     intptr_t l = Left->to_int();
    36     if (Left->cmp(0) < 0 || uintptr_t(l) > SIZE_MAX)
     35    if (Left->cmp(0) < 0 || Left->cmp(SIZE_MAX) > 0)
    3736      RF_LIB_ERROR("Invalid argument");
    38     else
     37    else {
     38      intptr_t l = Left->to_int();
    3939      left = l;
     40    }
    4041  }
    4142  else
     
    5455  if (p_Len->get_type() == type_int) {
    5556    Integer* Len = static_cast<Integer*>(p_Len);
    56     intptr_t l = Len->to_int();
    57     if (Len->cmp(0) < 0 || uintptr_t(l) > SIZE_MAX)
     57    if (Len->cmp(0) < 0 || Len->cmp(SIZE_MAX) > 0)
    5858      RF_LIB_ERROR("Invalid argument");
    59     else
    60       length = l;
     59    else {
     60      intptr_t len = Len->to_int();
     61      length = len;
     62    }
    6163  }
    6264  else
  • to-imperative/trunk/library/Access/middle.cc

    r1129 r1152  
    3333  if (p_Left->get_type() == type_int) {
    3434    Integer* Left = static_cast<Integer*>(p_Left);
    35     intptr_t l = Left->to_int();
    36     if (Left->cmp(0) < 0 || uintptr_t(l) > SIZE_MAX)
     35    if (Left->cmp(0) < 0 || Left->cmp(SIZE_MAX) > 0)
    3736      RF_LIB_ERROR("Invalid argument");
    38     else
     37    else {
     38      intptr_t l = Left->to_int();
    3939      left = l;
     40    }
    4041  }
    4142  else
    42   {
    4343    RF_LIB_ERROR("Invalid argument");
    44   }
     44
    4545  if (p_Right->get_type() == type_int32)
    4646  {
     
    5353  if (p_Right->get_type() == type_int) {
    5454    Integer* Right = static_cast<Integer*>(p_Right);
    55     intptr_t r = Right->to_int();
    56     if (Right->cmp(0) < 0 || uintptr_t(r) > SIZE_MAX)
     55    if (Right->cmp(0) < 0 || Right->cmp(SIZE_MAX) > 0)
    5756      RF_LIB_ERROR("Invalid argument");
    58     else
     57    else {
     58      intptr_t r = Right->to_int();
    5959      right = r;
     60    }
    6061  }
    6162  else
    62   {
    6363    RF_LIB_ERROR("Invalid argument");
    64   }
    6564
    6665  if (left > e_Exp.get_len())
  • to-imperative/trunk/library/Access/r.cc

    r1129 r1152  
    2929  {
    3030    Integer* Right = static_cast<Integer*>(p_Right);
    31     intptr_t r = Right->to_int();
    32     if (Right->cmp(0) < 0 || uintptr_t(r) > SIZE_MAX)
     31    if (Right->cmp(0) < 0 || Right->cmp(SIZE_MAX) > 0)
    3332      RF_LIB_ERROR("Invalid argument");
    34     else
     33    else {
     34      intptr_t r = Right->to_int();
    3535      right = r;
     36    }
    3637  }
    3738  else
    38   {
    3939    RF_LIB_ERROR("Invalid argument");
    40   }
    4140
    4241  if (e_Exp.get_len() == 0 || right > e_Exp.get_len() - 1)
  • to-imperative/trunk/library/Access/right.cc

    r1129 r1152  
    3535  {
    3636    Integer* Len = static_cast<Integer*>(p_Len);
    37     intptr_t l = Len->to_int();
    38     if (Len->cmp(0) < 0 || uintptr_t(l) > SIZE_MAX)
     37    if (Len->cmp(0) < 0 || Len->cmp(SIZE_MAX) > 0)
    3938      RF_LIB_ERROR("Invalid argument");
    40     else
    41       length = l;
     39    else {
     40      intptr_t len = Len->to_int();
     41      length = len;
     42    }
    4243  }
    4344  else
    44   {
    4545    RF_LIB_ERROR("Invalid argument");
    46   }
    4746   
    4847  if (p_Right->get_type() == type_int32)
     
    5655  if (p_Right->get_type() == type_int) {
    5756    Integer* Right = static_cast<Integer*>(p_Right);
    58     intptr_t r = Right->to_int();
    59     if (Right->cmp(0) < 0 || uintptr_t(r) > SIZE_MAX)
     57    if (Right->cmp(0) < 0 || Right->cmp(SIZE_MAX) > 0)
    6058      RF_LIB_ERROR("Invalid argument");
    61     else
     59    else {
     60      intptr_t r = Right->to_int();
    6261      right = r;
     62    }
    6363  }
    6464  else
    65   {
    6665    RF_LIB_ERROR("Invalid argument");
    67   }
    6866   
    6967  if (length > e_Exp.get_len())
Note: See TracChangeset for help on using the changeset viewer.