diff options
Diffstat (limited to 'pkg/csource')
| -rw-r--r-- | pkg/csource/akaros_common.go | 14 | ||||
| -rw-r--r-- | pkg/csource/csource.go | 1 | ||||
| -rw-r--r-- | pkg/csource/linux_common.go | 14 |
3 files changed, 17 insertions, 12 deletions
diff --git a/pkg/csource/akaros_common.go b/pkg/csource/akaros_common.go index a02f0834c..74e7e310b 100644 --- a/pkg/csource/akaros_common.go +++ b/pkg/csource/akaros_common.go @@ -31,7 +31,6 @@ var commonHeaderAkaros = ` #endif #define doexit exit -#define NORETURN __attribute__((noreturn)) @@ -55,8 +54,14 @@ var commonHeaderAkaros = ` #endif #if defined(SYZ_EXECUTOR) -#ifndef SYSCALLAPI +#if defined(__GNUC__) #define SYSCALLAPI +#define NORETURN __attribute__((noreturn)) +#define ALIGNED(N) __attribute__((aligned(N))) +#else +#define SYSCALLAPI WINAPI +#define NORETURN __declspec(noreturn) +#define ALIGNED(N) __declspec(align(N)) #endif typedef long(SYSCALLAPI* syscall_t)(long, long, long, long, long, long, long, long, long); @@ -88,7 +93,6 @@ const int kErrorStatus = 68; NORETURN static void fail(const char* msg, ...) { int e = errno; - fflush(stdout); va_list args; va_start(args, msg); vfprintf(stderr, msg, args); @@ -101,7 +105,6 @@ NORETURN static void fail(const char* msg, ...) #if defined(SYZ_EXECUTOR) NORETURN static void error(const char* msg, ...) { - fflush(stdout); va_list args; va_start(args, msg); vfprintf(stderr, msg, args); @@ -111,11 +114,10 @@ NORETURN static void error(const char* msg, ...) } #endif -#if defined(SYZ_EXECUTOR) || (defined(SYZ_REPEAT) && defined(SYZ_WAIT_REPEAT)) +#if defined(SYZ_EXECUTOR) || (defined(SYZ_REPEAT) && defined(SYZ_WAIT_REPEAT) && defined(SYZ_USE_TMP_DIR)) NORETURN static void exitf(const char* msg, ...) { int e = errno; - fflush(stdout); va_list args; va_start(args, msg); vfprintf(stderr, msg, args); diff --git a/pkg/csource/csource.go b/pkg/csource/csource.go index 1bc1ec5ba..6d06f101d 100644 --- a/pkg/csource/csource.go +++ b/pkg/csource/csource.go @@ -190,6 +190,7 @@ func Write(p *prog.Prog, opts Options) ([]byte, error) { re = regexp.MustCompile(`\t*debug_dump_data\(.*\);\n`) out0 = re.ReplaceAllString(out0, "") } + out0 = strings.Replace(out0, "NORETURN", "", -1) // Remove duplicate new lines. out1 := []byte(out0) diff --git a/pkg/csource/linux_common.go b/pkg/csource/linux_common.go index b86424ff9..acc1647e4 100644 --- a/pkg/csource/linux_common.go +++ b/pkg/csource/linux_common.go @@ -117,7 +117,6 @@ __attribute__((noreturn)) static void doexit(int status) for (i = 0;; i++) { } } -#define NORETURN __attribute__((noreturn)) #endif #if defined(SYZ_EXECUTOR) @@ -147,8 +146,14 @@ __attribute__((noreturn)) static void doexit(int status) #endif #if defined(SYZ_EXECUTOR) -#ifndef SYSCALLAPI +#if defined(__GNUC__) #define SYSCALLAPI +#define NORETURN __attribute__((noreturn)) +#define ALIGNED(N) __attribute__((aligned(N))) +#else +#define SYSCALLAPI WINAPI +#define NORETURN __declspec(noreturn) +#define ALIGNED(N) __declspec(align(N)) #endif typedef long(SYSCALLAPI* syscall_t)(long, long, long, long, long, long, long, long, long); @@ -180,7 +185,6 @@ const int kErrorStatus = 68; NORETURN static void fail(const char* msg, ...) { int e = errno; - fflush(stdout); va_list args; va_start(args, msg); vfprintf(stderr, msg, args); @@ -193,7 +197,6 @@ NORETURN static void fail(const char* msg, ...) #if defined(SYZ_EXECUTOR) NORETURN static void error(const char* msg, ...) { - fflush(stdout); va_list args; va_start(args, msg); vfprintf(stderr, msg, args); @@ -203,11 +206,10 @@ NORETURN static void error(const char* msg, ...) } #endif -#if defined(SYZ_EXECUTOR) || (defined(SYZ_REPEAT) && defined(SYZ_WAIT_REPEAT)) +#if defined(SYZ_EXECUTOR) || (defined(SYZ_REPEAT) && defined(SYZ_WAIT_REPEAT) && defined(SYZ_USE_TMP_DIR)) NORETURN static void exitf(const char* msg, ...) { int e = errno; - fflush(stdout); va_list args; va_start(args, msg); vfprintf(stderr, msg, args); |
