From 4cbd3f1fe45da89d0598f6b68d77ed166d934177 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Fri, 30 Jun 2023 15:11:27 +0200 Subject: [PATCH] Add GCC_JIT_FN_ATTRIBUTE_COLD attribute --- gccjit_sys/src/lib.rs | 1 + src/function.rs | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gccjit_sys/src/lib.rs b/gccjit_sys/src/lib.rs index 37ddb85..eb3aac2 100644 --- a/gccjit_sys/src/lib.rs +++ b/gccjit_sys/src/lib.rs @@ -263,6 +263,7 @@ pub enum gcc_jit_fn_attribute GCC_JIT_FN_ATTRIBUTE_TARGET, GCC_JIT_FN_ATTRIBUTE_USED, GCC_JIT_FN_ATTRIBUTE_VISIBILITY, + GCC_JIT_FN_ATTRIBUTE_COLD, } #[cfg(feature="master")] diff --git a/src/function.rs b/src/function.rs index eae1ae6..acca0a6 100644 --- a/src/function.rs +++ b/src/function.rs @@ -55,6 +55,7 @@ pub enum FnAttribute<'a> { Target(&'a str), Used, Visibility(Visibility), + Cold, } #[cfg(feature="master")] @@ -63,8 +64,11 @@ impl<'a> FnAttribute<'a> { match *self { FnAttribute::Target(target) => AttributeValue::String(target), FnAttribute::Visibility(visibility) => AttributeValue::String(visibility.as_str()), - FnAttribute::AlwaysInline | FnAttribute::Inline | FnAttribute::NoInline | FnAttribute::Used => - AttributeValue::None, + FnAttribute::AlwaysInline + | FnAttribute::Inline + | FnAttribute::NoInline + | FnAttribute::Used + | FnAttribute::Cold => AttributeValue::None, } } @@ -76,6 +80,7 @@ impl<'a> FnAttribute<'a> { FnAttribute::Target(_) => gccjit_sys::gcc_jit_fn_attribute::GCC_JIT_FN_ATTRIBUTE_TARGET, FnAttribute::Used => gccjit_sys::gcc_jit_fn_attribute::GCC_JIT_FN_ATTRIBUTE_USED, FnAttribute::Visibility(_) => gccjit_sys::gcc_jit_fn_attribute::GCC_JIT_FN_ATTRIBUTE_VISIBILITY, + FnAttribute::Cold => gccjit_sys::gcc_jit_fn_attribute::GCC_JIT_FN_ATTRIBUTE_COLD, } } }