diff --git a/ClangVisitor.cpp b/ClangVisitor.cpp
index 67b951103b2714484474256d925272de376301c7..e58334e41e500c5cb11a2ba995b8911b9064b9f1 100644
--- a/ClangVisitor.cpp
+++ b/ClangVisitor.cpp
@@ -9169,8 +9169,7 @@ bool FramacVisitor::VisitVarDecl(clang::VarDecl* Decl) {
         clang::APValue* resultingValue = Decl->evaluateValue();
         if (resultingValue) {
           constantType = Decl->hasExternalStorage()?ICEXTERNCONST:ICSTATICCONST;
-          clang::APValue* resultingValue = Decl->evaluateValue();
-          value=(int64_t) resultingValue->getInt().getLimitedValue(UINT64_MAX);
+          value = resultingValue->getInt().getExtValue();
         }
       };
     };
diff --git a/tests/basic/oracle/init.res.oracle b/tests/basic/oracle/init.res.oracle
index 73e0ee39162006a101040c412c027c9b12f21394..45b89a05d3807f6e6eeb040e364cd86673e52a77 100644
--- a/tests/basic/oracle/init.res.oracle
+++ b/tests/basic/oracle/init.res.oracle
@@ -46,8 +46,8 @@ struct _frama_c_rtti_name_info_node _frama_c_rtti_name_info =
    .number_of_base_classes = 0,
    .pvmt = (struct _frama_c_vmt *)0};
 myStruct s = {.a = {(char)0}};
-static int const I = (int)4294967295;
-static long const L = (long)4294967295;
+static int const I = -1;
+static long const L = (long)(-1);
 static long long const LL = (long long)(-1);
 int main(void)
 {