[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] Avoid clang prior initialization error when listing MTRR flags



Clang 3.4 complains when compiling range of designated range
initializers:

gmake[6]: Entering directory `/home/saper/sw/xen/xen/arch/x86/cpu/mtrr'
clang -O1 -fno-omit-frame-pointer -m64 -g -fno-strict-aliasing -std=gnu99 -Wall 
-Wstrict-prototypes -Wdeclaration-after-statement   
-I/home/saper/sw/xen/xen/include  
-I/home/saper/sw/xen/xen/include/asm-x86/mach-generic 
-I/home/saper/sw/xen/xen/include/asm-x86/mach-default -msoft-float 
-fno-stack-protector -fno-exceptions -Wnested-externs -DHAVE_GAS_VMX 
-DHAVE_GAS_EPT -DHAVE_GAS_FSGSBASE -mno-red-zone -mno-sse -fpic 
-fno-asynchronous-unwind-tables -DGCC_HAS_VISIBILITY_ATTRIBUTE -fno-builtin 
-fno-common -Werror -Wredundant-decls -Wno-pointer-arith -pipe -g -D__XEN__ 
-include /home/saper/sw/xen/xen/include/xen/config.h -nostdinc -Wno-parentheses 
-Wno-format -Wno-unused-value -Wno-unused-function -Wno-ignored-attributes 
-DVERBOSE -DHAS_ACPI -DHAS_GDBSX -DHAS_PASSTHROUGH -DHAS_PCI -DHAS_IOPORTS 
-fno-omit-frame-pointer -DCONFIG_FRAME_POINTER -MMD -MF .generic.o.d -c 
generic.c -o generic.o
generic.c:95:32: error: initializer overrides prior initialization of this 
subobject [-Werror,-Winitializer-overrides]
                [MTRR_TYPE_UNCACHABLE]     = "uncachable",
                                             ^~~~~~~~~~~~
generic.c:94:32: note: previous initialization is here
                [0 ... MTRR_NUM_TYPES - 1] = "?",
                                             ^~~
generic.c:96:32: error: initializer overrides prior initialization of this 
subobject [-Werror,-Winitializer-overrides]
                [MTRR_TYPE_WRCOMB]         = "write-combining",
                                             ^~~~~~~~~~~~~~~~~
generic.c:94:32: note: previous initialization is here
                [0 ... MTRR_NUM_TYPES - 1] = "?",
                                             ^~~
generic.c:97:32: error: initializer overrides prior initialization of this 
subobject [-Werror,-Winitializer-overrides]
                [MTRR_TYPE_WRTHROUGH]      = "write-through",
                                             ^~~~~~~~~~~~~~~
generic.c:94:32: note: previous initialization is here
                [0 ... MTRR_NUM_TYPES - 1] = "?",
                                             ^~~
generic.c:98:32: error: initializer overrides prior initialization of this 
subobject [-Werror,-Winitializer-overrides]
                [MTRR_TYPE_WRPROT]         = "write-protect",
                                             ^~~~~~~~~~~~~~~
generic.c:94:32: note: previous initialization is here
                [0 ... MTRR_NUM_TYPES - 1] = "?",
                                             ^~~
generic.c:99:32: error: initializer overrides prior initialization of this 
subobject [-Werror,-Winitializer-overrides]
                [MTRR_TYPE_WRBACK]         = "write-back",
                                             ^~~~~~~~~~~~
generic.c:94:32: note: previous initialization is here
                [0 ... MTRR_NUM_TYPES - 1] = "?",
                                             ^~~
and

gmake[5]: Entering directory `/home/saper/sw/xen/xen/arch/x86/mm'
clang -O1 -fno-omit-frame-pointer -m64 -g -fno-strict-aliasing -std=gnu99 -Wall 
-Wstrict-prototypes -Wdeclaration-after-statement   
-I/home/saper/sw/xen/xen/include  
-I/home/saper/sw/xen/xen/include/asm-x86/mach-generic 
-I/home/saper/sw/xen/xen/include/asm-x86/mach-default -msoft-float 
-fno-stack-protector -fno-exceptions -Wnested-externs -DHAVE_GAS_VMX 
-DHAVE_GAS_EPT -DHAVE_GAS_FSGSBASE -mno-red-zone -mno-sse -fpic 
-fno-asynchronous-unwind-tables -DGCC_HAS_VISIBILITY_ATTRIBUTE -fno-builtin 
-fno-common -Werror -Wredundant-decls -Wno-pointer-arith -pipe -g -D__XEN__ 
-include /home/saper/sw/xen/xen/include/xen/config.h -nostdinc -Wno-parentheses 
-Wno-format -Wno-unused-value -Wno-unused-function -Wno-ignored-attributes 
-DVERBOSE -DHAS_ACPI -DHAS_GDBSX -DHAS_PASSTHROUGH -DHAS_PCI -DHAS_IOPORTS 
-fno-omit-frame-pointer -DCONFIG_FRAME_POINTER -MMD -MF .p2m-ept.o.d -c 
p2m-ept.c -o p2m-ept.o
p2m-ept.c:1100:38: error: initializer overrides prior initialization of this 
subobject [-Werror,-Winitializer-overrides]
        [MTRR_TYPE_UNCACHABLE]     = "UC",
                                     ^~~~
