forked from castle-engine/castle-engine
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcastle-fpc-messages.cfg
89 lines (77 loc) · 3.34 KB
/
castle-fpc-messages.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# Customize messages displayed by FPC.
#
# FPC emits some messages that are unfortunately useless and unavoidable in user code,
# especially when using Generics.Collections.
# Every specializatoin of a generic container produces a number of messages
# that are not actionable.
# So we hide them, by using proper -vmXXX options.
#
# Why like this?
#
# - We hide messages selectively, by -vmXXX.
# We don't want to unconditionally hide all FPC warnings,
# as many FPC warnings are very useful to easily spot code problems.
# We also don't want to train our eyes to ignore the warnings :),
# which would happen if the output would be flooded by useless warnings.
# Our applications should have a "clean" output from FPC,
# with warnings + notes enabled.
#
# - Note that -vmXXXX has to be used conditionally, looking at FPC version,
# for some messages. Otherwise older FPC versions would fail when they see
# unrecognized -vmXXXX message.
# The currently supported FPC versions by CGE are documented on
# https://castle-engine.io/supported_compilers.php .
#
# - This is a subset of castle-fpc.cfg, useful to refer to from Lazarus LPI/LPK.
# Using a common cfg file allows to share this logic between various LPI/LPK files.
# Also, in Lazarus LPI it seems not possible to use stuff like
# "if GetProjValue('FPC_FULLVERSION') >= 30101 then" in "Common options"
# (although it works in Lazarus LPK).
#
# Note that Castle Game Engine build tool
# (see https://github.com/castle-engine/castle-engine/wiki/Build-Tool )
# has better filtering implementation,
# and instead of using -vmXXX it can (in some cases) filter out specific cases
# related to Generics.Collections.
# Our build tool doesn't use this cfg file.
#
# ----------------------------------------------------------------------------
# do not show Warning: (2045) APPTYPE is not supported by the target OS
-vm2045
# do not show Hint: (5024) Parameter "..." not used
-vm5024
# do not show
# Warning: Constructing a class "TCustomDictionaryEnumerator$4$crc6100464F" with abstract method "GetCurrent"
# Warning: Constructing a class "TCustomDictionaryEnumerator$4$crcBD4794B2" with abstract method "DoMoveNext"
# TODO: This is a pity, we also hide useful warnings this way.
# Submitted as https://bugs.freepascal.org/view.php?id=32142
-vm04046
#IFNDEF VER2
#IFNDEF VER3_0
# do not show Warning: Symbol "TArrayHelper$1" is experimental
# (only for FPC >= 3.1.1, for 3.0.x we fix this in our custom Generics.Collections unit)
# TODO: This is a pity, we also hide useful warnings this way.
-vm05063
# do not show
# Note: Private type "TCustomPointersEnumerator$2<CASTLEVECTORSINTERNALSINGLE.TGenericVector2,CASTLEVECTORS.TCustomList$1$crc1D7BB6F0.PT>.T" never used
-vm5071
#IFNDEF VER3_1
# do not show
# Note: Call to subroutine "function TGenericVector3.Length:Single;" marked as inline is not inlined
# (In FPC 3.3.1, not in FPC 3.1.1 rev 38027)
-vm6058
# do not show
# Warning: Local variable "$1" of a managed type does not seem to be initialized
# (a lot of false warnings since FPC 3.3.1)
-vm5089
# do not show
# Warning: Variable "OutputFace" of a managed type does not seem to be initialized
# (3 false warnings since FPC 3.3.1 in Kraft)
-vm5090
# do not show
# Warning: function result variable of a managed type does not seem to be initialized
# (a lot of false warnings since FPC 3.3.1)
-vm5093
#ENDIF
#ENDIF
#ENDIF