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, } } }