Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 0 additions & 40 deletions fml/compiler_specific.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,44 +26,4 @@
#define FML_ALLOW_UNUSED_TYPE
#endif

// Annotate a function indicating it should not be inlined.
// Use like:
// NOINLINE void DoStuff() { ... }
#if defined(__GNUC__) || defined(__clang__)
#define FML_NOINLINE __attribute__((noinline))
#elif defined(_MSC_VER)
#define FML_NOINLINE __declspec(noinline)
#endif

// Specify memory alignment for structs, classes, etc.
// Use like:
// class FML_ALIGNAS(16) MyClass { ... }
// FML_ALIGNAS(16) int array[4];
#if defined(__GNUC__) || defined(__clang__)
#define FML_ALIGNAS(byte_alignment) __attribute__((aligned(byte_alignment)))
#elif defined(_MSC_VER)
#define FML_ALIGNAS(byte_alignment) __declspec(align(byte_alignment))
#endif

// Return the byte alignment of the given type (available at compile time).
// Use like:
// FML_ALIGNOF(int32) // this would be 4
#if defined(__GNUC__) || defined(__clang__)
#define FML_ALIGNOF(type) __alignof__(type)
#elif defined(_MSC_VER)
#define FML_ALIGNOF(type) __alignof(type)
#endif

// Tell the compiler a function is using a printf-style format string.
// |format_param| is the one-based index of the format string parameter;
// |dots_param| is the one-based index of the "..." parameter.
// For v*printf functions (which take a va_list), pass 0 for dots_param.
// (This is undocumented but matches what the system C headers do.)
#if defined(__GNUC__) || defined(__clang__)
#define FML_PRINTF_FORMAT(format_param, dots_param) \
__attribute__((format(printf, format_param, dots_param)))
#else
#define FML_PRINTF_FORMAT(format_param, dots_param)
#endif

#endif // FLUTTER_FML_COMPILER_SPECIFIC_H_