basic/source/sbx/sbxobj.cxx                                       |    6 
 connectivity/source/drivers/hsqldb/HDriver.cxx                    |    4 
 connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx        |    4 
 connectivity/source/drivers/postgresql/pq_connection.cxx          |    2 
 connectivity/source/drivers/postgresql/pq_tools.cxx               |    2 
 editeng/source/items/borderline.cxx                               |    2 
 editeng/source/items/frmitems.cxx                                 |    4 
 editeng/source/items/itemtype.cxx                                 |    2 
 editeng/source/items/paraitem.cxx                                 |    2 
 editeng/source/items/textitem.cxx                                 |   14 
 extensions/source/propctrlr/pushbuttonnavigation.cxx              |    6 
 extensions/source/scanner/sane.cxx                                |    2 
 filter/source/config/cache/typedetection.cxx                      |    2 
 filter/source/svg/js2hxx.py                                       |    2 
 fpicker/source/office/OfficeControlAccess.cxx                     |   13 
 framework/source/fwe/classes/addonsoptions.cxx                    |    2 
 framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx |    2 
 framework/source/uiconfiguration/uiconfigurationmanager.cxx       |    2 
 framework/source/uielement/controlmenucontroller.cxx              |    2 
 hwpfilter/source/hutil.cxx                                        |    2 
 i18npool/source/localedata/LocaleNode.cxx                         |    2 
 i18npool/source/nativenumber/nativenumbersupplier.cxx             |    4 
 i18npool/source/textconversion/genconv_dict.cxx                   |    6 
 jvmfwk/plugins/sunmajor/pluginlib/otherjre.cxx                    |    6 
 jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx                      |    6 
 jvmfwk/plugins/sunmajor/pluginlib/util.cxx                        |    6 
 oox/source/export/drawingml.cxx                                   |    2 
 pyuno/source/module/pyuno_util.cxx                                |    2 
 sc/source/filter/excel/xestyle.cxx                                |    2 
 sc/source/filter/lotus/lotform.cxx                                |    2 
 sc/source/filter/oox/condformatbuffer.cxx                         |    2 
 sc/source/ui/StatisticsDialogs/RegressionDialog.cxx               |    4 
 scaddins/source/analysis/analysis.cxx                             |    4 
 scaddins/source/analysis/analysishelper.hxx                       |    2 
 scaddins/source/analysis/deffuncname.hxx                          |  202 
+++++-----
 scaddins/source/datefunc/datefunc.cxx                             |    4 
 scaddins/source/datefunc/datefunc.hxx                             |    2 
 scaddins/source/datefunc/deffuncname.hxx                          |   16 
 scaddins/source/pricing/pricing.cxx                               |    4 
 sd/source/ui/dlg/PaneShells.cxx                                   |    6 
 slideshow/source/engine/animationnodes/basenode.cxx               |    2 
 stoc/source/security/permissions.cxx                              |    8 
 svx/source/form/fmshimp.cxx                                       |    2 
 svx/source/form/fmtextcontrolshell.cxx                            |    9 
 svx/source/inc/fmtextcontrolshell.hxx                             |    2 
 svx/source/svdraw/svdattr.cxx                                     |   22 -
 svx/source/tbxctrls/extrusioncontrols.cxx                         |    2 
 svx/source/xml/xmlgrhlp.cxx                                       |    2 
 sw/source/filter/ww8/docxattributeoutput.cxx                      |    2 
 sw/source/filter/ww8/fields.cxx                                   |    2 
 sw/source/filter/ww8/rtfattributeoutput.cxx                       |   14 
 sw/source/filter/ww8/styles.cxx                                   |    4 
 sw/source/filter/ww8/wrtw8nds.cxx                                 |   10 
 sw/source/filter/ww8/wrtw8sty.cxx                                 |    2 
 sw/source/filter/ww8/ww8atr.cxx                                   |    2 
 sw/source/filter/ww8/ww8par5.cxx                                  |   56 +-
 sw/source/ui/config/optpage.cxx                                   |    6 
 sw/source/ui/index/cntex.cxx                                      |    2 
 sw/source/writerfilter/ooxml/OOXMLFastContextHandler.cxx          |    4 
 tools/source/inet/inetmsg.cxx                                     |    2 
 vcl/source/app/stdtext.cxx                                        |    2 
 vcl/source/font/PhysicalFontCollection.cxx                        |    4 
 vcl/source/fontsubset/cff.cxx                                     |    6 
 vcl/source/opengl/x11/context.cxx                                 |    2 
 vcl/source/window/builder.cxx                                     |    2 
 xmloff/source/style/prstylei.cxx                                  |    2 
 66 files changed, 267 insertions(+), 267 deletions(-)

New commits:
commit d18e6009ba7559a0919c9d8ed87c894cafb6ba6c
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Fri Jul 11 16:19:05 2025 +0100
Commit:     Miklos Vajna <vmik...@collabora.com>
CommitDate: Thu Jul 17 12:13:55 2025 +0200

    const up some more pieces
    
    Change-Id: Ib85b8b4b3a2d00e7ef0ecb354fba0b862d60abdd
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187749
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187895
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Miklos Vajna <vmik...@collabora.com>

diff --git a/basic/source/sbx/sbxobj.cxx b/basic/source/sbx/sbxobj.cxx
index 3fc56112e9e8..241143313c8c 100644
--- a/basic/source/sbx/sbxobj.cxx
+++ b/basic/source/sbx/sbxobj.cxx
@@ -181,7 +181,7 @@ SbxVariable* SbxObject::Find( const OUString& rName, 
SbxClassType t )
 {
 #ifdef DBG_UTIL
     static int nLvl = 1;
-    static const char* pCls[] = { 
"DontCare","Array","Value","Variable","Method","Property","Object" };
+    static const char* const pCls[] = { 
"DontCare","Array","Value","Variable","Method","Property","Object" };
     SAL_INFO(
         "basic.sbx",
         "search" << std::setw(nLvl) << " "
@@ -433,7 +433,7 @@ void SbxObject::Insert( SbxVariable* pVar )
     }
     SetModified( true );
 #ifdef DBG_UTIL
-    static const char* pCls[] =
+    static const char* const pCls[] =
         { "DontCare","Array","Value","Variable","Method","Property","Object" };
     OUString aVarName( pVar->GetName() );
     if (const SbxObject *pSbxObj = aVarName.isEmpty() ? dynamic_cast<const 
SbxObject*>(pVar) : nullptr)
@@ -477,7 +477,7 @@ void SbxObject::QuickInsert( SbxVariable* pVar )
     }
     SetModified( true );
 #ifdef DBG_UTIL
