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 } ^