Main Page   Alphabetical List   Compound List   File List   Compound Members   File Members  

cprim.c File Reference

#include "lclintMacros.nf"
#include "basic.h"

Go to the source code of this file.

Functions

cprim cprim_fromInt (int i)
bool cprim_closeEnoughDeep (cprim c1, cprim c2)
bool cprim_closeEnough (cprim c1, cprim c2)
cstring cprim_unparse (cprim c)
bool cprim_isInt (cprim c)


Function Documentation

bool cprim_closeEnough ( cprim c1,
cprim c2 )
 

Definition at line 75 of file cprim.c.

Referenced by ctype_isRegularInt().

00076 {
00077   return cprim_closeEnoughAux (c1, c2, FALSE);
00078 }

bool cprim_closeEnoughDeep ( cprim c1,
cprim c2 )
 

Definition at line 61 of file cprim.c.

00062 {
00063   /*
00064   ** If * c2 is passed as * c1
00065   ** Comparison is slightly different since it is safe to pass int as long,
00066   ** but not to pass int * as long *!
00067   **
00068   ** For deep comparisons, +relaxquals does not permit the long/int break.
00069   */
00070 
00071   return cprim_closeEnoughAux (c1, c2, TRUE);
00072 }

cprim cprim_fromInt ( int i )
 

Definition at line 42 of file cprim.c.

00043 {
00044   if (i < CTX_UNKNOWN || i > CTX_LAST)
00045     {
00046       llcontbug (message ("cprim_fromInt: out of range: %d", i));
00047       return CTX_UNKNOWN;
00048     }
00049   return (cprim) i;
00050 }

bool cprim_isInt ( cprim c )
 

Definition at line 407 of file cprim.c.

00408 {
00409   return (cprim_isAnyInt (c)
00410           || (cprim_isAnyChar (c) && context_msgCharInt ()));
00411 }

cstring cprim_unparse ( cprim c )
 

Definition at line 362 of file cprim.c.

00363 {
00364   switch (c)
00365     {
00366     case CTX_UNKNOWN:
00367       return cstring_makeLiteral ("-");
00368     case CTX_VOID:
00369       return cstring_makeLiteral ("void");
00370     case CTX_CHAR:
00371       return cstring_makeLiteral ("char");
00372     case CTX_UCHAR:
00373       return cstring_makeLiteral ("unsigned char");
00374    case CTX_DOUBLE:
00375       return cstring_makeLiteral ("double");
00376     case CTX_LDOUBLE:
00377       return cstring_makeLiteral ("long double");
00378     case CTX_FLOAT:
00379       return cstring_makeLiteral ("float");
00380     case CTX_INT:
00381       return cstring_makeLiteral ("int");
00382     case CTX_LINT:
00383       return cstring_makeLiteral ("long int");
00384     case CTX_LLINT:
00385       return cstring_makeLiteral ("long long");
00386     case CTX_ULLINT:
00387       return cstring_makeLiteral ("unsigned long long");
00388     case CTX_SINT:
00389       return cstring_makeLiteral ("short int");
00390     case CTX_UINT:
00391       return cstring_makeLiteral ("unsigned int");
00392     case CTX_ULINT:
00393       return cstring_makeLiteral ("unsigned long int");
00394     case CTX_USINT:
00395       return cstring_makeLiteral ("unsigned short int");
00396     case CTX_UNSIGNEDINTEGRAL:
00397       return cstring_makeLiteral ("arbitrary unsigned integral type");
00398     case CTX_SIGNEDINTEGRAL:
00399       return cstring_makeLiteral ("arbitrary signed integral type");
00400     case CTX_ANYINTEGRAL:
00401       return cstring_makeLiteral ("arbitrary integral type");
00402     default:
00403       return cstring_makeLiteral ("unknown prim");
00404     }
00405 }


Generated at Fri Nov 3 18:57:54 2000 for LCLint by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000