diff mbox series

[3/7] Wrap ACPI_ROOT_OBJECT with PRAGMA_NULL_PTR_MATH for clang builds

Message ID 20180730183059.28039-4-colin.king@canonical.com
State Accepted
Headers show
Series abstract _Pragmas and minor changes to build with gcc and clang | expand

Commit Message

Colin Ian King July 30, 2018, 6:30 p.m. UTC
From: Colin Ian King <colin.king@canonical.com>

The ACPI_ROOT_OBJECT uses a gcc-ism with null pointer arithmetic
which makes clang choke, so add a pragma to disable this warning
for non-gcc builds.

Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 src/acpi/madt/madt.c             | 3 +++
 src/sbbr/acpitables/acpitables.c | 3 +++
 2 files changed, 6 insertions(+)

Comments

Alex Hung July 31, 2018, 12:12 a.m. UTC | #1
On 2018-07-30 11:30 AM, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
> 
> The ACPI_ROOT_OBJECT uses a gcc-ism with null pointer arithmetic
> which makes clang choke, so add a pragma to disable this warning
> for non-gcc builds.
> 
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>   src/acpi/madt/madt.c             | 3 +++
>   src/sbbr/acpitables/acpitables.c | 3 +++
>   2 files changed, 6 insertions(+)
> 
> diff --git a/src/acpi/madt/madt.c b/src/acpi/madt/madt.c
> index 883d5847..bd2669b6 100644
> --- a/src/acpi/madt/madt.c
> +++ b/src/acpi/madt/madt.c
> @@ -401,8 +401,11 @@ static int madt_init(fwts_framework *fw)
>   	if (fwts_acpica_init(fw) != FWTS_OK)
>   		return FWTS_ERROR;
>   
> +PRAGMA_PUSH
> +PRAGMA_NULL_PTR_MATH
>   	AcpiWalkNamespace(0x0c, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
>   			  madt_processor_handler, NULL, NULL, NULL);
> +PRAGMA_POP
>   	AcpiGetDevices("ACPI0007", madt_processor_handler, NULL, NULL);
>   
>   	return (spec_data) ? FWTS_OK : FWTS_ERROR;
> diff --git a/src/sbbr/acpitables/acpitables.c b/src/sbbr/acpitables/acpitables.c
> index d40c164d..72ce743c 100644
> --- a/src/sbbr/acpitables/acpitables.c
> +++ b/src/sbbr/acpitables/acpitables.c
> @@ -98,9 +98,12 @@ static int acpi_table_sbbr_namespace_check_test1(fwts_framework *fw)
>   	if (fwts_acpica_init(fw) != FWTS_OK)
>   		return FWTS_ERROR;
>   
> +PRAGMA_PUSH
> +PRAGMA_NULL_PTR_MATH
>   	/* Searching for all processor devices in the namespace. */
>   	AcpiWalkNamespace(ACPI_TYPE_PROCESSOR, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
>   	                  processor_handler, NULL, NULL, (void **)&error_count);
> +PRAGMA_POP
>   
>   	/* Deinitializing ACPICA, if we don't call this the terminal will break on exit. */
>   	fwts_acpica_deinit();
> 

Acked-by: Alex Hung <alex.hung@canonical.com>
Ivan Hu July 31, 2018, 7:49 a.m. UTC | #2
On 07/31/2018 02:30 AM, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> The ACPI_ROOT_OBJECT uses a gcc-ism with null pointer arithmetic
> which makes clang choke, so add a pragma to disable this warning
> for non-gcc builds.
>
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>  src/acpi/madt/madt.c             | 3 +++
>  src/sbbr/acpitables/acpitables.c | 3 +++
>  2 files changed, 6 insertions(+)
>
> diff --git a/src/acpi/madt/madt.c b/src/acpi/madt/madt.c
> index 883d5847..bd2669b6 100644
> --- a/src/acpi/madt/madt.c
> +++ b/src/acpi/madt/madt.c
> @@ -401,8 +401,11 @@ static int madt_init(fwts_framework *fw)
>  	if (fwts_acpica_init(fw) != FWTS_OK)
>  		return FWTS_ERROR;
>  
> +PRAGMA_PUSH
> +PRAGMA_NULL_PTR_MATH
>  	AcpiWalkNamespace(0x0c, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
>  			  madt_processor_handler, NULL, NULL, NULL);
> +PRAGMA_POP
>  	AcpiGetDevices("ACPI0007", madt_processor_handler, NULL, NULL);
>  
>  	return (spec_data) ? FWTS_OK : FWTS_ERROR;
> diff --git a/src/sbbr/acpitables/acpitables.c b/src/sbbr/acpitables/acpitables.c
> index d40c164d..72ce743c 100644
> --- a/src/sbbr/acpitables/acpitables.c
> +++ b/src/sbbr/acpitables/acpitables.c
> @@ -98,9 +98,12 @@ static int acpi_table_sbbr_namespace_check_test1(fwts_framework *fw)
>  	if (fwts_acpica_init(fw) != FWTS_OK)
>  		return FWTS_ERROR;
>  
> +PRAGMA_PUSH
> +PRAGMA_NULL_PTR_MATH
>  	/* Searching for all processor devices in the namespace. */
>  	AcpiWalkNamespace(ACPI_TYPE_PROCESSOR, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
>  	                  processor_handler, NULL, NULL, (void **)&error_count);
> +PRAGMA_POP
>  
>  	/* Deinitializing ACPICA, if we don't call this the terminal will break on exit. */
>  	fwts_acpica_deinit();
Acked-by: Ivan Hu <ivan.hu@canonical.com>
diff mbox series

Patch

diff --git a/src/acpi/madt/madt.c b/src/acpi/madt/madt.c
index 883d5847..bd2669b6 100644
--- a/src/acpi/madt/madt.c
+++ b/src/acpi/madt/madt.c
@@ -401,8 +401,11 @@  static int madt_init(fwts_framework *fw)
 	if (fwts_acpica_init(fw) != FWTS_OK)
 		return FWTS_ERROR;
 
+PRAGMA_PUSH
+PRAGMA_NULL_PTR_MATH
 	AcpiWalkNamespace(0x0c, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
 			  madt_processor_handler, NULL, NULL, NULL);
+PRAGMA_POP
 	AcpiGetDevices("ACPI0007", madt_processor_handler, NULL, NULL);
 
 	return (spec_data) ? FWTS_OK : FWTS_ERROR;
diff --git a/src/sbbr/acpitables/acpitables.c b/src/sbbr/acpitables/acpitables.c
index d40c164d..72ce743c 100644
--- a/src/sbbr/acpitables/acpitables.c
+++ b/src/sbbr/acpitables/acpitables.c
@@ -98,9 +98,12 @@  static int acpi_table_sbbr_namespace_check_test1(fwts_framework *fw)
 	if (fwts_acpica_init(fw) != FWTS_OK)
 		return FWTS_ERROR;
 
+PRAGMA_PUSH
+PRAGMA_NULL_PTR_MATH
 	/* Searching for all processor devices in the namespace. */
 	AcpiWalkNamespace(ACPI_TYPE_PROCESSOR, ACPI_ROOT_OBJECT, ACPI_UINT32_MAX,
 	                  processor_handler, NULL, NULL, (void **)&error_count);
+PRAGMA_POP
 
 	/* Deinitializing ACPICA, if we don't call this the terminal will break on exit. */
 	fwts_acpica_deinit();