diff --git a/share/libc/stdio.c b/share/libc/stdio.c
index eda30573e2d57fda2ecc6f550abea3b9c8f228ce..09337ba5dd03d53b4c0cdf8128931b73c09a5e95 100644
--- a/share/libc/stdio.c
+++ b/share/libc/stdio.c
@@ -431,7 +431,7 @@ int vfscanf(FILE * restrict stream, const char * restrict format, va_list arg) {
         case UPPER_L:
           // TODO: use Frama_C_long_double_interval when it will be supported
           {
-            volatile long double vld;
+            volatile long double vld = 0.0;
             *va_arg(arg, long double*) = vld;
           }
           break;
diff --git a/tests/libc/oracle/fc_libc.1.res.oracle b/tests/libc/oracle/fc_libc.1.res.oracle
index 3b045dfc981bbac8f01637591c6769bc107865d9..eba56f1518d9a3db2f26e8e3b2f2085815c3da37 100644
--- a/tests/libc/oracle/fc_libc.1.res.oracle
+++ b/tests/libc/oracle/fc_libc.1.res.oracle
@@ -7990,8 +7990,8 @@ int vfscanf(FILE * restrict stream, char const * restrict format, va_list arg)
           break;
           case UPPER_L:
           {
-            long double volatile vld;
             long double *tmp_17;
+            long double volatile vld = (long double)0.0;
             tmp_17 = *((long double **)*arg);
             arg ++;
             *tmp_17 = vld;
diff --git a/tests/libc/oracle/stdio_c.res.oracle b/tests/libc/oracle/stdio_c.res.oracle
index 18fbf9a277c2ed6dc7374ed55bebb838fefb4795..e848a868dcf313d9a95a4e396b439eff58ea26e2 100644
--- a/tests/libc/oracle/stdio_c.res.oracle
+++ b/tests/libc/oracle/stdio_c.res.oracle
@@ -574,8 +574,6 @@
 [eva:alarm] FRAMAC_SHARE/libc/stdio.c:435: Warning: 
   out of bounds write. assert \valid(tmp_17);
                        (tmp_17 from vararg)
-[eva:alarm] FRAMAC_SHARE/libc/stdio.c:435: Warning: 
-  accessing uninitialized left-value. assert \initialized(&vld);
 [eva:alarm] FRAMAC_SHARE/libc/stdio.c:435: Warning: 
   non-finite long double value. assert \is_finite(vld);
 [eva:alarm] FRAMAC_SHARE/libc/stdio.c:440: Warning: