diff options
author | archshift <admin@archshift.com> | 2015-01-21 02:16:47 +0100 |
---|---|---|
committer | archshift <admin@archshift.com> | 2015-02-11 03:30:31 +0100 |
commit | ef24e72b2618806f64345544fa46c84f3f494890 (patch) | |
tree | fca138e8377c4d66bd1fe026a3d2fef54a7f090c /src/common/assert.h | |
parent | GSP: Fixed typo in SignalInterrupt (diff) | |
download | yuzu-ef24e72b2618806f64345544fa46c84f3f494890.tar yuzu-ef24e72b2618806f64345544fa46c84f3f494890.tar.gz yuzu-ef24e72b2618806f64345544fa46c84f3f494890.tar.bz2 yuzu-ef24e72b2618806f64345544fa46c84f3f494890.tar.lz yuzu-ef24e72b2618806f64345544fa46c84f3f494890.tar.xz yuzu-ef24e72b2618806f64345544fa46c84f3f494890.tar.zst yuzu-ef24e72b2618806f64345544fa46c84f3f494890.zip |
Diffstat (limited to 'src/common/assert.h')
-rw-r--r-- | src/common/assert.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/common/assert.h b/src/common/assert.h new file mode 100644 index 000000000..3b2232a7e --- /dev/null +++ b/src/common/assert.h @@ -0,0 +1,36 @@ +// Copyright 2013 Dolphin Emulator Project / 2014 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include "common/common_funcs.h" + +// TODO (yuriks) allow synchronous logging so we don't need printf +#define ASSERT(_a_) \ + do if (!(_a_)) {\ + fprintf(stderr, "Assertion Failed!\n\n Line: %d\n File: %s\n Time: %s\n", \ + __LINE__, __FILE__, __TIME__); \ + Crash(); \ + } while (0) + +#define ASSERT_MSG(_a_, ...) \ + do if (!(_a_)) {\ + fprintf(stderr, "Assertion Failed!\n\n Line: %d\n File: %s\n Time: %s\n", \ + __LINE__, __FILE__, __TIME__); \ + fprintf(stderr, __VA_ARGS__); \ + fprintf(stderr, "\n"); \ + Crash(); \ + } while (0) + +#define UNREACHABLE() ASSERT_MSG(false, "Unreachable code!") + +#ifdef _DEBUG +#define DEBUG_ASSERT(_a_) ASSERT(_a_) +#define DEBUG_ASSERT_MSG(_a_, ...) ASSERT_MSG(_a_, __VA_ARGS__) +#else // not debug +#define DEBUG_ASSERT(_a_) +#define DEBUG_ASSERT_MSG(_a_, _desc_, ...) +#endif + +#define UNIMPLEMENTED() DEBUG_ASSERT_MSG(false, "Unimplemented code!") |