AK: Move clang-specific consumable annotation helpers to Platform.h

This commit is contained in:
Andreas Kling 2019-07-24 08:16:59 +02:00
parent f88c5860df
commit ecc35876af
Notes: sideshowbarker 2024-07-19 13:04:47 +09:00
3 changed files with 12 additions and 12 deletions

View file

@ -4,18 +4,6 @@
#include <AK/LogStream.h>
#include <AK/Types.h>
#ifdef __clang__
# define CONSUMABLE(initial_state) __attribute__((consumable(initial_state)))
# define CALLABLE_WHEN(...) __attribute__((callable_when(__VA_ARGS__)))
# define SET_TYPESTATE(state) __attribute__((set_typestate(state)))
# define RETURN_TYPESTATE(state) __attribute__((return_typestate(state)))
#else
# define CONSUMABLE(initial_state)
# define CALLABLE_WHEN(state)
# define SET_TYPESTATE(state)
# define RETURN_TYPESTATE(state)
#endif
namespace AK {
template<typename T>

View file

@ -10,3 +10,14 @@
#define ARCH(arch) (defined(AK_ARCH_##arch) && AK_ARCH_##arch)
#ifdef __clang__
# define CONSUMABLE(initial_state) __attribute__((consumable(initial_state)))
# define CALLABLE_WHEN(...) __attribute__((callable_when(__VA_ARGS__)))
# define SET_TYPESTATE(state) __attribute__((set_typestate(state)))
# define RETURN_TYPESTATE(state) __attribute__((return_typestate(state)))
#else
# define CONSUMABLE(initial_state)
# define CALLABLE_WHEN(state)
# define SET_TYPESTATE(state)
# define RETURN_TYPESTATE(state)
#endif

View file

@ -1,6 +1,7 @@
#pragma once
#include <AK/IterationDecision.h>
#include <AK/Platform.h>
#ifdef __serenity__
typedef unsigned char u8;