aboutsummaryrefslogtreecommitdiffstats
path: root/executor/common_kvm_amd64.h
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-08-13 16:37:32 +0200
committerDmitry Vyukov <dvyukov@google.com>2020-08-14 09:40:08 +0200
commit424dd8e7b52828cad44ce653a5d4ac30670f5e2c (patch)
tree55f116b53a92ee8de3f1d5aafbba9566f777e869 /executor/common_kvm_amd64.h
parent54ce1ed6b9fcb3b8d77c43dd4b3533e70cade414 (diff)
executor: warn about C89-style var declarations
We generally use the newer C99 var declarations combined with initialization because: - declarations are more local, reduced scope - fewer lines of code - less potential for using uninit vars and other bugs However, we have some relic code from times when we did not understand if we need to stick with C89 or not. Also some external contributions that don't follow style around. Add a static check for C89-style declarations and fix existing precedents. Akaros toolchain uses -std=gnu89 (or something) and does not allow variable declarations inside of for init statement. And we can't switch it to -std=c99 because Akaros headers are C89 themselves. So in common.h we need to declare loop counters outside of for.
Diffstat (limited to 'executor/common_kvm_amd64.h')
-rw-r--r--executor/common_kvm_amd64.h11
1 files changed, 4 insertions, 7 deletions
diff --git a/executor/common_kvm_amd64.h b/executor/common_kvm_amd64.h
index a8173b9b3..d959b9615 100644
--- a/executor/common_kvm_amd64.h
+++ b/executor/common_kvm_amd64.h
@@ -178,8 +178,7 @@ static void setup_32bit_idt(struct kvm_sregs* sregs, char* host_mem, uintptr_t g
sregs->idt.base = guest_mem + ADDR_VAR_IDT;
sregs->idt.limit = 0x1ff;
uint64* idt = (uint64*)(host_mem + sregs->idt.base);
- int i;
- for (i = 0; i < 32; i++) {
+ for (int i = 0; i < 32; i++) {
struct kvm_segment gate;
gate.selector = i << 3;
switch (i % 6) {
@@ -231,8 +230,7 @@ static void setup_64bit_idt(struct kvm_sregs* sregs, char* host_mem, uintptr_t g
sregs->idt.base = guest_mem + ADDR_VAR_IDT;
sregs->idt.limit = 0x1ff;
uint64* idt = (uint64*)(host_mem + sregs->idt.base);
- int i;
- for (i = 0; i < 32; i++) {
+ for (int i = 0; i < 32; i++) {
struct kvm_segment gate;
gate.selector = (i * 2) << 3;
gate.type = (i & 1) ? 14 : 15; // interrupt or trap gate
@@ -290,8 +288,7 @@ static long syz_kvm_setup_cpu(volatile long a0, volatile long a1, volatile long
const void* text = text_array_ptr[0].text;
uintptr_t text_size = text_array_ptr[0].size;
- uintptr_t i;
- for (i = 0; i < guest_mem_size / page_size; i++) {
+ for (uintptr_t i = 0; i < guest_mem_size / page_size; i++) {
struct kvm_userspace_memory_region memreg;
memreg.slot = i;
memreg.flags = 0; // can be KVM_MEM_LOG_DIRTY_PAGES | KVM_MEM_READONLY
@@ -715,7 +712,7 @@ static long syz_kvm_setup_cpu(volatile long a0, volatile long a1, volatile long
if (opt_count > 2)
opt_count = 2;
- for (i = 0; i < opt_count; i++) {
+ for (uintptr_t i = 0; i < opt_count; i++) {
uint64 typ = opt_array_ptr[i].typ;
uint64 val = opt_array_ptr[i].val;
switch (typ % 9) {