-    static const char* pCls[] =
+    static const char* const pCls[] =
         { "DontCare","Array","Value","Variable","Method","Property","Object" };
     OUString aVarName( pVar->GetName() );
     if (const SbxObject *pSbxObj = aVarName.isEmpty() ? dynamic_cast<const 
SbxObject*>(pVar) : nullptr)
diff --git a/connectivity/source/drivers/hsqldb/HDriver.cxx 
b/connectivity/source/drivers/hsqldb/HDriver.cxx
index 9bf1da6a99d2..82114ed4c612 100644
--- a/connectivity/source/drivers/hsqldb/HDriver.cxx
+++ b/connectivity/source/drivers/hsqldb/HDriver.cxx
@@ -676,7 +676,7 @@ namespace connectivity
 
         const char* lcl_getCollationForLocale( const OUString& _rLocaleString, 
bool _bAcceptCountryMismatch = false )
         {
-            static const char* pTranslations[] =
+            static const char* const pTranslations[] =
             {
                 "af-ZA", "Afrikaans",
                 "am-ET", "Amharic",
@@ -789,7 +789,7 @@ namespace connectivity
                 nCompareTermination = '-';
             }
 
-            const char** pLookup = pTranslations;
+            const char* const* pLookup = pTranslations;
             for ( ; *pLookup; pLookup +=2 )
             {
                 sal_Int32 nCompareUntil = 0;
diff --git a/connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx 
b/connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx
index 8b8bf0939a5b..41df43d0f916 100644
--- a/connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx
+++ b/connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx
@@ -66,7 +66,7 @@ namespace
     // ProductRootEnvironmentVariable *must* match the constants
     // (minus 1) in offapi/com/sun/star/mozilla/MozillaProductType.idl
     // DO NOT CHANGE THE ORDER; ADD ONLY TO THE END
-    const char* DefaultProductDir[NB_PRODUCTS][NB_CANDIDATES] =
+    const char* const DefaultProductDir[NB_PRODUCTS][NB_CANDIDATES] =
     {
     #if defined(_WIN32)
         { "Mozilla/SeaMonkey/", nullptr, nullptr, nullptr },
@@ -83,7 +83,7 @@ namespace
     #endif
     };
 
-    const char* ProductRootEnvironmentVariable[NB_PRODUCTS] =
+    const char* const ProductRootEnvironmentVariable[NB_PRODUCTS] =
     {
         "MOZILLA_PROFILE_ROOT",
         "MOZILLA_FIREFOX_PROFILE_ROOT",
diff --git a/connectivity/source/drivers/postgresql/pq_connection.cxx 
b/connectivity/source/drivers/postgresql/pq_connection.cxx
index 74402197a0a5..8b9c3bf2d20e 100644
--- a/connectivity/source/drivers/postgresql/pq_connection.cxx
+++ b/connectivity/source/drivers/postgresql/pq_connection.cxx
@@ -379,7 +379,7 @@ static void properties2arrays( const Sequence< 
PropertyValue > & args,
     // Else, at least support all keywords from
     // http://www.postgresql.org/docs/9.0/interactive/libpq-connect.html
 
-    static const char* keyword_list[] = {
+    static const char* const keyword_list[] = {
         "password",
         "user",
         "port",
diff --git a/connectivity/source/drivers/postgresql/pq_tools.cxx 
b/connectivity/source/drivers/postgresql/pq_tools.cxx
index b6e5d28f938e..23144c069e80 100644
--- a/connectivity/source/drivers/postgresql/pq_tools.cxx
+++ b/connectivity/source/drivers/postgresql/pq_tools.cxx
@@ -810,7 +810,7 @@ OString extractSingleTableFromSelect( const std::vector< 
OString > &vec )
                     }
                     else
                     {
-                        static const char * forbiddenKeywords[] =
+                        static const char* const forbiddenKeywords[] =
                             { "join", "natural", "outer", "inner", "left", 
"right", "full" , nullptr };
                         for( int i = 0 ; forbiddenKeywords[i] ; i ++ )
                         {
diff --git a/editeng/source/items/borderline.cxx 
b/editeng/source/items/borderline.cxx
index e258d876c398..6ae02cc4b951 100644
--- a/editeng/source/items/borderline.cxx
+++ b/editeng/source/items/borderline.cxx
@@ -639,7 +639,7 @@ OUString SvxBorderLine::GetValueString(MapUnit eSrcUnit,
                                        const IntlWrapper* pIntl,
                                        bool bMetricStr) const
 {
-    static TranslateId aStyleIds[] =
+    static const TranslateId aStyleIds[] =
     {
         RID_SOLID,
         RID_DOTTED,
diff --git a/editeng/source/items/frmitems.cxx 
b/editeng/source/items/frmitems.cxx
index 397a47eb710e..b66fde68912a 100644
--- a/editeng/source/items/frmitems.cxx
+++ b/editeng/source/items/frmitems.cxx
@@ -2734,7 +2734,7 @@ sal_uInt16 SvxShadowItem::CalcShadowSpace( 
SvxShadowItemSide nShadow ) const
     return nSpace;
 }
 
-static TranslateId RID_SVXITEMS_SHADOW[] =
+const TranslateId RID_SVXITEMS_SHADOW[] =
 {
     RID_SVXITEMS_SHADOW_NONE,
     RID_SVXITEMS_SHADOW_TOPLEFT,
@@ -4299,7 +4299,7 @@ bool SvxFormatBreakItem::GetPresentation
 
 OUString SvxFormatBreakItem::GetValueTextByPos( sal_uInt16 nPos )
 {
-    static TranslateId RID_SVXITEMS_BREAK[] =
+    static const TranslateId RID_SVXITEMS_BREAK[] =
     {
         RID_SVXITEMS_BREAK_NONE,
         RID_SVXITEMS_BREAK_COLUMN_BEFORE,
diff --git a/editeng/source/items/itemtype.cxx 
b/editeng/source/items/itemtype.cxx
index b95c62c1a386..373434cc9c0d 100644
--- a/editeng/source/items/itemtype.cxx
+++ b/editeng/source/items/itemtype.cxx
@@ -152,7 +152,7 @@ OUString GetColorString( const Color& rCol )
         nColor += 1;
     }
 
-    static TranslateId RID_SVXITEMS_COLORS[] =
+    static const TranslateId RID_SVXITEMS_COLORS[] =
     {
         RID_SVXITEMS_COLOR_BLACK,
         RID_SVXITEMS_COLOR_BLUE,
diff --git a/editeng/source/items/paraitem.cxx 
b/editeng/source/items/paraitem.cxx
index d06255ea3e89..e2868eeb0328 100644
--- a/editeng/source/items/paraitem.cxx
+++ b/editeng/source/items/paraitem.cxx
@@ -467,7 +467,7 @@ sal_uInt16 SvxAdjustItem::GetValueCount() const
 
 OUString SvxAdjustItem::GetValueTextByPos( sal_uInt16 nPos )
 {
-    static TranslateId RID_SVXITEMS_ADJUST[] =
+    static const TranslateId RID_SVXITEMS_ADJUST[] =
     {
         RID_SVXITEMS_ADJUST_LEFT,
         RID_SVXITEMS_ADJUST_RIGHT,
diff --git a/editeng/source/items/textitem.cxx 
b/editeng/source/items/textitem.cxx
index 22647b09669f..f23d9a7e3834 100644
--- a/editeng/source/items/textitem.cxx
+++ b/editeng/source/items/textitem.cxx
@@ -578,7 +578,7 @@ bool SvxWeightItem::GetPresentation
 
 OUString SvxWeightItem::GetValueTextByPos( sal_uInt16 nPos )
 {
-    static TranslateId RID_SVXITEMS_WEIGHTS[] =
+    static const TranslateId RID_SVXITEMS_WEIGHTS[] =
     {
         RID_SVXITEMS_WEIGHT_DONTKNOW,
         RID_SVXITEMS_WEIGHT_THIN,
@@ -1177,7 +1177,7 @@ SvxUnderlineItem* SvxUnderlineItem::Clone( SfxItemPool * 
) const
 
 OUString SvxUnderlineItem::GetValueTextByPos( sal_uInt16 nPos ) const
 {
-    static TranslateId RID_SVXITEMS_UL[] =
+    static const TranslateId RID_SVXITEMS_UL[] =
     {
         RID_SVXITEMS_UL_NONE,
         RID_SVXITEMS_UL_SINGLE,
@@ -1224,7 +1224,7 @@ SvxOverlineItem* SvxOverlineItem::Clone( SfxItemPool * ) 
const
 
 OUString SvxOverlineItem::GetValueTextByPos( sal_uInt16 nPos ) const
 {
-    static TranslateId RID_SVXITEMS_OL[] =
+    static const TranslateId RID_SVXITEMS_OL[] =
     {
         RID_SVXITEMS_OL_NONE,
         RID_SVXITEMS_OL_SINGLE,
@@ -1308,7 +1308,7 @@ bool SvxCrossedOutItem::GetPresentation
 
 OUString SvxCrossedOutItem::GetValueTextByPos( sal_uInt16 nPos )
 {
-    static TranslateId RID_SVXITEMS_STRIKEOUT[] =
+    static const TranslateId RID_SVXITEMS_STRIKEOUT[] =
     {
         RID_SVXITEMS_STRIKEOUT_NONE,
         RID_SVXITEMS_STRIKEOUT_SINGLE,
@@ -1851,7 +1851,7 @@ bool SvxCaseMapItem::GetPresentation
 
 OUString SvxCaseMapItem::GetValueTextByPos( sal_uInt16 nPos )
 {
-    static TranslateId RID_SVXITEMS_CASEMAP[] =
+    static const TranslateId RID_SVXITEMS_CASEMAP[] =
     {
         RID_SVXITEMS_CASEMAP_NONE,
         RID_SVXITEMS_CASEMAP_UPPERCASE,
@@ -2238,7 +2238,7 @@ bool SvxEmphasisMarkItem::GetPresentation
     const IntlWrapper& /*rIntl*/
 )   const
 {
-    static TranslateId RID_SVXITEMS_EMPHASIS[] =
+    static const TranslateId RID_SVXITEMS_EMPHASIS[] =
     {
         RID_SVXITEMS_EMPHASIS_NONE_STYLE,
         RID_SVXITEMS_EMPHASIS_DOT_STYLE,
@@ -2670,7 +2670,7 @@ SvxCharReliefItem* SvxCharReliefItem::Clone( SfxItemPool 
* ) const
     return new SvxCharReliefItem( *this );
 }
 
-static TranslateId RID_SVXITEMS_RELIEF[] =
+const TranslateId RID_SVXITEMS_RELIEF[] =
 {
     RID_SVXITEMS_RELIEF_NONE,
     RID_SVXITEMS_RELIEF_EMBOSSED,
diff --git a/extensions/source/propctrlr/pushbuttonnavigation.cxx 
b/extensions/source/propctrlr/pushbuttonnavigation.cxx
index 130cf322d15d..11966e4cb023 100644
--- a/extensions/source/propctrlr/pushbuttonnavigation.cxx
+++ b/extensions/source/propctrlr/pushbuttonnavigation.cxx
@@ -40,7 +40,7 @@ namespace pcr
     {
         const sal_Int32 s_nFirstVirtualButtonType = 1 + 
sal_Int32(FormButtonType_URL);
 
-        const char* pNavigationURLs[] =
+        const char* const pNavigationURLs[] =
         {
             ".uno:FormController/moveToFirst",
             ".uno:FormController/moveToPrev",
@@ -56,7 +56,7 @@ namespace pcr
 
         sal_Int32 lcl_getNavigationURLIndex( std::u16string_view _rNavURL )
         {
-            const char** pLookup = pNavigationURLs;
+            const char* const* pLookup = pNavigationURLs;
             while ( *pLookup )
             {
                 if ( o3tl::equalsAscii( _rNavURL, *pLookup ) )
@@ -68,7 +68,7 @@ namespace pcr
 
         const char* lcl_getNavigationURL( sal_Int32 _nButtonTypeIndex )
         {
-            const char** pLookup = pNavigationURLs;
+            const char* const* pLookup = pNavigationURLs;
             while ( _nButtonTypeIndex-- && *pLookup++ )
                 ;
             OSL_ENSURE( *pLookup, "lcl_getNavigationURL: invalid index!" );
diff --git a/extensions/source/scanner/sane.cxx 
b/extensions/source/scanner/sane.cxx
index e1fde5e5213c..af22c4535186 100644
--- a/extensions/source/scanner/sane.cxx
+++ b/extensions/source/scanner/sane.cxx
@@ -964,7 +964,7 @@ int Sane::GetRange( int n, std::unique_ptr<double[]>& 
rpDouble )
     }
 }
 
-static const char *ppUnits[] = {
+const char* const ppUnits[] = {
     "",
     "[Pixel]",
     "[Bit]",
diff --git a/filter/source/config/cache/typedetection.cxx 
b/filter/source/config/cache/typedetection.cxx
index 5589d188fa9a..b30efcbf066e 100644
--- a/filter/source/config/cache/typedetection.cxx
+++ b/filter/source/config/cache/typedetection.cxx
@@ -137,7 +137,7 @@ int getFlatTypeRank(std::u16string_view rType)
 {
     // List formats from more complex to less complex.
     // TODO: Add more.
-    static const char* ranks[] = {
+    static const char* const ranks[] = {
 
         // Compressed XML (ODF XML zip formats)
         "writer8_template",
diff --git a/filter/source/svg/js2hxx.py b/filter/source/svg/js2hxx.py
index d10e29787a70..9fed96d60fa3 100755
--- a/filter/source/svg/js2hxx.py
+++ b/filter/source/svg/js2hxx.py
@@ -128,7 +128,7 @@ for line in valid_lines:
 out_lines.append( ']]>";' )
 out_lines.append( '' )
 
-out_lines.append('static const char * g_SVGScripts[N_SVGSCRIPT_FRAGMENTS] = {')
+out_lines.append('static const char * const 
g_SVGScripts[N_SVGSCRIPT_FRAGMENTS] = {')
 for j in range(0, fragment+1):
     out_lines.append("    %s%d," % (VARIABLE_NAME, j))
 out_lines.append('};')
diff --git a/fpicker/source/office/OfficeControlAccess.cxx 
b/fpicker/source/office/OfficeControlAccess.cxx
index c9675f77431f..783ac2dbd3a3 100644
--- a/fpicker/source/office/OfficeControlAccess.cxx
+++ b/fpicker/source/office/OfficeControlAccess.cxx
@@ -68,7 +68,7 @@ namespace svt
         #define PROPERTY_FLAGS_CHECKBOX     ( PropFlags::Checked | 
PropFlags::Text )
 
         // Note: this array MUST be sorted by name!
-        const ControlDescription aDescriptions[] =  {
+        constexpr ControlDescription aDescriptions[] =  {
             { "AutoExtensionBox",       CHECKBOX_AUTOEXTENSION,         
PROPERTY_FLAGS_COMMON | PROPERTY_FLAGS_CHECKBOX     },
             { "CancelButton",           PUSHBUTTON_CANCEL,              
PROPERTY_FLAGS_COMMON | PropFlags::Text          },
             { "CurrentFolderText",      FIXEDTEXT_CURRENTFOLDER,        
PROPERTY_FLAGS_COMMON | PropFlags::Text          },
@@ -102,8 +102,8 @@ namespace svt
 
         const sal_Int32 s_nControlCount = SAL_N_ELEMENTS( aDescriptions );
 
-        ControlDescIterator s_pControls = aDescriptions;
-        ControlDescIterator s_pControlsEnd = aDescriptions + s_nControlCount;
+        const ControlDescription* const s_pControls = aDescriptions;
+        const ControlDescription* const s_pControlsEnd = aDescriptions + 
s_nControlCount;
 
         struct ControlDescriptionLookup
         {
@@ -121,7 +121,7 @@ namespace svt
 
         typedef const ControlProperty* ControlPropertyIterator;
 
-        const ControlProperty aProperties[] =  {
+        constexpr ControlProperty aProperties[] =  {
             { "Text",               PropFlags::Text              },
             { "Enabled",            PropFlags::Enabled          },
             { "Visible",            PropFlags::Visible           },
@@ -134,9 +134,8 @@ namespace svt
 
         const int s_nPropertyCount = SAL_N_ELEMENTS( aProperties );
 
-        ControlPropertyIterator s_pProperties = aProperties;
-        ControlPropertyIterator s_pPropertiesEnd = aProperties + 
s_nPropertyCount;
-
+        const ControlProperty* const s_pProperties = aProperties;
+        const ControlProperty* const s_pPropertiesEnd = aProperties + 
s_nPropertyCount;
 
         struct ControlPropertyLookup
         {
diff --git a/framework/source/fwe/classes/addonsoptions.cxx 
b/framework/source/fwe/classes/addonsoptions.cxx
index 86210d87e046..22f764e636f0 100644
--- a/framework/source/fwe/classes/addonsoptions.cxx
+++ b/framework/source/fwe/classes/addonsoptions.cxx
@@ -1596,7 +1596,7 @@ void AddonsOptions_Impl::ReadAndAssociateImages( const 
OUString& aURL, const OUS
     SubstituteVariables( aImageURL );
 
     // Loop to create the two possible image names and try to read the bitmap 
files
-    static const char* aExtArray[] = { "_16", "_26" };
+    static const char* const aExtArray[] = { "_16", "_26" };
     for ( size_t i = 0; i < std::size(aExtArray); i++ )
     {
         OUStringBuffer aFileURL( aImageURL );
diff --git a/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx 
b/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
index eeebdfc73730..3de216b2578f 100644
--- a/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
+++ b/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx
@@ -225,7 +225,7 @@ private:
 
 // important: The order and position of the elements must match the constant
 // definition of "css::ui::UIElementType"
-std::u16string_view UIELEMENTTYPENAMES[] =
+constexpr std::u16string_view UIELEMENTTYPENAMES[] =
 {
     u"",  // Dummy value for unknown!
     u"" UIELEMENTTYPE_MENUBAR_NAME,
diff --git a/framework/source/uiconfiguration/uiconfigurationmanager.cxx 
b/framework/source/uiconfiguration/uiconfigurationmanager.cxx
index 29be73cc0a72..f567da5be59a 100644
--- a/framework/source/uiconfiguration/uiconfigurationmanager.cxx
+++ b/framework/source/uiconfiguration/uiconfigurationmanager.cxx
@@ -202,7 +202,7 @@ private:
 
 // important: The order and position of the elements must match the constant
 // definition of "css::ui::UIElementType"
-std::u16string_view UIELEMENTTYPENAMES[] =
+constexpr std::u16string_view UIELEMENTTYPENAMES[] =
 {
     u"",  // Dummy value for unknown!
     u"" UIELEMENTTYPE_MENUBAR_NAME,
diff --git a/framework/source/uielement/controlmenucontroller.cxx 
b/framework/source/uielement/controlmenucontroller.cxx
index aaa86c78acfe..3f3257b20607 100644
--- a/framework/source/uielement/controlmenucontroller.cxx
+++ b/framework/source/uielement/controlmenucontroller.cxx
@@ -63,7 +63,7 @@ constexpr OUString aCommands[]
     u".uno:ConvertToNavigationBar"_ustr
 };
 
-static TranslateId aLabels[] =
+const TranslateId aLabels[] =
 {
     RID_STR_PROPTITLE_EDIT,
     RID_STR_PROPTITLE_PUSHBUTTON,
diff --git a/hwpfilter/source/hutil.cxx b/hwpfilter/source/hutil.cxx
index 30d176d46e91..9cddd42125dd 100644
--- a/hwpfilter/source/hutil.cxx
+++ b/hwpfilter/source/hutil.cxx
@@ -25,7 +25,7 @@
 
 static char *get_one_roman(int num, char one, char five, char ten, char *str)
 {
-    static const char *one_strs[] =
+    static const char * const one_strs[] =
     {
         "", "i", "ii", "iii", "iv", "v", "vi", "vii", "viii", "ix"
     };
diff --git a/i18npool/source/localedata/LocaleNode.cxx 
b/i18npool/source/localedata/LocaleNode.cxx
index dcc26f5bc604..a53d309ffa04 100644
--- a/i18npool/source/localedata/LocaleNode.cxx
+++ b/i18npool/source/localedata/LocaleNode.cxx
@@ -2214,7 +2214,7 @@ void LCNumberingLevelNode::generateCode (const 
OFileWriter &of) const
 
     // generate code. (top-level array)
     of.writeAsciiString("
");
-    of.writeAsciiString("static const OUString* 
LCContinuousNumberingLevelsArray[] = {
" );
+    of.writeAsciiString("static const OUString* const 
LCContinuousNumberingLevelsArray[] = {
" );
     for( i=0; i<nStyles; i++ )
     {
         of.writeAsciiString( " " );
diff --git a/i18npool/source/nativenumber/nativenumbersupplier.cxx 
b/i18npool/source/nativenumber/nativenumbersupplier.cxx
index 91e663c1f470..857bef0b562c 100644
--- a/i18npool/source/nativenumber/nativenumbersupplier.cxx
+++ b/i18npool/source/nativenumber/nativenumbersupplier.cxx
@@ -461,7 +461,7 @@ const Number natnum11 = { NumberChar_Hangul_ko, 
MultiplierChar_6_CJK[Multiplier_
 
 //! ATTENTION: Do not change order of elements!
 //! Append new languages to the end of the list!
-const char *natnum1Locales[] = {
+const char* const natnum1Locales[] = {
     "zh_CN",
     "zh_TW",
     "ja",
@@ -890,7 +890,7 @@ NativeNumberXmlAttributes SAL_CALL 
NativeNumberSupplierService::convertToXmlAttr
     static const sal_Int16 attShort         = 0;
     static const sal_Int16 attMedium        = 1;
     static const sal_Int16 attLong          = 2;
-    static const char *attType[] = { "short", "medium", "long" };
+    static const char * const attType[] = { "short", "medium", "long" };
 
     sal_Int16 number = NumberChar_HalfWidth, type = attShort;
 
diff --git a/i18npool/source/textconversion/genconv_dict.cxx 
b/i18npool/source/textconversion/genconv_dict.cxx
index 66d9c5d62d73..83906ef7e498 100644
--- a/i18npool/source/textconversion/genconv_dict.cxx
+++ b/i18npool/source/textconversion/genconv_dict.cxx
@@ -393,7 +393,7 @@ void make_stc_word(FILE *sfp, FILE *cfp)
         }
         fprintf(cfp, "
};
");
 
-        fprintf(cfp, "
static sal_Int32 STC_WordData_Count = %" SAL_PRIdINT32 ";
", sal_Int32(char_total));
+        fprintf(cfp, "
constexpr sal_Int32 STC_WordData_Count = %" SAL_PRIdINT32 ";
", sal_Int32(char_total));
 
         // create function to return arrays
         fprintf (cfp, "        const sal_Unicode* getSTC_WordData(sal_Int32& 
count) { count = STC_WordData_Count; return STC_WordData; }
");
@@ -428,7 +428,7 @@ void make_stc_word(FILE *sfp, FILE *cfp)
         }
         fprintf(cfp, "
};
");
 
-        fprintf(cfp, "
static sal_Int32 STC_WordIndex_S2T_Count = %" SAL_PRIdINT64 ";
", sal_Int64(length));
+        fprintf(cfp, "
constexpr sal_Int32 STC_WordIndex_S2T_Count = %" SAL_PRIdINT64 ";
", sal_Int64(length));
         fprintf (cfp, "        const sal_uInt16* getSTC_WordEntry_S2T() { 
return STC_WordEntry_S2T; }
");
         fprintf (cfp, "        const sal_uInt16* 
getSTC_WordIndex_S2T(sal_Int32& count) { count = STC_WordIndex_S2T_Count; 
return STC_WordIndex_S2T; }
");
     } else {
@@ -461,7 +461,7 @@ void make_stc_word(FILE *sfp, FILE *cfp)
         }
         fprintf(cfp, "
};
");
 
-        fprintf(cfp, "
static sal_Int32 STC_WordIndex_T2S_Count = %" SAL_PRIdINT64 ";

", sal_Int64(length));
+        fprintf(cfp, "
constexpr sal_Int32 STC_WordIndex_T2S_Count = %" SAL_PRIdINT64 ";

", sal_Int64(length));
         fprintf (cfp, "        const sal_uInt16* getSTC_WordEntry_T2S() { 
return STC_WordEntry_T2S; }
");
         fprintf (cfp, "        const sal_uInt16* 
getSTC_WordIndex_T2S(sal_Int32& count) { count = STC_WordIndex_T2S_Count; 
return STC_WordIndex_T2S; }
");
     } else {
diff --git a/jvmfwk/plugins/sunmajor/pluginlib/otherjre.cxx 
b/jvmfwk/plugins/sunmajor/pluginlib/otherjre.cxx
index 1dfa431fe949..96475ed600f3 100644
--- a/jvmfwk/plugins/sunmajor/pluginlib/otherjre.cxx
+++ b/jvmfwk/plugins/sunmajor/pluginlib/otherjre.cxx
@@ -32,7 +32,7 @@ Reference<VendorBase> OtherInfo::createInstance()
 
 char const* const* OtherInfo::getJavaExePaths(int * size)
 {
-    static char const * ar[] = {
+    static char const * const ar[] = {
 #if defined(_WIN32)
         "bin/java.exe",
         "jre/bin/java.exe"
@@ -47,7 +47,7 @@ char const* const* OtherInfo::getJavaExePaths(int * size)
 
 char const* const* OtherInfo::getRuntimePaths(int * size)
 {
-    static char const* ar[]= {
+    static char const* const ar[]= {
 #if defined(_WIN32)
         "/bin/client/jvm.dll",
         "/bin/hotspot/jvm.dll",
@@ -80,7 +80,7 @@ char const* const* OtherInfo::getLibraryPaths(int* size)
 
 #if defined(UNX) && !defined(MACOSX)
     //mac version does not have a ld library path anymore
-    static char const * ar[] = {
+    static char const * const ar[] = {
         "/bin",
         "/jre/bin",
         "/bin/classic",
diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx 
b/jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx
index c04337cddc18..ae229606afc5 100644
--- a/jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx
+++ b/jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx
@@ -32,7 +32,7 @@ rtl::Reference<VendorBase> SunInfo::createInstance()
 
 char const* const* SunInfo::getJavaExePaths(int * size)
 {
-    static char const * ar[] = {
+    static char const * const ar[] = {
 #if defined(_WIN32)
         "java.exe",
         "bin/java.exe",
@@ -49,7 +49,7 @@ char const* const* SunInfo::getJavaExePaths(int * size)
 
 char const* const* SunInfo::getRuntimePaths(int * size)
 {
-    static char const* ar[]= {
+    static char const* const ar[]= {
 #if defined(_WIN32)
         "/bin/client/jvm.dll",
         "/bin/hotspot/jvm.dll",
@@ -76,7 +76,7 @@ char const* const* SunInfo::getRuntimePaths(int * size)
 char const* const* SunInfo::getLibraryPaths(int* size)
 {
 #if defined UNX && !defined MACOSX
-    static char const * ar[] = {
+    static char const * const ar[] = {
         "/lib/" JFW_PLUGIN_ARCH "/client",
         "/lib/" JFW_PLUGIN_ARCH "/server",
         "/lib/" JFW_PLUGIN_ARCH "/native_threads",
diff --git a/jvmfwk/plugins/sunmajor/pluginlib/util.cxx 
b/jvmfwk/plugins/sunmajor/pluginlib/util.cxx
index 21258af12944..c5eb0ca41baf 100644
--- a/jvmfwk/plugins/sunmajor/pluginlib/util.cxx
+++ b/jvmfwk/plugins/sunmajor/pluginlib/util.cxx
@@ -62,7 +62,7 @@ using ::rtl::Reference;
 
 #if defined( UNX ) && !defined( MACOSX )
 namespace {
-char const *g_arJavaNames[] = {
+char const * const g_arJavaNames[] = {
     "",
     "j2re",
     "j2se",
@@ -74,7 +74,7 @@ char const *g_arJavaNames[] = {
 
 /* These are directory names which could contain multiple java installations.
  */
-char const *g_arCollectDirs[] = {
+char const * const g_arCollectDirs[] = {
     "",
 #ifndef JVM_ONE_PATH_CHECK
     "j2re/",
@@ -90,7 +90,7 @@ char const *g_arCollectDirs[] = {
 /* These are directories in which a java installation is
    looked for.
 */
-char const *g_arSearchPaths[] = {
+char const * const g_arSearchPaths[] = {
 #ifndef JVM_ONE_PATH_CHECK
     "",
     "usr/",
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 1f562d1c295a..f2720b30360b 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -154,7 +154,7 @@ using ::sax_fastparser::FastSerializerHelper;
 
 namespace
 {
-const char* g_aPredefinedClrNames[] = {
+const char* const g_aPredefinedClrNames[] = {
     "dk1",
     "lt1",
     "dk2",
diff --git a/pyuno/source/module/pyuno_util.cxx 
b/pyuno/source/module/pyuno_util.cxx
index 355ff2f8b828..4345c902e406 100644
--- a/pyuno/source/module/pyuno_util.cxx
+++ b/pyuno/source/module/pyuno_util.cxx
@@ -105,7 +105,7 @@ void log( RuntimeCargo * cargo, sal_Int32 level, const char 
*str )
     if( !isLog( cargo, level ) )
         return;
 
-    static const char *strLevel[] = { "NONE", "CALL", "ARGS" };
+    static const char* const strLevel[] = { "NONE", "CALL", "ARGS" };
 
     TimeValue systemTime;
     TimeValue localTime;
diff --git a/sc/source/filter/excel/xestyle.cxx 
b/sc/source/filter/excel/xestyle.cxx
index 01bc9bfe8d81..c8adf2b9c3ab 100644
--- a/sc/source/filter/excel/xestyle.cxx
+++ b/sc/source/filter/excel/xestyle.cxx
@@ -1622,7 +1622,7 @@ void lclGetBorderLine(
 
     enum CalcLineIndex{Idx_None, Idx_Solid, Idx_Dotted, Idx_Dashed, 
Idx_FineDashed, Idx_DashDot, Idx_DashDotDot, Idx_DoubleThin, Idx_Last};
     enum ExcelWidthIndex{Width_Hair, Width_Thin, Width_Medium, Width_Thick, 
Width_Last};
-    static sal_uInt8 Map_LineLO_toMS[Idx_Last][Width_Last] =
+    static const sal_uInt8 Map_LineLO_toMS[Idx_Last][Width_Last] =
     {
     //    0,05  -  0,74                  0,75  -  1,49                   1,50  
-  2,49                 2,50  -  9,00          Width Range [pt]
     //   EXC_BORDER_HAIR                EXC_BORDER_THIN                
EXC_BORDER_MEDIUM              EXC_BORDER_THICK        MS Width
diff --git a/sc/source/filter/lotus/lotform.cxx 
b/sc/source/filter/lotus/lotform.cxx
index 10bfc67e2da3..77af5956ee96 100644
--- a/sc/source/filter/lotus/lotform.cxx
+++ b/sc/source/filter/lotus/lotform.cxx
@@ -1739,7 +1739,7 @@ DefTokenId LotusToSc::IndexToTokenWK123( sal_uInt8 nIndex 
)
 
 const char* GetAddInName( const sal_uInt8 n )
 {
-    static const char*  pNames[ 256 ] =
+    static const char* const pNames[ 256 ] =
     {
         nullptr,                       //    0 8-Byte-IEEE-Float
         nullptr,                       //    1 Variable
diff --git a/sc/source/filter/oox/condformatbuffer.cxx 
b/sc/source/filter/oox/condformatbuffer.cxx
index d40b16a6e84c..62214e5a8327 100644
--- a/sc/source/filter/oox/condformatbuffer.cxx
+++ b/sc/source/filter/oox/condformatbuffer.cxx
@@ -179,7 +179,7 @@ void ColorScaleRule::importCfvo( const AttributeList& 
rAttribs )
 }
 
 // 
https://learn.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.indexedcolors?view=openxml-2.8.1
-static ::Color IndexedColors[] = {
+const ::Color IndexedColors[] = {
     0x00000000,
     0x00FFFFFF,
     0x00FF0000,
diff --git a/sc/source/ui/StatisticsDialogs/RegressionDialog.cxx 
b/sc/source/ui/StatisticsDialogs/RegressionDialog.cxx
index b75412947d96..28f0f80ffa2b 100644
--- a/sc/source/ui/StatisticsDialogs/RegressionDialog.cxx
+++ b/sc/source/ui/StatisticsDialogs/RegressionDialog.cxx
@@ -110,14 +110,14 @@ namespace
         STR_LABEL_POWER
     };
 
-    OUString constTemplateLINEST[] =
+    constexpr OUString constTemplateLINEST[] =
     {
         u"=LINEST(%VARIABLE2_RANGE% ; %VARIABLE1_RANGE% ; %CALC_INTERCEPT% ; 
TRUE)"_ustr,
         u"=LINEST(%VARIABLE2_RANGE% ; LN(%VARIABLE1_RANGE%) ; %CALC_INTERCEPT% 
; TRUE)"_ustr,
         u"=LINEST(LN(%VARIABLE2_RANGE%) ; LN(%VARIABLE1_RANGE%) ; 
%CALC_INTERCEPT% ; TRUE)"_ustr
     };
 
-    OUString constRegressionFormula[] =
+    constexpr OUString constRegressionFormula[] =
     {
         u"=MMULT(%XDATAMATRIX_RANGE% ; %SLOPES_RANGE%) + 
%INTERCEPT_ADDR%"_ustr,
         u"=MMULT(LN(%XDATAMATRIX_RANGE%) ; %SLOPES_RANGE%) + 
%INTERCEPT_ADDR%"_ustr,
diff --git a/scaddins/source/analysis/analysis.cxx 
b/scaddins/source/analysis/analysis.cxx
index bccddc82cb18..5361bc7865d1 100644
--- a/scaddins/source/analysis/analysis.cxx
+++ b/scaddins/source/analysis/analysis.cxx
@@ -278,8 +278,8 @@ OUString SAL_CALL AnalysisAddIn::getDisplayCategoryName( 
const OUString& aProgra
     return aRet;
 }
 
-static const char*          pLang[] = { "de", "en" };
-static const char*          pCoun[] = { "DE", "US" };
+const char* const pLang[] = { "de", "en" };
+const char* const pCoun[] = { "DE", "US" };
 constexpr sal_uInt32     nNumOfLoc = std::size(pLang);
 
 void AnalysisAddIn::InitDefLocales()
diff --git a/scaddins/source/analysis/analysishelper.hxx 
b/scaddins/source/analysis/analysishelper.hxx
index 2f3e673a175e..34e1e7355e5d 100644
--- a/scaddins/source/analysis/analysishelper.hxx
+++ b/scaddins/source/analysis/analysishelper.hxx
@@ -190,7 +190,7 @@ struct FuncDataBase
     const TranslateId*      pDescrID;           // resource ID to description, 
parameter names and ~ description
     bool                    bDouble;            // name already exist in Calc
     bool                    bWithOpt;           // first parameter is internal
-    const char**            pCompListID;        // list of valid names
+    const char* const*      pCompListID;        // list of valid names
     sal_uInt16              nNumOfParams;       // number of named / described 
parameters
     FDCategory              eCat;               // function category
     const char*             pSuffix;            // if bDouble, append a suffix 
other than "_ADD" for UI
diff --git a/scaddins/source/analysis/deffuncname.hxx 
b/scaddins/source/analysis/deffuncname.hxx
index 2e92394e6596..6f5edca6a575 100644
--- a/scaddins/source/analysis/deffuncname.hxx
+++ b/scaddins/source/analysis/deffuncname.hxx
@@ -19,607 +19,607 @@
 
 #pragma once
 
-static const char* ANALYSIS_DEFFUNCNAME_Workday[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Workday[2] =
 {
     reinterpret_cast<char const *>(u8"ARBEITSTAG"),
     reinterpret_cast<char const *>(u8"WORKDAY")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Yearfrac[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Yearfrac[2] =
 {
     reinterpret_cast<char const *>(u8"BRTEILJAHRE"),
     reinterpret_cast<char const *>(u8"YEARFRAC")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Edate[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Edate[2] =
 {
     reinterpret_cast<char const *>(u8"EDATUM"),
     reinterpret_cast<char const *>(u8"EDATE")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Weeknum[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Weeknum[2] =
 {
     reinterpret_cast<char const *>(u8"KALENDERWOCHE"),
     reinterpret_cast<char const *>(u8"WEEKNUM")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Eomonth[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Eomonth[2] =
 {
     reinterpret_cast<char const *>(u8"MONATSENDE"),
     reinterpret_cast<char const *>(u8"EOMONTH")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Networkdays[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Networkdays[2] =
 {
     reinterpret_cast<char const *>(u8"NETTOARBEITSTAGE"),
     reinterpret_cast<char const *>(u8"NETWORKDAYS")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Amordegrc[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Amordegrc[2] =
 {
     reinterpret_cast<char const *>(u8"AMORDEGRK"),
     reinterpret_cast<char const *>(u8"AMORDEGRC")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Amorlinc[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Amorlinc[2] =
 {
     reinterpret_cast<char const *>(u8"AMORLINEARK"),
     reinterpret_cast<char const *>(u8"AMORLINC")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Accrint[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Accrint[2] =
 {
     reinterpret_cast<char const *>(u8"AUFGELZINS"),
     reinterpret_cast<char const *>(u8"ACCRINT")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Accrintm[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Accrintm[2] =
 {
     reinterpret_cast<char const *>(u8"AUFGELZINSF"),
     reinterpret_cast<char const *>(u8"ACCRINTM")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Received[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Received[2] =
 {
     reinterpret_cast<char const *>(u8"AUSZAHLUNG"),
     reinterpret_cast<char const *>(u8"RECEIVED")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Disc[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Disc[2] =
 {
     reinterpret_cast<char const *>(u8"DISAGIO"),
     reinterpret_cast<char const *>(u8"DISC")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Duration[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Duration[2] =
 {
     reinterpret_cast<char const *>(u8"DURATION"),
     reinterpret_cast<char const *>(u8"DURATION")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Effect[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Effect[2] =
 {
     reinterpret_cast<char const *>(u8"EFFEKTIV"),
     reinterpret_cast<char const *>(u8"EFFECT")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Cumprinc[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Cumprinc[2] =
 {
     reinterpret_cast<char const *>(u8"KUMKAPITAL"),
     reinterpret_cast<char const *>(u8"CUMPRINC")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Cumipmt[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Cumipmt[2] =
 {
     reinterpret_cast<char const *>(u8"KUMZINSZ"),
     reinterpret_cast<char const *>(u8"CUMIPMT")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Price[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Price[2] =
 {
     reinterpret_cast<char const *>(u8"KURS"),
     reinterpret_cast<char const *>(u8"PRICE")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Pricedisc[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Pricedisc[2] =
 {
     reinterpret_cast<char const *>(u8"KURSDISAGIO"),
     reinterpret_cast<char const *>(u8"PRICEDISC")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Pricemat[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Pricemat[2] =
 {
     reinterpret_cast<char const *>(u8"KURSFÄLLIG"),
     reinterpret_cast<char const *>(u8"PRICEMAT")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Mduration[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Mduration[2] =
 {
     reinterpret_cast<char const *>(u8"MDURATION"),
     reinterpret_cast<char const *>(u8"MDURATION")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Nominal[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Nominal[2] =
 {
     reinterpret_cast<char const *>(u8"NOMINAL"),
     reinterpret_cast<char const *>(u8"NOMINAL")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Dollarfr[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Dollarfr[2] =
 {
     reinterpret_cast<char const *>(u8"NOTIERUNGBRU"),
     reinterpret_cast<char const *>(u8"DOLLARFR")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Dollarde[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Dollarde[2] =
 {
     reinterpret_cast<char const *>(u8"NOTIERUNGDEZ"),
     reinterpret_cast<char const *>(u8"DOLLARDE")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Yield[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Yield[2] =
 {
     reinterpret_cast<char const *>(u8"RENDITE"),
     reinterpret_cast<char const *>(u8"YIELD")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Yielddisc[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Yielddisc[2] =
 {
     reinterpret_cast<char const *>(u8"RENDITEDIS"),
     reinterpret_cast<char const *>(u8"YIELDDISC")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Yieldmat[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Yieldmat[2] =
 {
     reinterpret_cast<char const *>(u8"RENDITEFÄLL"),
     reinterpret_cast<char const *>(u8"YIELDMAT")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Tbilleq[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Tbilleq[2] =
 {
     reinterpret_cast<char const *>(u8"TBILLÄQUIV"),
     reinterpret_cast<char const *>(u8"TBILLEQ")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Tbillprice[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Tbillprice[2] =
 {
     reinterpret_cast<char const *>(u8"TBILLKURS"),
     reinterpret_cast<char const *>(u8"TBILLPRICE")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Tbillyield[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Tbillyield[2] =
 {
     reinterpret_cast<char const *>(u8"TBILLRENDITE"),
     reinterpret_cast<char const *>(u8"TBILLYIELD")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Oddfprice[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Oddfprice[2] =
 {
     reinterpret_cast<char const *>(u8"UNREGER.KURS"),
     reinterpret_cast<char const *>(u8"ODDFPRICE")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Oddfyield[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Oddfyield[2] =
 {
     reinterpret_cast<char const *>(u8"UNREGER.REND"),
     reinterpret_cast<char const *>(u8"ODDFYIELD")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Oddlprice[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Oddlprice[2] =
 {
     reinterpret_cast<char const *>(u8"UNREGLE.KURS"),
     reinterpret_cast<char const *>(u8"ODDLPRICE")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Oddlyield[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Oddlyield[2] =
 {
     reinterpret_cast<char const *>(u8"UNREGLE.REND"),
     reinterpret_cast<char const *>(u8"ODDLYIELD")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Xirr[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Xirr[2] =
 {
     reinterpret_cast<char const *>(u8"XINTZINSFUSS"),
     reinterpret_cast<char const *>(u8"XIRR")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Xnpv[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Xnpv[2] =
 {
     reinterpret_cast<char const *>(u8"XKAPITALWERT"),
     reinterpret_cast<char const *>(u8"XNPV")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Intrate[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Intrate[2] =
 {
     reinterpret_cast<char const *>(u8"ZINSSATZ"),
     reinterpret_cast<char const *>(u8"INTRATE")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Coupncd[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Coupncd[2] =
 {
     reinterpret_cast<char const *>(u8"ZINSTERMNZ"),
     reinterpret_cast<char const *>(u8"COUPNCD")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Coupdays[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Coupdays[2] =
 {
     reinterpret_cast<char const *>(u8"ZINSTERMTAGE"),
     reinterpret_cast<char const *>(u8"COUPDAYS")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Coupdaysnc[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Coupdaysnc[2] =
 {
     reinterpret_cast<char const *>(u8"ZINSTERMTAGNZ"),
     reinterpret_cast<char const *>(u8"COUPDAYSNC")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Coupdaybs[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Coupdaybs[2] =
 {
     reinterpret_cast<char const *>(u8"ZINSTERMTAGVA"),
     reinterpret_cast<char const *>(u8"COUPDAYBS")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Couppcd[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Couppcd[2] =
 {
     reinterpret_cast<char const *>(u8"ZINSTERMVZ"),
     reinterpret_cast<char const *>(u8"COUPPCD")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Coupnum[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Coupnum[2] =
 {
     reinterpret_cast<char const *>(u8"ZINSTERMZAHL"),
     reinterpret_cast<char const *>(u8"COUPNUM")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Fvschedule[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Fvschedule[2] =
 {
     reinterpret_cast<char const *>(u8"ZW2"),
     reinterpret_cast<char const *>(u8"FVSCHEDULE")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Iseven[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Iseven[2] =
 {
     reinterpret_cast<char const *>(u8"ISTGERADE"),
     reinterpret_cast<char const *>(u8"ISEVEN")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Isodd[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Isodd[2] =
 {
     reinterpret_cast<char const *>(u8"ISTUNGERADE"),
     reinterpret_cast<char const *>(u8"ISODD")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Gcd[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Gcd[2] =
 {
     reinterpret_cast<char const *>(u8"GGT"),
     reinterpret_cast<char const *>(u8"GCD")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Lcm[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Lcm[2] =
 {
     reinterpret_cast<char const *>(u8"KGV"),
     reinterpret_cast<char const *>(u8"LCM")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Multinomial[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Multinomial[2] =
 {
     reinterpret_cast<char const *>(u8"POLYNOMIAL"),
     reinterpret_cast<char const *>(u8"MULTINOMIAL")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Seriessum[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Seriessum[2] =
 {
     reinterpret_cast<char const *>(u8"POTENZREIHE"),
     reinterpret_cast<char const *>(u8"SERIESSUM")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Quotient[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Quotient[2] =
 {
     reinterpret_cast<char const *>(u8"QUOTIENT"),
     reinterpret_cast<char const *>(u8"QUOTIENT")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Mround[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Mround[2] =
 {
     reinterpret_cast<char const *>(u8"VRUNDEN"),
     reinterpret_cast<char const *>(u8"MROUND")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Sqrtpi[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Sqrtpi[2] =
 {
     reinterpret_cast<char const *>(u8"WURZELPI"),
     reinterpret_cast<char const *>(u8"SQRTPI")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Randbetween[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Randbetween[2] =
 {
     reinterpret_cast<char const *>(u8"ZUFALLSBEREICH"),
     reinterpret_cast<char const *>(u8"RANDBETWEEN")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Besseli[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Besseli[2] =
 {
     reinterpret_cast<char const *>(u8"BESSELI"),
     reinterpret_cast<char const *>(u8"BESSELI")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Besselj[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Besselj[2] =
 {
     reinterpret_cast<char const *>(u8"BESSELJ"),
     reinterpret_cast<char const *>(u8"BESSELJ")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Besselk[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Besselk[2] =
 {
     reinterpret_cast<char const *>(u8"BESSELK"),
     reinterpret_cast<char const *>(u8"BESSELK")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Bessely[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Bessely[2] =
 {
     reinterpret_cast<char const *>(u8"BESSELY"),
     reinterpret_cast<char const *>(u8"BESSELY")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Bin2Dec[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Bin2Dec[2] =
 {
     reinterpret_cast<char const *>(u8"BININDEZ"),
     reinterpret_cast<char const *>(u8"BIN2DEC")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Bin2Hex[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Bin2Hex[2] =
 {
     reinterpret_cast<char const *>(u8"BININHEX"),
     reinterpret_cast<char const *>(u8"BIN2HEX")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Bin2Oct[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Bin2Oct[2] =
 {
     reinterpret_cast<char const *>(u8"BININOKT"),
     reinterpret_cast<char const *>(u8"BIN2OCT")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Delta[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Delta[2] =
 {
     reinterpret_cast<char const *>(u8"DELTA"),
     reinterpret_cast<char const *>(u8"DELTA")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Dec2Bin[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Dec2Bin[2] =
 {
     reinterpret_cast<char const *>(u8"DEZINBIN"),
     reinterpret_cast<char const *>(u8"DEC2BIN")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Dec2Hex[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Dec2Hex[2] =
 {
     reinterpret_cast<char const *>(u8"DEZINHEX"),
     reinterpret_cast<char const *>(u8"DEC2HEX")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Dec2Oct[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Dec2Oct[2] =
 {
     reinterpret_cast<char const *>(u8"DEZINOKT"),
     reinterpret_cast<char const *>(u8"DEC2OCT")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Erf[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Erf[2] =
 {
     reinterpret_cast<char const *>(u8"GAUSSFEHLER"),
     reinterpret_cast<char const *>(u8"ERF")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Erfc[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Erfc[2] =
 {
     reinterpret_cast<char const *>(u8"GAUSSFKOMPL"),
     reinterpret_cast<char const *>(u8"ERFC")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Gestep[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Gestep[2] =
 {
     reinterpret_cast<char const *>(u8"GGANZZAHL"),
     reinterpret_cast<char const *>(u8"GESTEP")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Hex2Bin[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Hex2Bin[2] =
 {
     reinterpret_cast<char const *>(u8"HEXINBIN"),
     reinterpret_cast<char const *>(u8"HEX2BIN")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Hex2Dec[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Hex2Dec[2] =
 {
     reinterpret_cast<char const *>(u8"HEXINDEZ"),
     reinterpret_cast<char const *>(u8"HEX2DEC")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Hex2Oct[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Hex2Oct[2] =
 {
     reinterpret_cast<char const *>(u8"HEXINOKT"),
     reinterpret_cast<char const *>(u8"HEX2OCT")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imabs[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imabs[2] =
 {
     reinterpret_cast<char const *>(u8"IMABS"),
     reinterpret_cast<char const *>(u8"IMABS")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imaginary[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imaginary[2] =
 {
     reinterpret_cast<char const *>(u8"IMAGINÄRTEIL"),
     reinterpret_cast<char const *>(u8"IMAGINARY")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Impower[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Impower[2] =
 {
     reinterpret_cast<char const *>(u8"IMAPOTENZ"),
     reinterpret_cast<char const *>(u8"IMPOWER")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imargument[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imargument[2] =
 {
     reinterpret_cast<char const *>(u8"IMARGUMENT"),
     reinterpret_cast<char const *>(u8"IMARGUMENT")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imcos[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imcos[2] =
 {
     reinterpret_cast<char const *>(u8"IMCOS"),
     reinterpret_cast<char const *>(u8"IMCOS")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imdiv[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imdiv[2] =
 {
     reinterpret_cast<char const *>(u8"IMDIV"),
     reinterpret_cast<char const *>(u8"IMDIV")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imexp[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imexp[2] =
 {
     reinterpret_cast<char const *>(u8"IMEXP"),
     reinterpret_cast<char const *>(u8"IMEXP")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imconjugate[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imconjugate[2] =
 {
     reinterpret_cast<char const *>(u8"IMKONJUGIERTE"),
     reinterpret_cast<char const *>(u8"IMCONJUGATE")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imln[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imln[2] =
 {
     reinterpret_cast<char const *>(u8"IMLN"),
     reinterpret_cast<char const *>(u8"IMLN")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imlog10[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imlog10[2] =
 {
     reinterpret_cast<char const *>(u8"IMLOG10"),
     reinterpret_cast<char const *>(u8"IMLOG10")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imlog2[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imlog2[2] =
 {
     reinterpret_cast<char const *>(u8"IMLOG2"),
     reinterpret_cast<char const *>(u8"IMLOG2")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Improduct[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Improduct[2] =
 {
     reinterpret_cast<char const *>(u8"IMPRODUKT"),
     reinterpret_cast<char const *>(u8"IMPRODUCT")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imreal[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imreal[2] =
 {
     reinterpret_cast<char const *>(u8"IMREALTEIL"),
     reinterpret_cast<char const *>(u8"IMREAL")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imsin[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imsin[2] =
 {
     reinterpret_cast<char const *>(u8"IMSIN"),
     reinterpret_cast<char const *>(u8"IMSIN")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imsub[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imsub[2] =
 {
     reinterpret_cast<char const *>(u8"IMSUB"),
     reinterpret_cast<char const *>(u8"IMSUB")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imsum[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imsum[2] =
 {
     reinterpret_cast<char const *>(u8"IMSUMME"),
     reinterpret_cast<char const *>(u8"IMSUM")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imsqrt[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imsqrt[2] =
 {
     reinterpret_cast<char const *>(u8"IMWURZEL"),
     reinterpret_cast<char const *>(u8"IMSQRT")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imtan[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imtan[2] =
 {
     reinterpret_cast<char const *>(u8"IMTAN"),
     reinterpret_cast<char const *>(u8"IMTAN")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imsec[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imsec[2] =
 {
     reinterpret_cast<char const *>(u8"IMSEC"),
     reinterpret_cast<char const *>(u8"IMSEC")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imcsc[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imcsc[2] =
 {
     reinterpret_cast<char const *>(u8"IMCSC"),
     reinterpret_cast<char const *>(u8"IMCSC")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imcot[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imcot[2] =
 {
     reinterpret_cast<char const *>(u8"IMCOT"),
     reinterpret_cast<char const *>(u8"IMCOT")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imsinh[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imsinh[2] =
 {
     reinterpret_cast<char const *>(u8"IMSINH"),
     reinterpret_cast<char const *>(u8"IMSINH")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imcosh[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imcosh[2] =
 {
     reinterpret_cast<char const *>(u8"IMCOSH"),
     reinterpret_cast<char const *>(u8"IMCOSH")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imsech[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imsech[2] =
 {
     reinterpret_cast<char const *>(u8"IMSECH"),
     reinterpret_cast<char const *>(u8"IMSECH")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Imcsch[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Imcsch[2] =
 {
     reinterpret_cast<char const *>(u8"IMCSCH"),
     reinterpret_cast<char const *>(u8"IMCSCH")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Complex[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Complex[2] =
 {
     reinterpret_cast<char const *>(u8"KOMPLEXE"),
     reinterpret_cast<char const *>(u8"COMPLEX")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Oct2Bin[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Oct2Bin[2] =
 {
     reinterpret_cast<char const *>(u8"OKTINBIN"),
     reinterpret_cast<char const *>(u8"OCT2BIN")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Oct2Dec[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Oct2Dec[2] =
 {
     reinterpret_cast<char const *>(u8"OKTINDEZ"),
     reinterpret_cast<char const *>(u8"OCT2DEC")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Oct2Hex[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Oct2Hex[2] =
 {
     reinterpret_cast<char const *>(u8"OKTINHEX"),
     reinterpret_cast<char const *>(u8"OCT2HEX")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Convert[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Convert[2] =
 {
     reinterpret_cast<char const *>(u8"UMWANDELN"),
     reinterpret_cast<char const *>(u8"CONVERT")
 };
 
-static const char* ANALYSIS_DEFFUNCNAME_Factdouble[2] =
+const char* const ANALYSIS_DEFFUNCNAME_Factdouble[2] =
 {
     reinterpret_cast<char const *>(u8"ZWEIFAKULTÄT"),
     reinterpret_cast<char const *>(u8"FACTDOUBLE")
diff --git a/scaddins/source/datefunc/datefunc.cxx 
b/scaddins/source/datefunc/datefunc.cxx
index 07ecd46c6046..e47e260a95a2 100644
--- a/scaddins/source/datefunc/datefunc.cxx
+++ b/scaddins/source/datefunc/datefunc.cxx
@@ -100,8 +100,8 @@ ScaDateAddIn::ScaDateAddIn()
 {
 }
 
-static const char*  pLang[] = { "de", "en" };
-static const char*  pCoun[] = { "DE", "US" };
+const char* const pLang[] = { "de", "en" };
+const char* const pCoun[] = { "DE", "US" };
 constexpr sal_uInt32 nNumOfLoc = std::size( pLang );
 
 void ScaDateAddIn::InitDefLocales()
diff --git a/scaddins/source/datefunc/datefunc.hxx 
b/scaddins/source/datefunc/datefunc.hxx
index 0dd6b5fa2f1c..1811148b351f 100644
--- a/scaddins/source/datefunc/datefunc.hxx
+++ b/scaddins/source/datefunc/datefunc.hxx
@@ -49,7 +49,7 @@ struct ScaFuncDataBase
     const char*                 pIntName;           // internal name (get***)
     TranslateId                 pUINameID;          // resource ID to UI name
     const TranslateId*          pDescrID;           // resource ID to 
description, parameter names and ~ description
-    const char**                pCompListID;        // list of valid names
+    const char* const*          pCompListID;        // list of valid names
     sal_uInt16                  nParamCount;        // number of named / 
described parameters
     ScaCategory                 eCat;               // function category
     bool                        bDouble;            // name already exist in 
Calc
diff --git a/scaddins/source/datefunc/deffuncname.hxx 
b/scaddins/source/datefunc/deffuncname.hxx
index 493ef9393cb4..6e5ae192cd7a 100644
--- a/scaddins/source/datefunc/deffuncname.hxx
+++ b/scaddins/source/datefunc/deffuncname.hxx
@@ -19,49 +19,49 @@
 
 #pragma once
 
-static const char* DATE_DEFFUNCNAME_DiffWeeks[2] =
+const char* const DATE_DEFFUNCNAME_DiffWeeks[2] =
 {
     "WOCHEN",
     "WEEKS"
 };
 
-static const char* DATE_DEFFUNCNAME_DiffMonths[2] =
+const char* const DATE_DEFFUNCNAME_DiffMonths[2] =
 {
     "MONATE",
     "MONTHS"
 };
 
-static const char* DATE_DEFFUNCNAME_DiffYears[2] =
+const char* const DATE_DEFFUNCNAME_DiffYears[2] =
 {
     "JAHRE",
     "YEARS"
 };
 
-static const char* DATE_DEFFUNCNAME_IsLeapYear[2] =
+const char* const DATE_DEFFUNCNAME_IsLeapYear[2] =
 {
     "ISTSCHALTJAHR",
     "ISLEAPYEAR"
 };
 
-static const char* DATE_DEFFUNCNAME_DaysInMonth[2] =
+const char* const DATE_DEFFUNCNAME_DaysInMonth[2] =
 {
     "TAGEIMMONAT",
     "DAYSINMONTH"
 };
 
-static const char* DATE_DEFFUNCNAME_DaysInYear[2] =
+const char* const DATE_DEFFUNCNAME_DaysInYear[2] =
 {
     "TAGEIMJAHR",
     "DAYSINYEAR"
 };
 
-static const char* DATE_DEFFUNCNAME_WeeksInYear[2] =
+const char* const DATE_DEFFUNCNAME_WeeksInYear[2] =
 {
     "WOCHENIMJAHR",
     "WEEKSINYEAR"
 };
 
-static const char* DATE_DEFFUNCNAME_Rot13[2] =
+const char* const DATE_DEFFUNCNAME_Rot13[2] =
 {
     "ROT13",
     "ROT13"
diff --git a/scaddins/source/pricing/pricing.cxx 
b/scaddins/source/pricing/pricing.cxx
index 2ca1a2cfd581..b430623c6d1a 100644
--- a/scaddins/source/pricing/pricing.cxx
+++ b/scaddins/source/pricing/pricing.cxx
@@ -96,8 +96,8 @@ ScaPricingAddIn::~ScaPricingAddIn()
 {
 }
 
-static const char*  pLang[] = { "en" };
-static const char*  pCoun[] = { "US" };
+const char* const pLang[] = { "en" };
+const char* const pCoun[] = { "US" };
 constexpr sal_uInt32 nNumOfLoc = std::size( pLang );
 
 void ScaPricingAddIn::InitDefLocales()
diff --git a/sd/source/ui/dlg/PaneShells.cxx b/sd/source/ui/dlg/PaneShells.cxx
index 8f1d1c0f3831..726d1966b2eb 100644
--- a/sd/source/ui/dlg/PaneShells.cxx
+++ b/sd/source/ui/dlg/PaneShells.cxx
@@ -28,7 +28,7 @@ namespace sd {
 
 //===== LeftImpressPaneShell ==================================================
 
-static SfxSlot aLeftImpressPaneShellSlots_Impl[] =
+const SfxSlot aLeftImpressPaneShellSlots_Impl[] =
 {
     { 0, SfxGroupId::NONE, SfxSlotMode::NONE, 0, 0, nullptr, nullptr, nullptr, 
nullptr, nullptr, 0, SfxDisableFlags::NONE, u""_ustr }
 };
@@ -52,7 +52,7 @@ LeftImpressPaneShell::~LeftImpressPaneShell()
 
 //===== BottomImpressPaneShell 
==================================================
 
-static SfxSlot aBottomImpressPaneShellSlots_Impl[]
+const SfxSlot aBottomImpressPaneShellSlots_Impl[]
     = { { 0, SfxGroupId::NONE, SfxSlotMode::NONE, 0, 0, nullptr, nullptr, 
nullptr, nullptr, nullptr,
           0, SfxDisableFlags::NONE, u""_ustr } };
 
@@ -69,7 +69,7 @@ BottomImpressPaneShell::~BottomImpressPaneShell() {}
 
 //===== LeftDrawPaneShell =====================================================
 
-static SfxSlot aLeftDrawPaneShellSlots_Impl[] =
+const SfxSlot aLeftDrawPaneShellSlots_Impl[] =
 {
     { 0, SfxGroupId::NONE, SfxSlotMode::NONE, 0, 0, nullptr, nullptr, nullptr, 
nullptr, nullptr, 0, SfxDisableFlags::NONE, u""_ustr }
 };
diff --git a/slideshow/source/engine/animationnodes/basenode.cxx 
b/slideshow/source/engine/animationnodes/basenode.cxx
index dd8387eddb1b..315cca77b168 100644
--- a/slideshow/source/engine/animationnodes/basenode.cxx
+++ b/slideshow/source/engine/animationnodes/basenode.cxx
@@ -188,7 +188,7 @@ const int* getStateTransitionTable( sal_Int16 nRestartMode,
         AnimationNode::ENDED|AnimationNode::ACTIVE|AnimationNode::RESOLVED  // 
active successors for ENDED: restart
     };
 
-    static const StateTransitionTable* tableGuide[] = {
+    static const StateTransitionTable* const tableGuide[] = {
         &stateTransitionTable_Never_Remove,
         &stateTransitionTable_NotActive_Remove,
         &stateTransitionTable_Always_Remove,
diff --git a/stoc/source/security/permissions.cxx 
b/stoc/source/security/permissions.cxx
index b99aa9420a59..e2f57c04a1e0 100644
--- a/stoc/source/security/permissions.cxx
+++ b/stoc/source/security/permissions.cxx
@@ -100,7 +100,7 @@ namespace {
 
 class SocketPermission : public Permission
 {
-    static char const * s_actions [];
+    static char const * const s_actions [];
     sal_Int32 m_actions;
 
     OUString m_host;
@@ -123,7 +123,7 @@ public:
 
 }
 
-char const * SocketPermission::s_actions [] = { "accept", "connect", "listen", 
"resolve", nullptr };
+char const * const SocketPermission::s_actions [] = { "accept", "connect", 
"listen", "resolve", nullptr };
 
 SocketPermission::SocketPermission(
     connection::SocketPermission const & perm,
@@ -268,7 +268,7 @@ namespace {
 
 class FilePermission : public Permission
 {
-    static char const * s_actions [];
+    static char const * const s_actions [];
     sal_Int32 m_actions;
 
     OUString m_url;
@@ -284,7 +284,7 @@ public:
 
 }
 
-char const * FilePermission::s_actions [] = { "read", "write", "execute", 
"delete", nullptr };
+char const * const FilePermission::s_actions [] = { "read", "write", 
"execute", "delete", nullptr };
 
 static OUString const & getWorkingDir()
 {
diff --git a/svx/source/form/fmshimp.cxx b/svx/source/form/fmshimp.cxx
index 99e43e908ac3..76c5106c39d2 100644
--- a/svx/source/form/fmshimp.cxx
+++ b/svx/source/form/fmshimp.cxx
@@ -180,7 +180,7 @@ const sal_uInt16 SelObjectSlotMap[] =  // slots depending 
on the SelObject
 
 // the following arrays must be consistent, i.e., corresponding entries should
 // be at the same relative position within their respective arrays
-static std::u16string_view aConvertSlots[] =
+constexpr std::u16string_view aConvertSlots[] =
 {
     u"ConvertToEdit",
     u"ConvertToButton",
diff --git a/svx/source/form/fmtextcontrolshell.cxx 
b/svx/source/form/fmtextcontrolshell.cxx
index 4dd1f84ce274..bc5a2b72f792 100644
--- a/svx/source/form/fmtextcontrolshell.cxx
+++ b/svx/source/form/fmtextcontrolshell.cxx
@@ -80,7 +80,7 @@ namespace svx
     typedef sal_uInt16 WhichId;
 
 
-    static SfxSlotId pTextControlSlots[] =
+    constexpr SfxSlotId pTextControlSlots[] =
     {
         SID_CLIPBOARD_FORMAT_ITEMS,
         SID_CUT,
@@ -130,7 +130,7 @@ namespace svx
     // slots which we are not responsible for on the SfxShell level, but
     // need to handle during the "paragraph attributes" and/or "character
     // attributes" dialogs
-    static SfxSlotId pDialogSlots[] =
+    constexpr SfxSlotId pDialogSlots[] =
     {
         SID_ATTR_TABSTOP,
         SID_ATTR_PARA_HANGPUNCTUATION,
@@ -1207,7 +1207,8 @@ namespace svx
     }
 
 
-    void FmTextControlShell::fillFeatureDispatchers(const Reference< 
css::awt::XControl >& _rxControl, SfxSlotId* _pZeroTerminatedSlots,
+    void FmTextControlShell::fillFeatureDispatchers(const Reference< 
css::awt::XControl >& _rxControl,
+            const SfxSlotId* _pZeroTerminatedSlots,
             ControlFeatures& _rDispatchers)
     {
         Reference< XDispatchProvider > xProvider( _rxControl, UNO_QUERY );
@@ -1215,7 +1216,7 @@ namespace svx
         DBG_ASSERT( pApplication, "FmTextControlShell::fillFeatureDispatchers: 
no SfxApplication!" );
         if ( xProvider.is() && pApplication )
         {
-            SfxSlotId* pSlots = _pZeroTerminatedSlots;
+            const SfxSlotId* pSlots = _pZeroTerminatedSlots;
             while ( *pSlots )
             {
                 rtl::Reference<FmTextControlFeature> pDispatcher = 
implGetFeatureDispatcher( xProvider, pApplication, *pSlots );
diff --git a/svx/source/inc/fmtextcontrolshell.hxx 
b/svx/source/inc/fmtextcontrolshell.hxx
index 3b0a4896d2cd..bb007f88b536 100644
--- a/svx/source/inc/fmtextcontrolshell.hxx
+++ b/svx/source/inc/fmtextcontrolshell.hxx
@@ -160,7 +160,7 @@ namespace svx
         // fills the given structure with dispatchers for the given slots, for 
the given control
         void            fillFeatureDispatchers(
                             const css::uno::Reference< css::awt::XControl >& 
_rxControl,
-                            SfxSlotId* _pZeroTerminatedSlots,
+                            const SfxSlotId* _pZeroTerminatedSlots,
                             ControlFeatures& _rDispatchers
                         );
 
diff --git a/svx/source/svdraw/svdattr.cxx b/svx/source/svdraw/svdattr.cxx
index 27990fd7a031..1f6f4108fdb5 100644
--- a/svx/source/svdraw/svdattr.cxx
+++ b/svx/source/svdraw/svdattr.cxx
@@ -1078,7 +1078,7 @@ sal_uInt16 SdrCaptionTypeItem::GetValueCount() const { 
return 4; }
 
 OUString SdrCaptionTypeItem::GetValueTextByPos(sal_uInt16 nPos)
 {
-    static TranslateId ITEMVALCAPTIONTYPES[] =
+    static const TranslateId ITEMVALCAPTIONTYPES[] =
     {
         STR_ItemValCAPTIONTYPE1,
         STR_ItemValCAPTIONTYPE2,
@@ -1106,7 +1106,7 @@ sal_uInt16 SdrCaptionEscDirItem::GetValueCount() const { 
return 3; }
 
 OUString SdrCaptionEscDirItem::GetValueTextByPos(sal_uInt16 nPos)
 {
-    static TranslateId ITEMVALCAPTIONTYPES[] =
+    static const TranslateId ITEMVALCAPTIONTYPES[] =
     {
         STR_ItemValCAPTIONESCHORI,
         STR_ItemValCAPTIONESCVERT,
@@ -1151,7 +1151,7 @@ sal_uInt16 SdrTextFitToSizeTypeItem::GetValueCount() 
const { return 4; }
 
 OUString SdrTextFitToSizeTypeItem::GetValueTextByPos(sal_uInt16 nPos)
 {
-    static TranslateId ITEMVALFITTISIZETYPES[] =
+    static const TranslateId ITEMVALFITTISIZETYPES[] =
     {
         STR_ItemValFITTOSIZENONE,
         STR_ItemValFITTOSIZEPROP,
@@ -1213,7 +1213,7 @@ sal_uInt16 SdrTextVertAdjustItem::GetValueCount() const { 
return 5; }
 
 OUString SdrTextVertAdjustItem::GetValueTextByPos(sal_uInt16 nPos)
 {
-    static TranslateId ITEMVALTEXTVADJTYPES[] =
+    static const TranslateId ITEMVALTEXTVADJTYPES[] =
     {
         STR_ItemValTEXTVADJTOP,
         STR_ItemValTEXTVADJCENTER,
@@ -1272,7 +1272,7 @@ sal_uInt16 SdrTextHorzAdjustItem::GetValueCount() const { 
return 5; }
 
 OUString SdrTextHorzAdjustItem::GetValueTextByPos(sal_uInt16 nPos)
 {
-    static TranslateId ITEMVALTEXTHADJTYPES[] =
+    static const TranslateId ITEMVALTEXTHADJTYPES[] =
     {
         STR_ItemValTEXTHADJLEFT,
         STR_ItemValTEXTHADJCENTER,
@@ -1324,7 +1324,7 @@ sal_uInt16 SdrTextAniKindItem::GetValueCount() const { 
return 5; }
 
 OUString SdrTextAniKindItem::GetValueTextByPos(sal_uInt16 nPos)
 {
-    static TranslateId ITEMVALTEXTANITYPES[] =
+    static const TranslateId ITEMVALTEXTANITYPES[] =
     {
         STR_ItemValTEXTANI_NONE,
         STR_ItemValTEXTANI_BLINK,
@@ -1375,7 +1375,7 @@ sal_uInt16 SdrTextAniDirectionItem::GetValueCount() const 
{ return 4; }
 
 OUString SdrTextAniDirectionItem::GetValueTextByPos(sal_uInt16 nPos)
 {
-    static TranslateId ITEMVALTEXTANITYPES[] =
+    static const TranslateId ITEMVALTEXTANITYPES[] =
     {
         STR_ItemValTEXTANI_LEFT,
         STR_ItemValTEXTANI_UP,
@@ -1528,7 +1528,7 @@ sal_uInt16 SdrEdgeKindItem::GetValueCount() const { 
return 4; }
 
 OUString SdrEdgeKindItem::GetValueTextByPos(sal_uInt16 nPos)
 {
-    static TranslateId ITEMVALEDGES[] =
+    static const TranslateId ITEMVALEDGES[] =
     {
         STR_ItemValEDGE_ORTHOLINES,
         STR_ItemValEDGE_THREELINES,
@@ -1696,7 +1696,7 @@ sal_uInt16 SdrMeasureKindItem::GetValueCount() const { 
return 2; }
 
 OUString SdrMeasureKindItem::GetValueTextByPos(sal_uInt16 nPos)
 {
-    static TranslateId ITEMVALMEASURETYPES[] =
+    static const TranslateId ITEMVALMEASURETYPES[] =
     {
         STR_ItemValMEASURE_STD,
         STR_ItemValMEASURE_RADIUS
@@ -1793,7 +1793,7 @@ sal_uInt16 SdrMeasureTextVPosItem::GetValueCount() const 
{ return 5; }
 
 OUString SdrMeasureTextVPosItem::GetValueTextByPos(sal_uInt16 nPos)
 {
-    static TranslateId ITEMVALMEASURETEXTTYPES[] =
+    static const TranslateId ITEMVALMEASURETEXTTYPES[] =
     {
         STR_ItemValMEASURE_TEXTVAUTO,
         STR_ItemValMEASURE_ABOVE,
@@ -1882,7 +1882,7 @@ sal_uInt16 SdrCircKindItem::GetValueCount() const { 
return 4; }
 
 OUString SdrCircKindItem::GetValueTextByPos(sal_uInt16 nPos)
 {
-    static TranslateId ITEMVALCIRCTYPES[] =
+    static const TranslateId ITEMVALCIRCTYPES[] =
     {
         STR_ItemValCIRC_FULL,
         STR_ItemValCIRC_SECT,
diff --git a/svx/source/tbxctrls/extrusioncontrols.cxx 
b/svx/source/tbxctrls/extrusioncontrols.cxx
index 54e4f7eb9c7b..995e97f3f910 100644
--- a/svx/source/tbxctrls/extrusioncontrols.cxx
+++ b/svx/source/tbxctrls/extrusioncontrols.cxx
@@ -98,7 +98,7 @@ constexpr OUString aDirectionBmps[] =
     RID_SVXBMP_DIRECTION_DIRECTION_SE
 };
 
-static TranslateId aDirectionStrs[] =
+constexpr TranslateId aDirectionStrs[] =
 {
     RID_SVXSTR_DIRECTION_NW,
     RID_SVXSTR_DIRECTION_N,
diff --git a/svx/source/xml/xmlgrhlp.cxx b/svx/source/xml/xmlgrhlp.cxx
index e6cc29db7bfa..32f217365a9a 100644
--- a/svx/source/xml/xmlgrhlp.cxx
+++ b/svx/source/xml/xmlgrhlp.cxx
@@ -766,7 +766,7 @@ OUString 
SvXMLGraphicHelper::implSaveGraphic(css::uno::Reference<css::graphic::X
             // storage compression
             // .svm pics gets compressed via ZBITMAP old-style stream
             // option below
-            static const char* aCompressiblePics[] =
+            static const char* const aCompressiblePics[] =
             {
                 "image/svg+xml",
                 "image/x-emf",
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx 
b/sw/source/filter/ww8/docxattributeoutput.cxx
index 59cbead94f7c..67b31e72768d 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -1575,7 +1575,7 @@ void 
lcl_writeParagraphMarkerProperties(DocxAttributeOutput& rAttributeOutput, c
     rAttributeOutput.GetExport().SetCurItemSet(pOldI);
 }
 
-const char *RubyAlignValues[] =
+const char * const RubyAlignValues[] =
 {
     "center",
     "distributeLetter",
diff --git a/sw/source/filter/ww8/fields.cxx b/sw/source/filter/ww8/fields.cxx
index 4c7dd8760028..26313c5c9ccd 100644
--- a/sw/source/filter/ww8/fields.cxx
+++ b/sw/source/filter/ww8/fields.cxx
@@ -29,7 +29,7 @@ namespace ww
         // #i43956# - field <eFOOTREF> = 5 should be mapped to "REF"
         // See [MS-DOC] 2.9.90 flt
         // 
https://docs.microsoft.com/en-us/openspecs/office_file_formats/ms-doc/28a8d2c2-6107-409d-8f6a-e345ab6d4179
-        static const char *aFieldNames[] =
+        static const char* const aFieldNames[] =
         {
             /* 0*/  nullptr,
             /* 1*/  nullptr,
diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx 
b/sw/source/filter/ww8/rtfattributeoutput.cxx
index 01b92a9876db..c31e4a510535 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.cxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.cxx
@@ -823,11 +823,11 @@ void RtfAttributeOutput::TableDefinition(
     static const SvxBoxItemLine aBorders[] = { SvxBoxItemLine::TOP, 
SvxBoxItemLine::LEFT,
                                                SvxBoxItemLine::BOTTOM, 
SvxBoxItemLine::RIGHT };
 
-    static const char* aRowPadNames[]
+    static const char* const aRowPadNames[]
         = { OOO_STRING_SVTOOLS_RTF_TRPADDT, OOO_STRING_SVTOOLS_RTF_TRPADDL,
             OOO_STRING_SVTOOLS_RTF_TRPADDB, OOO_STRING_SVTOOLS_RTF_TRPADDR };
 
-    static const char* aRowPadUnits[]
+    static const char* const aRowPadUnits[]
         = { OOO_STRING_SVTOOLS_RTF_TRPADDFT, OOO_STRING_SVTOOLS_RTF_TRPADDFL,
             OOO_STRING_SVTOOLS_RTF_TRPADDFB, OOO_STRING_SVTOOLS_RTF_TRPADDFR };
 
@@ -893,15 +893,15 @@ void RtfAttributeOutput::TableDefaultBorders(
     auto& rBox = *pItem;
     static const SvxBoxItemLine aBorders[] = { SvxBoxItemLine::TOP, 
SvxBoxItemLine::LEFT,
                                                SvxBoxItemLine::BOTTOM, 
SvxBoxItemLine::RIGHT };
-    static const char* aBorderNames[]
+    static const char* const aBorderNames[]
         = { OOO_STRING_SVTOOLS_RTF_CLBRDRT, OOO_STRING_SVTOOLS_RTF_CLBRDRL,
             OOO_STRING_SVTOOLS_RTF_CLBRDRB, OOO_STRING_SVTOOLS_RTF_CLBRDRR };
     //Yes left and top are swapped with each other for cell padding! Because
     //that's what the thundering annoying rtf export/import word xp does.
-    static const char* aCellPadNames[]
+    static const char* const aCellPadNames[]
         = { OOO_STRING_SVTOOLS_RTF_CLPADL, OOO_STRING_SVTOOLS_RTF_CLPADT,
             OOO_STRING_SVTOOLS_RTF_CLPADB, OOO_STRING_SVTOOLS_RTF_CLPADR };
-    static const char* aCellPadUnits[]
+    static const char* const aCellPadUnits[]
         = { OOO_STRING_SVTOOLS_RTF_CLPADFL, OOO_STRING_SVTOOLS_RTF_CLPADFT,
             OOO_STRING_SVTOOLS_RTF_CLPADFB, OOO_STRING_SVTOOLS_RTF_CLPADFR };
     for (int i = 0; i < 4; ++i)
@@ -3829,7 +3829,7 @@ void RtfAttributeOutput::FormatBox(const SvxBoxItem& rBox)
 {
     static const SvxBoxItemLine aBorders[] = { SvxBoxItemLine::TOP, 
SvxBoxItemLine::LEFT,
                                                SvxBoxItemLine::BOTTOM, 
SvxBoxItemLine::RIGHT };
-    static const char* aBorderNames[]
+    static const char* const aBorderNames[]
         = { OOO_STRING_SVTOOLS_RTF_BRDRT, OOO_STRING_SVTOOLS_RTF_BRDRL,
             OOO_STRING_SVTOOLS_RTF_BRDRB, OOO_STRING_SVTOOLS_RTF_BRDRR };
 
@@ -3916,7 +3916,7 @@ void RtfAttributeOutput::FormatBox(const SvxBoxItem& rBox)
             eShadowLocation = pItem->GetLocation();
 
         const SvxBoxItemLine* pBrd = aBorders;
-        const char** pBrdNms = aBorderNames;
+        const char* const* pBrdNms = aBorderNames;
         for (int i = 0; i < 4; ++i, ++pBrd, ++pBrdNms)
         {
             editeng::SvxBorderLine const* const pLn = rBox.GetLine(*pBrd);
diff --git a/sw/source/filter/ww8/styles.cxx b/sw/source/filter/ww8/styles.cxx
index dc8f7e33d321..c08df03acdd4 100644
--- a/sw/source/filter/ww8/styles.cxx
+++ b/sw/source/filter/ww8/styles.cxx
@@ -24,11 +24,11 @@
 namespace
 {
     // Keep in sync with StyleSheetTable::ConvertStyleName
-    const char **GetStiNames() noexcept
+    const char* const* GetStiNames() noexcept
     {
         // Matches enum ww::sti in sw/source/filter/inc/wwstyles.hxx
         // tdf#161509: The case of the names must match Word-generated 
document's w:latentStyles
-        static const char *stiName[] =
+        static const char * const stiName[] =
         {
             "Normal",                   // stiNormal
             "heading 1",                // stiLev1
diff --git a/sw/source/filter/ww8/wrtw8nds.cxx 
b/sw/source/filter/ww8/wrtw8nds.cxx
index 29a19eead43b..59b148679bd5 100644
--- a/sw/source/filter/ww8/wrtw8nds.cxx
+++ b/sw/source/filter/ww8/wrtw8nds.cxx
@@ -1194,7 +1194,7 @@ bool WW8AttributeOutput::StartURL(const OUString& rUrl, 
const OUString& rTarget,
         sRelativeURL = URIHelper::simpleNormalizedMakeRelative( 
m_rWW8Export.GetWriter().GetBaseURL(), rUrl );
     bool bAbsolute = sRelativeURL == rUrl;
 
-    static sal_uInt8 aURLData1[] = {
+    static const sal_uInt8 aURLData1[] = {
         0,0,0,0,        // len of struct
         0x44,0,         // the start of "next" data
         0,0,0,0,0,0,0,0,0,0,                // PIC-Structure!
@@ -1203,7 +1203,7 @@ bool WW8AttributeOutput::StartURL(const OUString& rUrl, 
const OUString& rTarget,
         0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    //  |
         0,0,0,0,                            // /
     };
-    static sal_uInt8 MAGIC_A[] = {
+    static const sal_uInt8 MAGIC_A[] = {
         // start of "next" data
         0xD0,0xC9,0xEA,0x79,0xF9,0xBA,0xCE,0x11,
         0x8C,0x82,0x00,0xAA,0x00,0x4B,0xA9,0x0B
@@ -1231,13 +1231,13 @@ bool WW8AttributeOutput::StartURL(const OUString& rUrl, 
const OUString& rTarget,
     {
         // version 1 (for a document)
 
-        static sal_uInt8 MAGIC_C[] = {
+        static const sal_uInt8 MAGIC_C[] = {
             0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
             0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46,
             0x00, 0x00
         };
 
-        static sal_uInt8 MAGIC_D[] = {
+        static const sal_uInt8 MAGIC_D[] = {
             0xFF, 0xFF, 0xAD, 0xDE, 0x00, 0x00, 0x00, 0x00,
             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
@@ -1284,7 +1284,7 @@ bool WW8AttributeOutput::StartURL(const OUString& rUrl, 
const OUString& rTarget,
         // and write some data to the data stream, but don't ask
         // what the data mean, except for the URL.
         // The First piece is the WW8_PIC structure.
-        static sal_uInt8 MAGIC_B[] = {
+        static const sal_uInt8 MAGIC_B[] = {
             0xE0,0xC9,0xEA,0x79,0xF9,0xBA,0xCE,0x11,
             0x8C,0x82,0x00,0xAA,0x00,0x4B,0xA9,0x0B
         };
diff --git a/sw/source/filter/ww8/wrtw8sty.cxx 
b/sw/source/filter/ww8/wrtw8sty.cxx
index a5628c52e889..e88e64659a78 100644
--- a/sw/source/filter/ww8/wrtw8sty.cxx
+++ b/sw/source/filter/ww8/wrtw8sty.cxx
@@ -743,7 +743,7 @@ void WW8AttributeOutput::StartStyles()
     rFib.m_fcStshfOrig = rFib.m_fcStshf = nCurPos;
     m_nStyleCountPos = nCurPos + 2;     // count is added later
 
-    static sal_uInt8 aStShi[] = {
+    static const sal_uInt8 aStShi[] = {
         0x12, 0x00,
         0x0F, 0x00, 0x0A, 0x00, 0x01, 0x00, 0x5B, 0x00,
         0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx
index 9e883b0461ac..cb80ace499f9 100644
--- a/sw/source/filter/ww8/ww8atr.cxx
+++ b/sw/source/filter/ww8/ww8atr.cxx
@@ -2832,7 +2832,7 @@ void WW8AttributeOutput::HiddenField( const SwField& 
rField )
 
     m_rWW8Export.m_pChpPlc->AppendFkpEntry(m_rWW8Export.Strm().Tell());
     SwWW8Writer::WriteString16(m_rWW8Export.Strm(), sExpand, false);
-    static sal_uInt8 aArr[] =
+    static const sal_uInt8 aArr[] =
     {
         0x3C, 0x08, 0x1
     };
diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx
index 19098daf65e4..b441e3ecda33 100644
--- a/sw/source/filter/ww8/ww8par5.cxx
+++ b/sw/source/filter/ww8/ww8par5.cxx
@@ -1623,57 +1623,57 @@ eF_ResT SwWW8ImplReader::Read_F_DocInfo( WW8FieldDesc* 
pF, OUString& rStr )
         possible name sets (english, german, french, spanish)
         */
 
-        static const char* aName10 = "\x0F"; // SW field code
-        static const char* aName11 // German
+        static const char* const aName10 = "\x0F"; // SW field code
+        static const char* const aName11 // German
             = "TITEL";
-        static const char* aName12 // French
+        static const char* const aName12 // French
             = "TITRE";
-        static const char* aName13 // English
+        static const char* const aName13 // English
             = "TITLE";
-        static const char* aName14 // Spanish
+        static const char* const aName14 // Spanish
             = "TITRO";
-        static const char* aName20 = "\x15"; // SW field code
-        static const char* aName21 // German
+        static const char* const aName20 = "\x15"; // SW field code
+        static const char* const aName21 // German
             = "ERSTELLDATUM";
-        static const char* aName22 // French
+        static const char* const aName22 // French
             = "CR\xC9\xC9";
-        static const char* aName23 // English
+        static const char* const aName23 // English
             = "CREATED";
-        static const char* aName24 // Spanish
+        static const char* const aName24 // Spanish
             = "CREADO";
-        static const char* aName30 = "\x16"; // SW field code
-        static const char* aName31 // German
+        static const char* const aName30 = "\x16"; // SW field code
+        static const char* const aName31 // German
             = "ZULETZTGESPEICHERTZEIT";
-        static const char* aName32 // French
+        static const char* const aName32 // French
             = "DERNIERENREGISTREMENT";
-        static const char* aName33 // English
+        static const char* const aName33 // English
             = "SAVED";
-        static const char* aName34 // Spanish
+        static const char* const aName34 // Spanish
             = "MODIFICADO";
-        static const char* aName40 = "\x17"; // SW field code
-        static const char* aName41 // German
+        static const char* const aName40 = "\x17"; // SW field code
+        static const char* const aName41 // German
             = "ZULETZTGEDRUCKT";
-        static const char* aName42 // French
+        static const char* const aName42 // French
             = "DERNI\xC8" "REIMPRESSION";
-        static const char* aName43 // English
+        static const char* const aName43 // English
             = "LASTPRINTED";
-        static const char* aName44 // Spanish
+        static const char* const aName44 // Spanish
             = "HUPS PUPS";
-        static const char* aName50 = "\x18"; // SW field code
-        static const char* aName51 // German
+        static const char* const aName50 = "\x18"; // SW field code
+        static const char* const aName51 // German
             = "\xDC" "BERARBEITUNGSNUMMER";
-        static const char* aName52 // French
+        static const char* const aName52 // French
             = "NUM\xC9" "RODEREVISION";
-        static const char* aName53 // English
+        static const char* const aName53 // English
             = "REVISIONNUMBER";
-        static const char* aName54 // Spanish
+        static const char* const aName54 // Spanish
             = "SNUBBEL BUBBEL";
         static const sal_uInt16 nFieldCnt  = 5;
 
         // additional fields are to be coded soon!
 
         static const sal_uInt16 nLangCnt = 4;
-        static const char *aNameSet_26[nFieldCnt][nLangCnt+1] =
+        static const char * const aNameSet_26[nFieldCnt][nLangCnt+1] =
         {
             {aName10, aName11, aName12, aName13, aName14},
             {aName20, aName21, aName22, aName23, aName24},
@@ -3737,8 +3737,8 @@ void SwWW8ImplReader::Read_FieldVanish( sal_uInt16, const 
sal_uInt8*, short nLen
     const int nChunk = 64;  //number of characters to read at one time
 
     // Careful: MEMICMP doesn't work with fieldnames including umlauts!
-    const static char *aFieldNames[] = {  "\x06""INHALT", "\x02""XE", // dt.
-                                            "\x02""TC"  };              // us
+    const static char * const aFieldNames[] = {  "\x06""INHALT", "\x02""XE", 
// dt.
+                                                 "\x02""TC"  };              
// us
     const static sal_uInt8  aFieldId[] = { 9, 4, 9 };
 
     if( nLen < 0 )
diff --git a/sw/source/ui/config/optpage.cxx b/sw/source/ui/config/optpage.cxx
index c6bfe5178485..599a40a05724 100644
--- a/sw/source/ui/config/optpage.cxx
+++ b/sw/source/ui/config/optpage.cxx
@@ -2056,15 +2056,15 @@ CharAttr const aRedlineAttr[] =
 };
 // Items from aRedlineAttr relevant for InsertAttr: strikethrough is
 // not used
-static sal_uInt16 aInsertAttrMap[] = { 0, 1, 2, 3, 4, 6, 7, 8, 9, 10 };
+const sal_uInt16 aInsertAttrMap[] = { 0, 1, 2, 3, 4, 6, 7, 8, 9, 10 };
 
 // Items from aRedlineAttr relevant for DeleteAttr: underline and
 // double underline is not used
-static sal_uInt16 aDeletedAttrMap[] = { 0, 1, 2, 5, 6, 7, 8, 9, 10 };
+const sal_uInt16 aDeletedAttrMap[] = { 0, 1, 2, 5, 6, 7, 8, 9, 10 };
 
 // Items from aRedlineAttr relevant for ChangeAttr: strikethrough is
 // not used
-static sal_uInt16 aChangedAttrMap[] = { 0, 1, 2, 3, 4, 6, 7, 8, 9, 10 };
+const sal_uInt16 aChangedAttrMap[] = { 0, 1, 2, 3, 4, 6, 7, 8, 9, 10 };
 
 // Preview of selection
 SwMarkPreview::SwMarkPreview()
diff --git a/sw/source/ui/index/cntex.cxx b/sw/source/ui/index/cntex.cxx
index 663926af3fe9..7f5ddcb59297 100644
--- a/sw/source/ui/index/cntex.cxx
+++ b/sw/source/ui/index/cntex.cxx
@@ -130,7 +130,7 @@ void SwMultiTOXTabDialog::CreateOrUpdateExample(
 
     try
     {
-        static const char* IndexServiceNames[] =
+        static const char* const IndexServiceNames[] =
         {
             "com.sun.star.text.DocumentIndex",
             "com.sun.star.text.UserIndex",
diff --git a/sw/source/writerfilter/ooxml/OOXMLFastContextHandler.cxx 
b/sw/source/writerfilter/ooxml/OOXMLFastContextHandler.cxx
index d8754cc6d2a6..71b327dfa89b 100644
--- a/sw/source/writerfilter/ooxml/OOXMLFastContextHandler.cxx
+++ b/sw/source/writerfilter/ooxml/OOXMLFastContextHandler.cxx
@@ -131,7 +131,7 @@ bool OOXMLFastContextHandler::prepareMceContext(Token_t 
nElement, const uno::Ref
         case XML_Choice:
         {
             OUString aRequires = rAttribs->getOptionalValue(XML_Requires);
-            static const char* aFeatures[] = {
+            static const char* const aFeatures[] = {
                 "wps",
                 "wpg",
                 "w14",
@@ -1577,7 +1577,7 @@ void 
OOXMLFastContextHandlerTextTableRow::handleGridBefore( const OOXMLValue& va
             OOXMLPropertySet::Pointer_t pCellProps( new OOXMLPropertySet );
             {
                 OOXMLPropertySet::Pointer_t pBorderProps( new OOXMLPropertySet 
);
-                static Id borders[] = { NS_ooxml::LN_CT_TcBorders_top, 
NS_ooxml::LN_CT_TcBorders_bottom,
+                static const Id borders[] = { NS_ooxml::LN_CT_TcBorders_top, 
NS_ooxml::LN_CT_TcBorders_bottom,
                     NS_ooxml::LN_CT_TcBorders_start, 
NS_ooxml::LN_CT_TcBorders_end };
                 for(sal_uInt32 border : borders)
                     pBorderProps->add(border, fakeNoBorder(), 
OOXMLProperty::SPRM);
diff --git a/tools/source/inet/inetmsg.cxx b/tools/source/inet/inetmsg.cxx
index 98f6deac0177..073b3c1546bf 100644
--- a/tools/source/inet/inetmsg.cxx
+++ b/tools/source/inet/inetmsg.cxx
@@ -49,7 +49,7 @@ void INetMIMEMessage::SetHeaderField_Impl (
  *   1*DIGIT                                     (delta seconds)
  */
 
-static const char *months[12] =
+const char * const months[12] =
 {
     "Jan", "Feb", "Mar", "Apr", "May", "Jun",
     "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
diff --git a/vcl/source/app/stdtext.cxx b/vcl/source/app/stdtext.cxx
index bef130dc7dca..103fd82c2a9b 100644
--- a/vcl/source/app/stdtext.cxx
+++ b/vcl/source/app/stdtext.cxx
@@ -92,7 +92,7 @@ OUString GetStandardQueryBoxText()
 
 OUString GetStandardText(StandardButtonType eButton)
 {
-    static TranslateId aResIdAry[static_cast<int>(StandardButtonType::Count)] =
+    static const TranslateId 
aResIdAry[static_cast<int>(StandardButtonType::Count)] =
     {
         // 
http://lists.freedesktop.org/archives/libreoffice/2013-January/044513.html
         // Under windows we don't want accelerators on ok/cancel but do on 
other
diff --git a/vcl/source/font/PhysicalFontCollection.cxx 
b/vcl/source/font/PhysicalFontCollection.cxx
index 6c3838772546..9ce93fea5b1f 100644
--- a/vcl/source/font/PhysicalFontCollection.cxx
+++ b/vcl/source/font/PhysicalFontCollection.cxx
@@ -108,7 +108,7 @@ void PhysicalFontCollection::ImplInitGenericGlyphFallback() 
const
     // normalized family names of fonts suited for glyph fallback
     // if a font is available related fonts can be ignored
     // TODO: implement dynamic lists
-    static const char* aGlyphFallbackList[] = {
+    static const char* const aGlyphFallbackList[] = {
         // empty strings separate the names of unrelated fonts
         "eudc", "",
         "arialunicodems", "cyberbit", "code2000", "",
@@ -137,7 +137,7 @@ void PhysicalFontCollection::ImplInitGenericGlyphFallback() 
const
     int nBestQuality = 0;
     std::unique_ptr<std::array<PhysicalFontFamily*,MAX_GLYPHFALLBACK>> 
pFallbackList;
 
-    for( const char** ppNames = &aGlyphFallbackList[0];; ++ppNames )
+    for( const char* const* ppNames = &aGlyphFallbackList[0];; ++ppNames )
     {
         // advance to next sub-list when end-of-sublist marker
         if( !**ppNames ) // #i46456# check for empty string, i.e., deref 
string itself not only ptr to it
diff --git a/vcl/source/fontsubset/cff.cxx b/vcl/source/fontsubset/cff.cxx
index 595bca4d4f5d..897287711dba 100644
--- a/vcl/source/fontsubset/cff.cxx
+++ b/vcl/source/fontsubset/cff.cxx
@@ -535,7 +535,7 @@ constexpr OString pStringIds[] = {
 };
 
 // TOP DICT keywords (also covers PRIV DICT keywords)
-static const char* pDictOps[] = {
+const char* const pDictOps[] = {
     "sVersion",         "sNotice",              "sFullName",        
"sFamilyName",
     "sWeight",          "aFontBBox",            "dBlueValues",      
"dOtherBlues",
     "dFamilyBlues",     "dFamilyOtherBlues",    "nStdHW",           "nStdVW",
@@ -547,7 +547,7 @@ static const char* pDictOps[] = {
 };
 
 // TOP DICT escapes (also covers PRIV DICT escapes)
-static const char* pDictEscs[] = {
+const char* const pDictEscs[] = {
     "sCopyright",           "bIsFixedPitch",    "nItalicAngle",     
"nUnderlinePosition",
     "nUnderlineThickness",  "nPaintType",       "tCharstringType",  
"aFontMatrix",
     "nStrokeWidth",         "nBlueScale",       "nBlueShift",       
"nBlueFuzz",
@@ -560,7 +560,7 @@ static const char* pDictEscs[] = {
     "nFDArray",             "nFDSelect",        "sFontName"
 };
 
-static const char* pStandardEncoding[] = {
+const char* const pStandardEncoding[] = {
     ".notdef", ".notdef", ".notdef", ".notdef", ".notdef",
     ".notdef", ".notdef", ".notdef", ".notdef", ".notdef",
     ".notdef", ".notdef", ".notdef", ".notdef", ".notdef",
diff --git a/vcl/source/opengl/x11/context.cxx 
b/vcl/source/opengl/x11/context.cxx
index 73dfbaf8cd8f..1c20d6ea1a44 100644
--- a/vcl/source/opengl/x11/context.cxx
+++ b/vcl/source/opengl/x11/context.cxx
@@ -128,7 +128,7 @@ private:
         int screen = XScreenNumberOfScreen( xattr.screen );
 
         // TODO: moggi: Select colour channel depth based on visual 
attributes, not hardcoded */
-        static int visual_attribs[] =
+        static const int visual_attribs[] =
         {
             GLX_DOUBLEBUFFER,       True,
             GLX_X_RENDERABLE,       True,
diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx
index 40982605915e..ce6ac6a1378e 100644
--- a/vcl/source/window/builder.cxx
+++ b/vcl/source/window/builder.cxx
@@ -1299,7 +1299,7 @@ void VclBuilderPreload()
 #else
 // find -name '*ui*' | xargs grep 'class=".*lo-' |
 //     sed 's/.*class="//' | sed 's/-.*$//' | sort | uniq
-    static const char *aWidgetLibs[] = {
+    static const char* const aWidgetLibs[] = {
         "sfxlo",  "svtlo"
     };
     for (const auto & lib : aWidgetLibs)
diff --git a/xmloff/source/style/prstylei.cxx b/xmloff/source/style/prstylei.cxx
index f2e8e7e94983..764227dd7c47 100644
--- a/xmloff/source/style/prstylei.cxx
+++ b/xmloff/source/style/prstylei.cxx
@@ -266,7 +266,7 @@ void XMLPropStyleContext::CreateAndInsert( bool bOverwrite )
     if(bTakeCareOfDrawingLayerFillStyle)
     {
         // check if new FillStyles are used and if so mark old ones with -1
-        static OUString s_FillStyle(u"FillStyle"_ustr);
+        static constexpr OUString s_FillStyle(u"FillStyle"_ustr);
 
         if(doNewDrawingLayerFillStyleDefinitionsExist(s_FillStyle))
         {

Reply via email to