#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define STRINGIZE(x) #x
#define LINEFILE(x) "Line " STRINGIZE(x) " of File " __FILE__
#define LINE_FILE LINEFILE(__LINE__)
/* Comment out the next line to disable debugging diagnostics. */
#define DEBUG_D
#ifdef DEBUG_D
/* Debugging functions and variables. */
static unsigned long malloc_b = 0;
static unsigned long malloc_c = 0;
static unsigned long free_c = 0;
static inline void* dmalloc(size_t size);
static inline void dfree(void* object);
static inline void dprintc(void);
static inline void* dmalloc(size_t size)
{
malloc_b += size;
++malloc_c;
}
static inline void dfree(void* object)
{
++free_c;
}
static inline void dprintc(void)
{
fprintf(stderr
, "\nAllocated %lu bytes; malloc() called: %lu.\nfree() called: %lu.\n", malloc_b, malloc_c, free_c);
}
#define malloc dmalloc
#define free dfree
#endif /* ifdef DEBUG_D */
static inline void swap(void* A, void* B, size_t size);
int main(void)
{
unsigned long long mb;
mb = 0;
while (malloc(sizeof(char) << 20)) ++mb
; ++mb;
printf("Allocated %llu megabytes Total.\n", mb
); dprintc();
return 0;
}
static inline void swap(void* A, void* B, size_t size)
{
char* temp;
if (temp)
{
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKI2RlZmluZSBTVFJJTkdJWkUoeCkgI3gKI2RlZmluZSBMSU5FRklMRSh4KSAiTGluZSAiIFNUUklOR0laRSh4KSAiIG9mIEZpbGUgIiBfX0ZJTEVfXwojZGVmaW5lIExJTkVfRklMRSBMSU5FRklMRShfX0xJTkVfXykKCi8qIENvbW1lbnQgb3V0IHRoZSBuZXh0IGxpbmUgdG8gZGlzYWJsZSBkZWJ1Z2dpbmcgZGlhZ25vc3RpY3MuICovCiNkZWZpbmUgREVCVUdfRAojaWZkZWYgREVCVUdfRAovKiBEZWJ1Z2dpbmcgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMuICovCnN0YXRpYyB1bnNpZ25lZCBsb25nIG1hbGxvY19iID0gMDsKc3RhdGljIHVuc2lnbmVkIGxvbmcgbWFsbG9jX2MgPSAwOwpzdGF0aWMgdW5zaWduZWQgbG9uZyBmcmVlX2MgPSAwOwoKc3RhdGljIGlubGluZSB2b2lkKiBkbWFsbG9jKHNpemVfdCBzaXplKTsKc3RhdGljIGlubGluZSB2b2lkIGRmcmVlKHZvaWQqIG9iamVjdCk7CnN0YXRpYyBpbmxpbmUgdm9pZCBkcHJpbnRjKHZvaWQpOwoKc3RhdGljIGlubGluZSB2b2lkKiBkbWFsbG9jKHNpemVfdCBzaXplKQp7CiAgICBtYWxsb2NfYiArPSBzaXplOwogICAgKyttYWxsb2NfYzsKICAgIHJldHVybiBtYWxsb2Moc2l6ZSk7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCBkZnJlZSh2b2lkKiBvYmplY3QpCnsKICAgIGZyZWUob2JqZWN0KTsKICAgICsrZnJlZV9jOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQgZHByaW50Yyh2b2lkKQp7CiAgICBmcHJpbnRmKHN0ZGVyciwgIlxuQWxsb2NhdGVkICVsdSBieXRlczsgbWFsbG9jKCkgY2FsbGVkOiAlbHUuXG5mcmVlKCkgY2FsbGVkOiAlbHUuXG4iLAogICAgICAgICAgICBtYWxsb2NfYiwgbWFsbG9jX2MsIGZyZWVfYyk7Cn0KCiNkZWZpbmUgbWFsbG9jIGRtYWxsb2MKI2RlZmluZSBmcmVlIGRmcmVlCgojZW5kaWYgLyogaWZkZWYgREVCVUdfRCAqLwoKc3RhdGljIGlubGluZSB2b2lkIHN3YXAodm9pZCogQSwgdm9pZCogQiwgc2l6ZV90IHNpemUpOwoKaW50IG1haW4odm9pZCkKewogICAgdW5zaWduZWQgbG9uZyBsb25nIG1iOwogICAgbWIgPSAwOwogICAgd2hpbGUgKG1hbGxvYyhzaXplb2YoY2hhcikgPDwgMjApKSArK21iOwogICAgKyttYjsKICAgIHByaW50ZigiQWxsb2NhdGVkICVsbHUgbWVnYWJ5dGVzIFRvdGFsLlxuIiwgbWIpOwogICAgZHByaW50YygpOwogICAgcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCBzd2FwKHZvaWQqIEEsIHZvaWQqIEIsIHNpemVfdCBzaXplKQp7CiAgICBjaGFyKiB0ZW1wOwogICAgdGVtcCA9IG1hbGxvYyhzaXplKTsKICAgIGlmICh0ZW1wKQogICAgewogICAgICAgIG1lbWNweSh0ZW1wLCBBLCBzaXplKTsKICAgICAgICBtZW1jcHkoQSwgQiwgc2l6ZSk7CiAgICAgICAgbWVtY3B5KEIsIHRlbXAsIHNpemUpOwogICAgICAgIGZyZWUodGVtcCk7CiAgICB9Cn0=