Changes in src/prelude/builtins.c [e472d54:88e79ad]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/prelude/builtins.c
re472d54 r88e79ad 80 80 } // ?\? 81 81 82 // FIXME (x \ (unsigned long int)y) relies on X ?\?(T, unsigned long) a function that is neither 83 // defined, nor passed as an assertion parameter. Without user-defined conversions, cannot specify 84 // X as a type that casts to double, yet it doesn't make sense to write functions with that type 85 // signature where X is double. 86 87 // static inline forall( otype T | { void ?{}( T & this, one_t ); T ?*?( T, T ); double ?/?( double, T ); } ) 88 // double ?\?( T x, signed long int y ) { 89 // if ( y >= 0 ) return (double)(x \ (unsigned long int)y); 90 // else return 1.0 / x \ (unsigned long int)(-y); 91 // } // ?\? 82 static inline forall( otype T | { void ?{}( T & this, one_t ); T ?*?( T, T ); double ?/?( double, T ); } ) 83 double ?\?( T x, signed long int y ) { 84 if ( y >= 0 ) return (double)(x \ (unsigned long int)y); 85 else return 1.0 / x \ (unsigned long int)(-y); 86 } // ?\? 92 87 93 88 static inline long int ?\=?( long int & x, unsigned long int y ) { x = x \ y; return x; } … … 96 91 static inline unsigned int ?\=?( unsigned int & x, unsigned long int y ) { x = x \ y; return x; } 97 92 93 // type that wraps a pointer and a destructor-like function - used in generating implicit destructor calls for struct members in user-defined functions 94 forall(dtype T) 95 struct __Destructor { 96 T * object; 97 void (*dtor)(T *); 98 }; 99 100 // defined destructor in the case that non-generated code wants to use __Destructor 101 forall(dtype T) 102 static inline void ^?{}(__Destructor(T) & x) { 103 x.dtor(x.object); 104 } 105 106 // easy interface into __Destructor's destructor for easy codegen purposes 107 extern "C" { 108 forall(dtype T) 109 static inline void __destroy_Destructor(__Destructor(T) * dtor) { 110 ^(*dtor){}; 111 } 112 } 113 98 114 // Local Variables: // 99 115 // mode: c //
Note: See TracChangeset
for help on using the changeset viewer.