mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-12 14:09:12 +00:00
Get address sanitizer mostly working
This commit is contained in:
parent
1f1f3cd477
commit
7327c345f9
149 changed files with 3777 additions and 3457 deletions
|
@ -7,6 +7,7 @@
|
|||
│ • http://creativecommons.org/publicdomain/zero/1.0/ │
|
||||
╚─────────────────────────────────────────────────────────────────*/
|
||||
#endif
|
||||
#include "libc/bits/bits.h"
|
||||
#include "libc/inttypes.h"
|
||||
#include "libc/literal.h"
|
||||
#include "libc/math.h"
|
||||
|
@ -34,7 +35,7 @@ void dobin(const char *op, long double x, FILE *f) {
|
|||
memcpy(buf, &x, sizeof(x));
|
||||
memcpy(&lo, &buf[0], sizeof(lo));
|
||||
memcpy(&hi, &buf[8], sizeof(hi));
|
||||
fprintf(f, "/\t%016" PRIb16 "%064" PRIb64 " %-8s %19.19Lf\n", hi, lo, op, x);
|
||||
fprintf(f, "/\t%016" PRIb16 "%064" PRIb64 " %-8s % 19.19Lf\n", hi, lo, op, x);
|
||||
}
|
||||
|
||||
void dohex(const char *op, long double x, FILE *f) {
|
||||
|
@ -44,7 +45,7 @@ void dohex(const char *op, long double x, FILE *f) {
|
|||
memcpy(buf, &x, sizeof(x));
|
||||
memcpy(&lo, &buf[0], sizeof(lo));
|
||||
memcpy(&hi, &buf[8], sizeof(hi));
|
||||
fprintf(f, "/\t%04" PRIx16 "%016" PRIx64 " %-8s %19.19Lf\n", hi, lo, op, x);
|
||||
fprintf(f, "/\t%04" PRIx16 "%016" PRIx64 " %-8s % 19.19Lf\n", hi, lo, op, x);
|
||||
}
|
||||
|
||||
#define DOBIN(OP) \
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include "libc/bits/bits.h"
|
||||
#include "libc/calls/calls.h"
|
||||
#include "libc/macros.h"
|
||||
#include "libc/runtime/runtime.h"
|
||||
#include "libc/stdio/stdio.h"
|
||||
#include "libc/sysv/consts/map.h"
|
||||
#include "libc/sysv/consts/prot.h"
|
||||
|
|
|
@ -32,9 +32,10 @@ int main(int argc, char *argv[]) {
|
|||
int pid, wstatus;
|
||||
long double ts1, ts2;
|
||||
struct rusage rusage;
|
||||
char pathbuf[PATH_MAX];
|
||||
memset(&rusage, -1, sizeof(rusage));
|
||||
CHECK_GT(argc, 1);
|
||||
CHECK_NOTNULL((exe = commandv(argv[1])));
|
||||
CHECK_NOTNULL((exe = commandv(argv[1], pathbuf)));
|
||||
ts1 = nowl();
|
||||
CHECK_NE(-1, (pid = spawnve(0, NULL, exe, &argv[1], environ)));
|
||||
CHECK_NE(-1, wait4(pid, &wstatus, 0, &rusage));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue