https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79741

            Bug ID: 79741
           Summary: errors about struct members being of type size_t when
                    it's not, other strange errors. cached source too.
           Product: gcc
           Version: 6.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jmichae3 at yahoo dot com
  Target Milestone: ---

if it helps, this is the #include list:
#include <iostream>
#include <cmath>
#include <vector>
#include <initializer_list>
#include <string>
#include <cctype>
#include <regex>
#include <cstdint>
#include <algorithm>

at one point I noticed the source code was cached because the compiler was
still complaining about an error I had fixed even though I saved the file.
strange. a compiler should not cache the source code. all these bugs I have
fixed with static casts and the same errors are still reported. source code not
necessary. the struct members are i and v inside a vector mBaseVal. is mBaseVal
ised inside the compiler for something I don't know about of late?



atoi64.cpp:265:12: error: 'egrep' is not a member of 
'std::regex_constants::syntax_option_type'
 RGXC ropts=std::regex_constants::syntax_option_type::egrep;
            ^~~
atoi64.cpp: In function 'ATOLDRESULT atold(S, bool, bool, C, VS, bool, size_t,
bool, bool, S, bool, S)':
atoi64.cpp:1402:345: error: request for member 'v' in
'mBaseVal[mBaseVali(mantissa_fractional_base)]', which is of non-class type
'size_t {aka unsigned int}'
    while (i<l && (groupCharEnabled && groupChar==str[i] ||
S::npos!=(icaseCharset?toLowerCase(charset):charset).find(icaseCharset?std::tolower(str[i]):str[i])
&&
static_cast<intmax_t>((icaseCharset?toLowerCase(charset):charset).find(icaseCharset?std::tolower(str[i]):str[i]))<static_cast<intmax_t>(mBaseVal[mBaseVali(mantissa_fractional_base)].v)))
{
                                                                               
                                                                               
                                                                               
                                                                               
                         ^
atoi64.cpp:1408:172: error: request for member 'v' in
'mBaseVal[mBaseVali(mantissa_fractional_base)]', which is of non-class type
'size_t {aka unsigned int}'
     if (!(groupCharEnabled && groupChar==str[i]) && index != S::npos &&
static_cast<intmax_t>(index) <
static_cast<intmax_t>(mBaseVal[mBaseVali(mantissa_fractional_base)].v)) {
                                                                               
                                                                               
            ^
atoi64.cpp:1410:126: error: request for member 'v' in
'mBaseVal[mBaseVali(mantissa_fractional_base)]', which is of non-class type
'size_t {aka unsigned int}'
     
mantissa_fractional=mantissa_fractional+(index*powl(static_cast<intmax_t>(mBaseVal[mBaseVali(mantissa_fractional_base)].v),idx));//this
is correct. don't change it. please.
                                                                               
                                              ^
atoi64.cpp:1434:307: error: request for member 'v' in
'mBaseVal[mBaseVali(exp_base)]', which is of non-class type 'size_t {aka
unsigned int}'
     while (i<l && (groupCharEnabled && groupChar==str[i] ||
S::npos!=(icaseCharset?toLowerCase(charset):charset).find(icaseCharset?std::tolower(str[i]):str[i])
&&
(icaseCharset?toLowerCase(charset):charset).find(icaseCharset?std::tolower(str[i]):str[i])<static_cast<intmax_t>(mBaseVal[mBaseVali(exp_base)].v))
&& !MatchArrayString(l,i,str,{"p+","p-","p"})) {
                                                                               
                                                                               
                                                                               
                                                                   ^
atoi64.cpp:1440:157: error: request for member 'v' in
'mBaseVal[mBaseVali(exp_base)]', which is of non-class type 'size_t {aka
unsigned int}'
      if (!(groupCharEnabled && groupChar==str[i]) && index != S::npos &&
static_cast<intmax_t>(index) <
static_cast<intmax_t>(mBaseVal[mBaseVali(exp_base)].v)) {
                                                                               
                                                                             ^
atoi64.cpp:1441:75: error: request for member 'v' in
'mBaseVal[mBaseVali(exp_base)]', which is of non-class type 'size_t {aka
unsigned int}'
      
exp_int=exp_int*static_cast<intmax_t>(mBaseVal[mBaseVali(exp_base)].v)+static_cast<intmax_t>(index);//this
is correct. don't change it. please.
                                                                           ^
atoi64.cpp:1618:92: error: request for member 'v' in
'mBaseVal[mBaseVali(mantissa_int_base)]', which is of non-class type 'size_t
{aka unsigned int}'
                
result=result*static_cast<intmax_t>(mBaseVal[mBaseVali(mantissa_int_base)].v)+static_cast<intmax_t>(index);
                                                                               
            ^
atoi64.cpp:1625:94: error: request for member 'i' in
'mBaseVal[mBaseVali(5ll)]', which is of non-class type 'size_t {aka unsigned
int}'
             } else if
