1*4882a593SmuzhiyunFrom 5a0c9f6358169b447840acdb721250ce932cb180 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Martin Erik Werner <martinerikwerner@gmail.com>
3*4882a593SmuzhiyunDate: Wed, 8 Mar 2017 22:51:16 +0100
4*4882a593SmuzhiyunSubject: [PATCH] Fix mismatched usage length, build fail on g++
5*4882a593SmuzhiyunMIME-Version: 1.0
6*4882a593SmuzhiyunContent-Type: text/plain; charset=UTF-8
7*4882a593SmuzhiyunContent-Transfer-Encoding: 8bit
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunThe length of const option::Descriptor usage[] is intended to be
10*4882a593Smuzhiyuninferred based on the initialisation in Source/main.cpp, however, the
11*4882a593Smuzhiyunextern declaration in Source/Game.hpp hard-codes it to 13.
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunRemove the hard-coded 13 in the extern declaration, in favour of the
14*4882a593Smuzhiyuninferred length.
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunThis also fixes the follwoing build failure with g++ (Debian 4.9.2-10)
17*4882a593Smuzhiyun4.9.2:
18*4882a593Smuzhiyun(...)/Source/main.cpp:602:5: error: uninitialized const member ‘option::Descriptor::index’
19*4882a593Smuzhiyun     };
20*4882a593Smuzhiyun     ^
21*4882a593Smuzhiyun(...)/Source/main.cpp:602:5: warning: missing initializer for member ‘option::Descriptor::index’ [-Wmissing-field-initializers]
22*4882a593Smuzhiyun(...)/Source/main.cpp:602:5: error: uninitialized const member ‘option::Descriptor::type’
23*4882a593Smuzhiyun(...)/Source/main.cpp:602:5: warning: missing initializer for member ‘option::Descriptor::type’ [-Wmissing-field-initializers]
24*4882a593Smuzhiyun(...)/Source/main.cpp:602:5: error: uninitialized const member ‘option::Descriptor::shortopt’
25*4882a593Smuzhiyun(...)/Source/main.cpp:602:5: warning: missing initializer for member ‘option::Descriptor::shortopt’ [-Wmissing-field-initializers]
26*4882a593Smuzhiyun(...)/Source/main.cpp:602:5: error: uninitialized const member ‘option::Descriptor::longopt’
27*4882a593Smuzhiyun(...)/Source/main.cpp:602:5: warning: missing initializer for member ‘option::Descriptor::longopt’ [-Wmissing-field-initializers]
28*4882a593Smuzhiyun(...)/Source/main.cpp:602:5: error: uninitialized const member ‘option::Descriptor::check_arg’
29*4882a593Smuzhiyun(...)/Source/main.cpp:602:5: warning: missing initializer for member ‘option::Descriptor::check_arg’ [-Wmissing-field-initializers]
30*4882a593Smuzhiyun(...)/Source/main.cpp:602:5: warning: missing initializer for member ‘option::Descriptor::help’ [-Wmissing-field-initializers]
31*4882a593SmuzhiyunCMakeFiles/lugaru.dir/build.make:54: recipe for target 'CMakeFiles/lugaru.dir/Source/main.cpp.o' failed
32*4882a593Smuzhiyun
33*4882a593SmuzhiyunSigned-off-by: Martin Erik Werner <martinerikwerner@gmail.com>
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun[Romain: backport to v1.2]
36*4882a593SmuzhiyunSigned-off-by: Romain Naour <romain.naour@gmail.com>
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun(cherry picked from commit dd685fe9080c2853422d8272792691358ea07dfc)
39*4882a593Smuzhiyun---
40*4882a593Smuzhiyun Source/Game.hpp | 2 +-
41*4882a593Smuzhiyun 1 file changed, 1 insertion(+), 1 deletion(-)
42*4882a593Smuzhiyun
43*4882a593Smuzhiyundiff --git a/Source/Game.hpp b/Source/Game.hpp
44*4882a593Smuzhiyunindex 51232cc..9bb6adb 100644
45*4882a593Smuzhiyun--- a/Source/Game.hpp
46*4882a593Smuzhiyun+++ b/Source/Game.hpp
47*4882a593Smuzhiyun@@ -234,7 +234,7 @@ enum optionIndex
48*4882a593Smuzhiyun /* Number of options + 1 */
49*4882a593Smuzhiyun const int commandLineOptionsNumber = 10;
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun-extern const option::Descriptor usage[13];
52*4882a593Smuzhiyun+extern const option::Descriptor usage[];
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun extern option::Option commandLineOptions[commandLineOptionsNumber];
55*4882a593Smuzhiyun extern option::Option* commandLineOptionsBuffer;
56*4882a593Smuzhiyun--
57*4882a593Smuzhiyun2.9.4
58*4882a593Smuzhiyun
59