p2m-ept.c:1099:21: note: previous initialization is here
        [0 ... 7] = "?",
                    ^~~
p2m-ept.c:1101:38: error: initializer overrides prior initialization of this 
subobject [-Werror,-Winitializer-overrides]
        [MTRR_TYPE_WRCOMB]         = "WC",
                                     ^~~~
p2m-ept.c:1099:21: note: previous initialization is here
        [0 ... 7] = "?",
                    ^~~
p2m-ept.c:1102:38: error: initializer overrides prior initialization of this 
subobject [-Werror,-Winitializer-overrides]
        [MTRR_TYPE_WRTHROUGH]      = "WT",
                                     ^~~~
p2m-ept.c:1099:21: note: previous initialization is here
        [0 ... 7] = "?",
                    ^~~
p2m-ept.c:1103:38: error: initializer overrides prior initialization of this 
subobject [-Werror,-Winitializer-overrides]
        [MTRR_TYPE_WRPROT]         = "WP",
                                     ^~~~
p2m-ept.c:1099:21: note: previous initialization is here
        [0 ... 7] = "?",
                    ^~~
p2m-ept.c:1104:38: error: initializer overrides prior initialization of this 
subobject [-Werror,-Winitializer-overrides]
        [MTRR_TYPE_WRBACK]         = "WB",
                                     ^~~~
p2m-ept.c:1099:21: note: previous initialization is here
        [0 ... 7] = "?",
                    ^~~
p2m-ept.c:1105:38: error: initializer overrides prior initialization of this 
subobject [-Werror,-Winitializer-overrides]
        [MTRR_NUM_TYPES]           = "??"
                                     ^~~~
p2m-ept.c:1099:21: note: previous initialization is here
        [0 ... 7] = "?",
                    ^~~
6 errors generated.

Signed-off-by: Marcin Cieslak <saper@xxxxxxxxxx>
---
 xen/arch/x86/cpu/mtrr/generic.c | 3 ++-
 xen/arch/x86/mm/p2m-ept.c       | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/cpu/mtrr/generic.c b/xen/arch/x86/cpu/mtrr/generic.c
index 493830b..2512083 100644
--- a/xen/arch/x86/cpu/mtrr/generic.c
+++ b/xen/arch/x86/cpu/mtrr/generic.c
@@ -91,9 +91,10 @@ static const char *__init mtrr_attrib_to_str(mtrr_type x)
 {
        static const char __initconst strings[MTRR_NUM_TYPES][16] =
        {
-               [0 ... MTRR_NUM_TYPES - 1] = "?",
                [MTRR_TYPE_UNCACHABLE]     = "uncachable",
                [MTRR_TYPE_WRCOMB]         = "write-combining",
+               [2]                        = "?",
+               [3]                        = "?",
                [MTRR_TYPE_WRTHROUGH]      = "write-through",
                [MTRR_TYPE_WRPROT]         = "write-protect",
                [MTRR_TYPE_WRBACK]         = "write-back",
diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c
index 15c6e83..50d1529 100644
--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -1096,9 +1096,10 @@ static void ept_dump_p2m_table(unsigned char key)
     struct p2m_domain *p2m;
     struct ept_data *ept;
     static const char memory_types[8][2] = {
-        [0 ... 7] = "?",
         [MTRR_TYPE_UNCACHABLE]     = "UC",
         [MTRR_TYPE_WRCOMB]         = "WC",
+        [2]                        = "??",
+        [3]                        = "??",
         [MTRR_TYPE_WRTHROUGH]      = "WT",
         [MTRR_TYPE_WRPROT]         = "WP",
         [MTRR_TYPE_WRBACK]         = "WB",
-- 
2.0.2


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.