(!foundMode&&static_cast<intmax_t>(mBaseVal[mBaseVali(ATOI64_CHARSET)].i)==static_cast<intmax_t>(ATOI64_CHARSET))
{
                                                                               
              ^
atoi64.cpp:1647:187: error: request for member 'v' in
'mBaseVal[mBaseVali(mantissa_int_base)]', which is of non-class type 'size_t
{aka unsigned int}'
         
static_cast<intmax_t>((icaseCharset?toLowerCase(charset):charset).find(icaseCharset?std::tolower(str[i]):str[i]))
< static_cast<intmax_t>(mBaseVal[mBaseVali(mantissa_int_base)].v)
                                                                               
                                                                               
                           ^
atoi64.cpp:1654:161: error: request for member 'v' in
'mBaseVal[mBaseVali(mantissa_int_base)]', which is of non-class type 'size_t
{aka unsigned int}'
     if (!((groupCharEnabled && groupChar==str[i])) && index >= 0 &&
static_cast<intmax_t>(index) <
static_cast<intmax_t>(mBaseVal[mBaseVali(mantissa_int_base)].v)) {
                                                                               
                                                                               
 ^
atoi64.cpp:1655:97: error: request for member 'v' in
'mBaseVal[mBaseVali(mantissa_int_base)]', which is of non-class type 'size_t
{aka unsigned int}'
      mantissa_int = mantissa_int *
static_cast<intmax_t>(mBaseVal[mBaseVali(mantissa_int_base)].v) +
static_cast<intmax_t>(index);
                                                                               
                 ^
atoi64.cpp:1730:125: error: request for member 'v' in
'mBaseVal[mBaseVali(mantissa_fractional_base)]', which is of non-class type
'size_t {aka unsigned int}'
               return
{static_cast<intmax_t>(index)*powl(static_cast<intmax_t>(mBaseVal[mBaseVali(mantissa_fractional_base)].v),-1),true,startpos,endpos=i+1u};
                                                                               
                                             ^
atoi64.cpp:1730:157: error: could not convert '{<expression error>, true,
startpos, (endpos = (i + 1u))}' from '<brace-enclosed initializer list>' to
'ATOLDRESULT'
               return
{static_cast<intmax_t>(index)*powl(static_cast<intmax_t>(mBaseVal[mBaseVali(mantissa_fractional_base)].v),-1),true,startpos,endpos=i+1u};
                                                                               
                                                                             ^
atoi64.cpp:1761:134: error: request for member 'v' in
'mBaseVal[mBaseVali(mantissa_fractional_base)]', which is of non-class type
'size_t {aka unsigned int}'
                 
result=result+static_cast<intmax_t>(index)*powl(static_cast<intmax_t>(mBaseVal[mBaseVali(mantissa_fractional_base)].v),-1);
                                                                               
                                                      ^
atoi64.cpp:1772:92: error: request for member 'i' in
'mBaseVal[mBaseVali(5ll)]', which is of non-class type 'size_t {aka unsigned
int}'
           } else if
(!foundMode&&static_cast<intmax_t>(mBaseVal[mBaseVali(ATOI64_CHARSET)].i)==static_cast<intmax_t>(ATOI64_CHARSET))
{
                                                                               
            ^
atoi64.cpp:1809:195: error: request for member 'v' in
'mBaseVal[mBaseVali(mantissa_fractional_base)]', which is of non-class type
'size_t {aka unsigned int}'
          
static_cast<intmax_t>((icaseCharset?toLowerCase(charset):charset).find(icaseCharset?std::tolower(str[i]):str[i]))
< static_cast<intmax_t>(mBaseVal[mBaseVali(mantissa_fractional_base)].v)
                                                                               
                                                                               
                                   ^
atoi64.cpp:1816:169: error: request for member 'v' in
'mBaseVal[mBaseVali(mantissa_fractional_base)]', which is of non-class type
'size_t {aka unsigned int}'
      if (!((groupCharEnabled && groupChar==str[i])) && index >= 0 &&
static_cast<intmax_t>(index) <
static_cast<intmax_t>(mBaseVal[mBaseVali(mantissa_fractional_base)].v)) {
                                                                               
                                                                               
         ^
atoi64.cpp:1817:154: error: request for member 'v' in
'mBaseVal[mBaseVali(mantissa_fractional_base)]', which is of non-class type
'size_t {aka unsigned int}'
       mantissa_fractional = mantissa_fractional +
(static_cast<intmax_t>(index)*powl(static_cast<intmax_t>(mBaseVal[mBaseVali(mantissa_fractional_base)].v),idx));
                                                                               
                                                                          ^
atoi64.cpp:1906:75: error: request for member 'v' in
'mBaseVal[mBaseVali(exp_base)]', which is of non-class type 'size_t {aka
unsigned int}'
      
exp_int=exp_int*static_cast<intmax_t>(mBaseVal[mBaseVali(exp_base)].v)+static_cast<intmax_t>(index);
                                                                           ^
atoi64.cpp:1914:96: error: request for member 'i' in
'mBaseVal[mBaseVali(5ll)]', which is of non-class type 'size_t {aka unsigned
int}'
               } else if
