From 1ef5d609d93619a22aad4baebf3c23e2a96affea Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 30 May 2020 10:37:36 +0200 Subject: [PATCH] AK+LibC: Add TODO() as an alternative to ASSERT_NOT_REACHED() I've been using this in the new HTML parser and it makes it much easier to understand the state of unfinished code branches. TODO() is for places where it's okay to end up but we need to implement something there. ASSERT_NOT_REACHED() is for places where it's not okay to end up, and something has gone wrong. --- AK/Assertions.h | 1 + AK/TestSuite.h | 1 + Kernel/Assertions.h | 1 + Libraries/LibC/assert.h | 1 + Libraries/LibWeb/Parser/HTMLDocumentParser.cpp | 5 ----- Libraries/LibWeb/Parser/HTMLTokenizer.cpp | 6 ------ 6 files changed, 4 insertions(+), 11 deletions(-) diff --git a/AK/Assertions.h b/AK/Assertions.h index 02dd366bd83..976e36e60cc 100644 --- a/AK/Assertions.h +++ b/AK/Assertions.h @@ -36,6 +36,7 @@ # define ASSERT assert # define ASSERT_NOT_REACHED() assert(false) # define RELEASE_ASSERT assert +# define TODO ASSERT_NOT_REACHED # endif # endif diff --git a/AK/TestSuite.h b/AK/TestSuite.h index ec68f780de8..b792edc1a49 100644 --- a/AK/TestSuite.h +++ b/AK/TestSuite.h @@ -37,6 +37,7 @@ #define ASSERT_NOT_REACHED() fprintf(stderr, "\033[31;1mASSERT_NOT_REACHED\033[0m\n"); #define RELEASE_ASSERT ASSERT +#define TODO ASSERT_NOT_REACHED #include #include diff --git a/Kernel/Assertions.h b/Kernel/Assertions.h index cd8244452b4..b48273a3012 100644 --- a/Kernel/Assertions.h +++ b/Kernel/Assertions.h @@ -47,3 +47,4 @@ } while (0) #define ASSERT_INTERRUPTS_DISABLED() ASSERT(!(cpu_flags() & 0x200)) #define ASSERT_INTERRUPTS_ENABLED() ASSERT(cpu_flags() & 0x200) +#define TODO ASSERT_NOT_REACHED diff --git a/Libraries/LibC/assert.h b/Libraries/LibC/assert.h index 18711ac0e85..6045f9d484d 100644 --- a/Libraries/LibC/assert.h +++ b/Libraries/LibC/assert.h @@ -51,5 +51,6 @@ __attribute__((noreturn)) void __assertion_failed(const char* msg); } while (0) #define ASSERT assert #define RELEASE_ASSERT assert +#define TODO ASSERT_NOT_REACHED __END_DECLS diff --git a/Libraries/LibWeb/Parser/HTMLDocumentParser.cpp b/Libraries/LibWeb/Parser/HTMLDocumentParser.cpp index 599d62bb8a0..6e917766d73 100644 --- a/Libraries/LibWeb/Parser/HTMLDocumentParser.cpp +++ b/Libraries/LibWeb/Parser/HTMLDocumentParser.cpp @@ -39,11 +39,6 @@ #include #include -#define TODO() \ - do { \ - ASSERT_NOT_REACHED(); \ - } while (0) - #define PARSE_ERROR() \ do { \ dbg() << "Parse error! " << __PRETTY_FUNCTION__ << " @ " << __LINE__; \ diff --git a/Libraries/LibWeb/Parser/HTMLTokenizer.cpp b/Libraries/LibWeb/Parser/HTMLTokenizer.cpp index 59db11dcfe4..02dc1442735 100644 --- a/Libraries/LibWeb/Parser/HTMLTokenizer.cpp +++ b/Libraries/LibWeb/Parser/HTMLTokenizer.cpp @@ -37,12 +37,6 @@ #define CONSUME_NEXT_INPUT_CHARACTER \ current_input_character = next_codepoint(); -#define TODO() \ - do { \ - dbg() << "[TODO: " << state_name(m_state) << "] '" << (char)current_input_character.value() << "'"; \ - ASSERT_NOT_REACHED(); \ - } while (0) - #define SWITCH_TO(new_state) \ do { \ will_switch_to(State::new_state); \