[SDK] Add GCC overrides for SAL annotations

GCC has some functions, variables & type attributes which can be used as aliases
for some of the SAL annotations. Although it's not as rich & precise, it's still useful
since we actually enable -Werror on GCC builds whereas we don't use such an option
on MSVC builds.

For now, _Must_inspect_result_ is aliased to warn_result_unused attribute.
This commit is contained in:
Jérôme Gardou
2021-06-28 10:20:57 +02:00
committed by Jérôme Gardou
parent a28a34f108
commit d1f5c31820
6 changed files with 3004 additions and 2955 deletions
+5
View File
@@ -1,6 +1,11 @@
PROJECT(NTOS)
if (GCC)
# Enable this again. CORE-17637
add_compile_options(-Wunused-result)
endif()
include(ntos.cmake)
if (CMAKE_C_COMPILER_ID MATCHES "GNU|Clang")
+1
View File
@@ -102,6 +102,7 @@ add_compile_options(-Wno-char-subscripts -Wno-multichar -Wno-unused-value)
add_compile_options(-Wno-unused-const-variable)
add_compile_options(-Wno-unused-local-typedefs)
add_compile_options(-Wno-deprecated)
add_compile_options(-Wno-unused-result) # FIXME To be removed when CORE-17637 is resolved
if(NOT CMAKE_C_COMPILER_ID STREQUAL "Clang")
add_compile_options(-Wno-maybe-uninitialized)
+22
View File
@@ -0,0 +1,22 @@
/*
* PROJECT: ReactOS PSDK
* LICENSE: MIT (https://spdx.org/licenses/MIT)
* PURPOSE: Standard Annotation Language (SAL) definitions - GCC overrides
* COPYRIGHT: 2021 - Jérôme Gardou
*/
#pragma once
#ifndef __GNUC__
#error "Not for your compiler!"
#endif
#ifndef __has_attribute
#pragma GCC warning "GCC without __has_attribute, no SAL niceties for you"
#define __has_attribute(__x) 0
#endif
#if __has_attribute(warn_unused_result)
# undef _Must_inspect_result_
# define _Must_inspect_result_ __attribute__((__warn_unused_result__))
#endif
File diff suppressed because it is too large Load Diff
+6 -2955
View File
File diff suppressed because it is too large Load Diff
+5
View File
@@ -5,6 +5,11 @@ add_definitions(
-D_NTSYSTEM_
-D_NTDLLBUILD_)
if (GCC)
# Enable this again. CORE-17637
add_compile_options(-Wunused-result)
endif()
list(APPEND SOURCE
access.c
acl.c