When compiling with GCC 7.5, non-trivial initializers are unsupported. [ 9s] shrpx_http_test.cc: In function 'void shrpx::test_shrpx_http_create_altsvc_header_value()': [ 9s] shrpx_http_test.cc:152:9: sorry, unimplemented: non-trivial designated initializers not supported [ 9s] }, [ 9s] ^ [ 9s] shrpx_http_test.cc:152:9: sorry, unimplemented: non-trivial designated initializers not supported [ 9s] shrpx_http_test.cc:153:5: error: no matching function for call to 'std::vector::vector()' [ 9s] }; [ 9s] ^ Index: nghttp2-1.60.0/src/shrpx_http_test.cc =================================================================== --- nghttp2-1.60.0.orig/src/shrpx_http_test.cc +++ nghttp2-1.60.0/src/shrpx_http_test.cc @@ -143,14 +143,12 @@ void test_shrpx_http_create_affinity_coo void test_shrpx_http_create_altsvc_header_value(void) { { BlockAllocator balloc(1024, 1024); - std::vector altsvcs{ - AltSvc{ - .protocol_id = StringRef::from_lit("h3"), - .host = StringRef::from_lit("127.0.0.1"), - .service = StringRef::from_lit("443"), - .params = StringRef::from_lit("ma=3600"), - }, - }; + AltSvc s; + s.protocol_id = StringRef::from_lit("h3"); + s.host = StringRef::from_lit("127.0.0.1"); + s.service = StringRef::from_lit("443"); + s.params = StringRef::from_lit("ma=3600"); + std::vector altsvcs = {s}; assert_stdstring_equal( R"(h3="127.0.0.1:443"; ma=3600)", @@ -159,19 +157,15 @@ void test_shrpx_http_create_altsvc_heade { BlockAllocator balloc(1024, 1024); - std::vector altsvcs{ - AltSvc{ - .protocol_id = StringRef::from_lit("h3"), - .service = StringRef::from_lit("443"), - .params = StringRef::from_lit("ma=3600"), - }, - AltSvc{ - .protocol_id = StringRef::from_lit("h3%"), - .host = StringRef::from_lit("\"foo\""), - .service = StringRef::from_lit("4433"), - }, - }; + AltSvc s1, s2; + s1.protocol_id = StringRef::from_lit("h3"); + s1.service = StringRef::from_lit("443"); + s1.params = StringRef::from_lit("ma=3600"); + s2.protocol_id = StringRef::from_lit("h3%"); + s2.host = StringRef::from_lit("\"foo\""); + s2.service = StringRef::from_lit("4433"); + std::vector altsvcs = {s1, s2}; assert_stdstring_equal( R"(h3=":443"; ma=3600, h3%25="\"foo\":4433")", http::create_altsvc_header_value(balloc, altsvcs).str());