From 0ddcf49b856a5bc1ce3ef17a1aa0ef354558d6fe Mon Sep 17 00:00:00 2001 From: Peter Bigot Date: Mon, 12 Aug 2019 12:55:44 -0500 Subject: [PATCH] soc/arm/silabs_exx32: clean up use of extern "C" Remove extern "C" support from files that don't declare symbols subject to language linkage effects. Consistently place C++ use of extern "C" after all include directives, within the negative branch of _ASMLANGUAGE if used. Background from issue #17997: Declarations that use C linkage should be placed within extern "C" so the language linkage is correct when the header is included by a C++ compiler. Similarly #include directives should be outside the extern "C" to ensure the language-specific default linkage is applied to any declarations provided by the included header. See: https://en.cppreference.com/w/cpp/language/language_linkage Signed-off-by: Peter Bigot --- soc/arm/silabs_exx32/common/soc_gpio.h | 8 ++++++++ soc/arm/silabs_exx32/efm32hg/soc.h | 8 -------- soc/arm/silabs_exx32/efm32pg12b/soc.h | 8 -------- soc/arm/silabs_exx32/efm32wg/soc.h | 8 -------- soc/arm/silabs_exx32/efr32fg1p/soc.h | 8 -------- soc/arm/silabs_exx32/efr32mg12p/soc.h | 8 -------- 6 files changed, 8 insertions(+), 40 deletions(-) diff --git a/soc/arm/silabs_exx32/common/soc_gpio.h b/soc/arm/silabs_exx32/common/soc_gpio.h index 406be31df18..3519a0533f4 100644 --- a/soc/arm/silabs_exx32/common/soc_gpio.h +++ b/soc/arm/silabs_exx32/common/soc_gpio.h @@ -14,6 +14,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + struct soc_gpio_pin { GPIO_Port_TypeDef port; /** GPIO port */ unsigned int pin; /** GPIO pin on the port */ @@ -27,4 +31,8 @@ struct soc_gpio_pin { */ void soc_gpio_configure(const struct soc_gpio_pin *pin); +#ifdef __cplusplus +} +#endif + #endif /* _SILABS_EXX32_SOC_GPIO_H_ */ diff --git a/soc/arm/silabs_exx32/efm32hg/soc.h b/soc/arm/silabs_exx32/efm32hg/soc.h index 3c8992c2880..2c525d32437 100644 --- a/soc/arm/silabs_exx32/efm32hg/soc.h +++ b/soc/arm/silabs_exx32/efm32hg/soc.h @@ -15,10 +15,6 @@ #include -#ifdef __cplusplus -extern "C" { -#endif - #ifndef _ASMLANGUAGE #include @@ -29,8 +25,4 @@ extern "C" { #endif /* !_ASMLANGUAGE */ -#ifdef __cplusplus -} -#endif - #endif /* _SOC__H_ */ diff --git a/soc/arm/silabs_exx32/efm32pg12b/soc.h b/soc/arm/silabs_exx32/efm32pg12b/soc.h index b63e9a14a90..5a05892a1ab 100644 --- a/soc/arm/silabs_exx32/efm32pg12b/soc.h +++ b/soc/arm/silabs_exx32/efm32pg12b/soc.h @@ -15,10 +15,6 @@ #include -#ifdef __cplusplus -extern "C" { -#endif - #ifndef _ASMLANGUAGE #include @@ -30,8 +26,4 @@ extern "C" { #endif /* !_ASMLANGUAGE */ -#ifdef __cplusplus -} -#endif - #endif /* _SOC__H_ */ diff --git a/soc/arm/silabs_exx32/efm32wg/soc.h b/soc/arm/silabs_exx32/efm32wg/soc.h index b195c84cd17..761a50da9f2 100644 --- a/soc/arm/silabs_exx32/efm32wg/soc.h +++ b/soc/arm/silabs_exx32/efm32wg/soc.h @@ -15,10 +15,6 @@ #include -#ifdef __cplusplus -extern "C" { -#endif - #ifndef _ASMLANGUAGE #include @@ -30,8 +26,4 @@ extern "C" { #endif /* !_ASMLANGUAGE */ -#ifdef __cplusplus -} -#endif - #endif /* _SOC__H_ */ diff --git a/soc/arm/silabs_exx32/efr32fg1p/soc.h b/soc/arm/silabs_exx32/efr32fg1p/soc.h index 4b00ac5f199..e39b8f48dee 100644 --- a/soc/arm/silabs_exx32/efr32fg1p/soc.h +++ b/soc/arm/silabs_exx32/efr32fg1p/soc.h @@ -15,10 +15,6 @@ #include -#ifdef __cplusplus -extern "C" { -#endif - #ifndef _ASMLANGUAGE #include @@ -30,8 +26,4 @@ extern "C" { #endif /* !_ASMLANGUAGE */ -#ifdef __cplusplus -} -#endif - #endif /* _SOC__H_ */ diff --git a/soc/arm/silabs_exx32/efr32mg12p/soc.h b/soc/arm/silabs_exx32/efr32mg12p/soc.h index 1345ea56d6a..4bd11b85096 100644 --- a/soc/arm/silabs_exx32/efr32mg12p/soc.h +++ b/soc/arm/silabs_exx32/efr32mg12p/soc.h @@ -15,10 +15,6 @@ #include -#ifdef __cplusplus -extern "C" { -#endif - #ifndef _ASMLANGUAGE #include @@ -29,8 +25,4 @@ extern "C" { #endif /* !_ASMLANGUAGE */ -#ifdef __cplusplus -} -#endif - #endif /* _SOC__H_ */