]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: converter: Fix suffix condition
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Fri, 5 May 2023 12:40:20 +0000 (14:40 +0200)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 16 Jan 2024 17:37:18 +0000 (18:37 +0100)
The suffix condition was wrong, the code was assigning a suffix to
unsuffixed literals. The literals length equals the end of digit
parsing position  means there is no suffix.

gcc/rust/ChangeLog:

* util/rust-token-converter.cc (dispatch_float_literals): Invert
suffix condition.
(dispatch_integer_literals): Likewise.

Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
gcc/rust/util/rust-token-converter.cc

index d5cb450eb9f1f11f13313e573debd965e1a1c707..2047ea729678c50a67a3b92c5db8972e38ec4754 100644 (file)
@@ -42,13 +42,13 @@ dispatch_float_literals (ProcMacro::TokenStream &ts,
       case CORETYPE_F32: {
        auto value = std::stof (str, &sz);
        ts.push (ProcMacro::TokenTree::make_tokentree (
-         ProcMacro::Literal::make_f32 (value, sz == str.length ())));
+         ProcMacro::Literal::make_f32 (value, sz != str.length ())));
       }
       break;
       case CORETYPE_F64: {
        auto value = std::stod (str, &sz);
        ts.push (ProcMacro::TokenTree::make_tokentree (
-         ProcMacro::Literal::make_f64 (value, sz == str.length ())));
+         ProcMacro::Literal::make_f64 (value, sz != str.length ())));
       }
       break;
     default:
@@ -70,52 +70,52 @@ dispatch_integer_literals (ProcMacro::TokenStream &ts,
     case CORETYPE_U8:
       uvalue = std::stoull (str, &sz);
       ts.push (ProcMacro::TokenTree::make_tokentree (
-       ProcMacro::Literal::make_u8 (uvalue, sz == str.length ())));
+       ProcMacro::Literal::make_u8 (uvalue, sz != str.length ())));
       break;
     case CORETYPE_U16:
       uvalue = std::stoull (str, &sz);
       ts.push (ProcMacro::TokenTree::make_tokentree (
-       ProcMacro::Literal::make_u16 (uvalue, sz == str.length ())));
+       ProcMacro::Literal::make_u16 (uvalue, sz != str.length ())));
       break;
     case CORETYPE_U32:
       uvalue = std::stoull (str, &sz);
       ts.push (ProcMacro::TokenTree::make_tokentree (
-       ProcMacro::Literal::make_u32 (uvalue, sz == str.length ())));
+       ProcMacro::Literal::make_u32 (uvalue, sz != str.length ())));
       break;
     case CORETYPE_U64:
       uvalue = std::stoull (str, &sz);
       ts.push (ProcMacro::TokenTree::make_tokentree (
-       ProcMacro::Literal::make_u32 (uvalue, sz == str.length ())));
+       ProcMacro::Literal::make_u32 (uvalue, sz != str.length ())));
       break;
     case CORETYPE_I8:
       svalue = std::stoll (str, &sz);
       ts.push (ProcMacro::TokenTree::make_tokentree (
-       ProcMacro::Literal::make_i8 (svalue, sz == str.length ())));
+       ProcMacro::Literal::make_i8 (svalue, sz != str.length ())));
       break;
     case CORETYPE_I16:
       svalue = std::stoll (str, &sz);
       ts.push (ProcMacro::TokenTree::make_tokentree (
-       ProcMacro::Literal::make_i16 (svalue, sz == str.length ())));
+       ProcMacro::Literal::make_i16 (svalue, sz != str.length ())));
       break;
     case CORETYPE_I32:
       svalue = std::stoll (str, &sz);
       ts.push (ProcMacro::TokenTree::make_tokentree (
-       ProcMacro::Literal::make_i32 (svalue, sz == str.length ())));
+       ProcMacro::Literal::make_i32 (svalue, sz != str.length ())));
       break;
     case CORETYPE_I64:
       svalue = std::stoll (str, &sz);
       ts.push (ProcMacro::TokenTree::make_tokentree (
-       ProcMacro::Literal::make_i32 (svalue, sz == str.length ())));
+       ProcMacro::Literal::make_i32 (svalue, sz != str.length ())));
       break;
     case CORETYPE_INT:
       svalue = std::stoll (str, &sz);
       ts.push (ProcMacro::TokenTree::make_tokentree (
-       ProcMacro::Literal::make_isize (svalue, sz == str.length ())));
+       ProcMacro::Literal::make_isize (svalue, sz != str.length ())));
       break;
     case CORETYPE_UINT:
       uvalue = std::stoull (str, &sz);
       ts.push (ProcMacro::TokenTree::make_tokentree (
-       ProcMacro::Literal::make_usize (uvalue, sz == str.length ())));
+       ProcMacro::Literal::make_usize (uvalue, sz != str.length ())));
       break;
     case CORETYPE_UNKNOWN:
     default: