From dc9c3b2a86cd465951a12bc9f7bc8c2d77ce151c Mon Sep 17 00:00:00 2001 From: nibbbl <63519528+nibbbl@users.noreply.github.com> Date: Wed, 2 Sep 2026 00:01:10 -0700 Subject: Fix GCC 15+ build error in param block tag sorting Fixes building the viewer with GCC 15 or newer: `llxuiparser.cpp` was tripping `-Wsfinae-incomplete` via tag sorting templates in `llinitparam.h`. Patched this by moving the tag check out of the types themselves. --- indra/llcommon/llinitparam.h | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) (limited to 'indra/llcommon/llinitparam.h') diff --git a/indra/llcommon/llinitparam.h b/indra/llcommon/llinitparam.h index b220afadfc..0629f3ebae 100644 --- a/indra/llcommon/llinitparam.h +++ b/indra/llcommon/llinitparam.h @@ -45,7 +45,6 @@ namespace LLTypeTags template struct TypeTagBase { - typedef void is_tag_t; typedef INNER_TYPE inner_t; static const int SORT_ORDER=_SORT_ORDER; }; @@ -68,18 +67,12 @@ namespace LLTypeTags typedef typename REST::template Cons::value_t>::value_t value_t; }; - template + template struct IsSortable { static const bool value = false; }; - template - struct IsSortable - { - static const bool value = true; - }; - template::value> struct InsertInto { @@ -2830,5 +2823,26 @@ namespace LLInitParam }; } +namespace LLTypeTags +{ + // After BaseBlock so Sequential, Atomic, and Lazy are in scope. + template + struct IsSortable > + { + static const bool value = true; + }; + + template + struct IsSortable > + { + static const bool value = true; + }; + + template + struct IsSortable > + { + static const bool value = true; + }; +} #endif // LL_LLPARAM_H -- cgit v1.3