Changeset 88e79ad for src/prelude/builtins.c
- Timestamp:
- Oct 20, 2017, 2:00:55 PM (7 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 0b9be4d
- Parents:
- 72f85de
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/prelude/builtins.c
r72f85de r88e79ad 91 91 static inline unsigned int ?\=?( unsigned int & x, unsigned long int y ) { x = x \ y; return x; } 92 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 93 114 // Local Variables: // 94 115 // mode: c //
Note: See TracChangeset
for help on using the changeset viewer.