lib: feature deprecation warnings in gcc >= 4.3

Add a deprecated attribute to functions and enum values that should not
be used anymore.
This uses a gcc 4.3 dialect, thus is only available for this version of
gcc and newer. Note that the _Pragma() keyword is introduced by C99, but
is available as part of the gcc dialect even when compiling in C89 mode.

It is still possible to disable deprecation at a calling module compile
time by defining CURL_DISABLE_DEPRECATION.

Gcc type checking macros are made aware of possible deprecations.

Some testing support Perl programs are adapted to the extended
declaration syntax.

Several test and unit test C programs intentionally use deprecated
functions/options and are annotated to not generate a warning.

New test 1222 checks the deprecation status in doc and header files.

Closes #9667
This commit is contained in:
Patrick Monnerat 2022-11-14 15:21:34 +01:00 committed by Daniel Stenberg
parent 980510926d
commit 6967571bf2
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
39 changed files with 771 additions and 243 deletions

View file

@ -152,7 +152,7 @@ test1184 test1185 test1186 test1187 test1188 test1189 test1190 test1190 \
test1191 test1192 test1193 test1194 test1195 test1196 test1197 test1198 \
test1199 test1200 test1201 test1202 test1203 test1204 test1205 test1206 \
test1207 test1208 test1209 test1210 test1211 test1212 test1213 test1214 \
test1215 test1216 test1217 test1218 test1219 test1220 test1221 \
test1215 test1216 test1217 test1218 test1219 test1220 test1221 test1222 \
test1223 \
test1224 test1225 test1226 test1227 test1228 test1229 test1230 test1231 \
test1232 test1233 test1234 test1235 test1236 test1237 test1238 test1239 \

24
tests/data/test1222 Normal file
View file

@ -0,0 +1,24 @@
<testcase>
<info>
<keywords>
source analysis
</keywords>
</info>
#
# Client-side
<client>
<server>
none
</server>
<name>
Verify deprecation statuses and versions
</name>
<command type="perl">
%SRCDIR/check-deprecated.pl %SRCDIR/..
</command>
</client>
</testcase>