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