From 03b66079536b70074b817fa1c3242bce49464450 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Mon, 4 Apr 2022 15:27:04 +0200 Subject: [PATCH] [clang2ir] Fix translation of negative integral constants and remove useless declaration --- ClangVisitor.cpp | 3 +-- tests/basic/oracle/init.res.oracle | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/ClangVisitor.cpp b/ClangVisitor.cpp index 67b95110..e58334e4 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 73e0ee39..45b89a05 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) { -- GitLab