]> rtime.felk.cvut.cz Git - l4.git/blobdiff - l4/pkg/bootstrap/server/src/platform_common.cc
Update
[l4.git] / l4 / pkg / bootstrap / server / src / platform_common.cc
index fac3ad54c11c50f58422fee0c0adf02ed4fe31b8..050380207fd8191a54b2cf1ff9ad508c80ee3c86 100644 (file)
@@ -44,6 +44,9 @@ scan_ram_size(unsigned long base_addr, unsigned long max_scan_size_mb)
        offset *= 2)
     *(unsigned long *)(base_addr + offset) = 0;
 
+  // avoid gcc/clang optimization figuring out that base_addr might
+  // always be 0 and generating a trap here
+  asm("" : "+r" (base_addr));
   // write something at offset 0, does it appear elsewhere?
   *(unsigned long *)base_addr = 0x12345678;
   asm volatile("" : : : "memory");