(!foundMode&&static_cast<intmax_t>(mBaseVal[mBaseVali(ATOI64_CHARSET)].i)==static_cast<intmax_t>(ATOI64_CHARSET))
{
                                                                               
                ^
atoi64.cpp:1930:331: error: request for member 'v' in
'mBaseVal[mBaseVali(exp_base)]', which is of non-class type 'size_t {aka
unsigned int}'
      while (i<l && (groupCharEnabled && groupChar==str[i] ||
S::npos!=(icaseCharset?toLowerCase(charset):charset).find(icaseCharset?std::tolower(str[i]):str[i])
&&
static_cast<intmax_t>((icaseCharset?toLowerCase(charset):charset).find(icaseCharset?std::tolower(str[i]):str[i]))<static_cast<intmax_t>(mBaseVal[mBaseVali(exp_base)].v))
&& !MatchArrayString(l,i,str,{"e+","e-","e"})) {
                                                                               
                                                                               
                                                                               
                                                                               
           ^
atoi64.cpp:1936:158: error: request for member 'v' in
'mBaseVal[mBaseVali(exp_base)]', which is of non-class type 'size_t {aka
unsigned int}'
       if (!(groupCharEnabled && groupChar==str[i]) && index != S::npos &&
static_cast<intmax_t>(index) <
static_cast<intmax_t>(mBaseVal[mBaseVali(exp_base)].v)) {
                                                                               
                                                                              ^
atoi64.cpp:1937:76: error: request for member 'v' in
'mBaseVal[mBaseVali(exp_base)]', which is of non-class type 'size_t {aka
unsigned int}'
       
exp_int=exp_int*static_cast<intmax_t>(mBaseVal[mBaseVali(exp_base)].v)+static_cast<intmax_t>(index);//this
is correct. don't change it. please.
                                                                            ^
atoi64.cpp: In function 'ATOI64RESULT atoi64(S, bool, bool, C, VS, bool,
size_t, bool, bool, S, bool, S)':
atoi64.cpp:2947:25: error: conversion from
'__gnu_cxx::__alloc_traits<std::allocator<char> >::value_type {aka char}' to
non-scalar type 'S {aka std::__cxx11::basic_string<char>}' requested
      S s=charsetPrefix[0];//should really be s=charsetPrefix;s+="[";
                         ^
atoi64.cpp:2974:24: error: conversion from
'__gnu_cxx::__alloc_traits<std::allocator<char> >::value_type {aka char}' to
non-scalar type 'S {aka std::__cxx11::basic_string<char>}' requested
     S s=charsetPrefix[0],s2=charsetPrefix,sf="\\.";
                        ^
atoi64.cpp:3182:78: error: 'parseFloat' was not declared in this scope
         return
{parseFloat(str.substr(i,posRP-moneySuffixes[imoney].size()-i)),true,startpos,posRP+1};//{result,status,startpos,endpos}
                                                                              ^
atoi64.cpp:3182:101: error: could not convert '{<expression error>, true,
startpos, (posRP + 1u)}' from '<brace-enclosed initializer list>' to
'ATOI64RESULT'
         return
{parseFloat(str.substr(i,posRP-moneySuffixes[imoney].size()-i)),true,startpos,posRP+1};//{result,status,startpos,endpos}
                                                                               
                     ^
atoi64.cpp:3185:39: error: 'parseFloat' was not declared in this scope
       return
{parseFloat(str.substr(i)),true,startpos,posRP+1};//{result,status,startpos,endpos}
                                       ^
atoi64.cpp:3185:62: error: could not convert '{<expression error>, true,
startpos, (posRP + 1u)}' from '<brace-enclosed initializer list>' to
'ATOI64RESULT'
       return
{parseFloat(str.substr(i)),true,startpos,posRP+1};//{result,status,startpos,endpos}
                                                              ^
atoi64.cpp:3307:8: error: could not convert
'str.std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator[]<char,
std::char_traits<char>, std::allocator<char> >(ar.MATCHSUFFIXRESULT::newI)'
from '__gnu_cxx::__alloc_traits<std::allocator<char> >::value_type {aka char}'
to 'S {aka std::__cxx11::basic_string<char>}'
                  suffixStr=ar.newSuffixStr;
        ^
atoi64.cpp:3370:281: error: a function-definition is not allowed here before
'{' token
 ATOU64RESULT atou64(S str,bool oldCOctalEnabled=false,bool
groupCharEnabled=true,C groupChar=',',VS dimensionArr={""},bool
skipNonScientific=true,size_t pos=0,bool doMoney=false,bool
icaseDimensionArr=true,S charset="0123456789abcdef",bool icaseCharset=true,S
charsetPrefix="0d") { //returns Array(result,status,intstartpos,intendpos);
status:true=success false=failure
                                                                               
                                                                               
                                                                               
                                         ^
atoi64.cpp:5234:1: error: expected '}' at end of input
 }
 ^

Reply via email to