[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-17 14:48:52 +02:00 committed by Jérôme Gardou
parent a28a34f108
commit d1f5c31820
6 changed files with 3004 additions and 2955 deletions

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")

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)

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

2965
sdk/include/psdk/ms_sal.h Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

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