diff options
author | Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> | 2023-05-05 14:40:20 +0200 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2023-05-11 09:38:22 +0200 |
commit | 12d52ac02131c13dee26f709550f2d5fe9fe2ca1 (patch) | |
tree | 8491807ec924b7b33a934fd14c33f7ad60725a34 | |
parent | 39817cc6c962e4cbeb5782415b7194e9906ac18b (diff) | |
download | gcc-12d52ac02131c13dee26f709550f2d5fe9fe2ca1.zip gcc-12d52ac02131c13dee26f709550f2d5fe9fe2ca1.tar.gz gcc-12d52ac02131c13dee26f709550f2d5fe9fe2ca1.tar.bz2 |
converter: Fix suffix condition
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>
-rw-r--r-- | gcc/rust/util/rust-token-converter.cc | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/gcc/rust/util/rust-token-converter.cc b/gcc/rust/util/rust-token-converter.cc index d5cb450..2047ea7 100644 --- a/gcc/rust/util/rust-token-converter.cc +++ b/gcc/rust/util/rust-token-converter.cc @@ -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: |