Traffic Server
  1. Traffic Server
  2. TS-1583

Visibility of hash_map unclear to GCC 4.7 when -std=c++11

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.3.0
    • Fix Version/s: 3.3.2
    • Component/s: Build
    • Labels:
      None
    • Environment:

      Fedora 17 64bit - gcc 4.7

      Description

      master trunk

      make[2]: Entering directory `/home/luca/trafficserver/proxy'
        CXX    logstats.o
      logstats.cc:349:74: error: template argument 3 is invalid
      logstats.cc:349:89: error: invalid type in declaration before ‘;’ token
      logstats.cc:350:59: error: template argument 2 is invalid
      logstats.cc:350:70: error: invalid type in declaration before ‘;’ token
      logstats.cc:359:80: error: template argument 3 is invalid
      logstats.cc: In member function ‘void UrlLru::add_stat(const char*, int64_t, int, int, int, int)’:
      logstats.cc:402:23: error: expected initializer before ‘h’
      logstats.cc:404:9: error: ‘h’ was not declared in this scope
      logstats.cc:404:20: error: request for member ‘end’ in ‘((UrlLru*)this)->UrlLru::_hash’, which is of non-class type ‘UrlLru::LruHash {aka int}’
      logstats.cc:461:21: error: request for member ‘find’ in ‘((UrlLru*)this)->UrlLru::_hash’, which is of non-class type ‘UrlLru::LruHash {aka int}’
      logstats.cc:462:26: error: request for member ‘end’ in ‘((UrlLru*)this)->UrlLru::_hash’, which is of non-class type ‘UrlLru::LruHash {aka int}’
      logstats.cc:463:19: error: request for member ‘erase’ in ‘((UrlLru*)this)->UrlLru::_hash’, which is of non-class type ‘UrlLru::LruHash {aka int}’
      logstats.cc:522:18: error: assignment of read-only location ‘*(u + ((sizetype)((long unsigned int)((UrlLru*)this)->UrlLru::_hash)))’
      logstats.cc:522:18: error: cannot convert ‘std::list<UrlStats>::iterator {aka std::_List_iterator<UrlStats>}’ to ‘const char’ in assignment
      logstats.cc: In member function ‘void UrlLru::_init()’:
      logstats.cc:536:13: error: request for member ‘resize’ in ‘((UrlLru*)this)->UrlLru::_hash’, which is of non-class type ‘UrlLru::LruHash {aka int}’
      logstats.cc: In function ‘int parse_log_buff(LogBufferHeader*, bool)’:
      logstats.cc:1183:27: error: expected initializer before ‘o_iter’
      logstats.cc:1347:43: error: request for member ‘find’ in ‘* origin_set’, which is of non-class type ‘OriginSet {aka int}’
      logstats.cc:1347:68: error: request for member ‘end’ in ‘* origin_set’, which is of non-class type ‘OriginSet {aka int}’
      logstats.cc:1348:15: error: ‘o_iter’ was not declared in this scope
      logstats.cc:1348:32: error: request for member ‘find’ in ‘origins’, which is of non-class type ‘OriginStorage {aka int}’
      logstats.cc:1349:27: error: request for member ‘end’ in ‘origins’, which is of non-class type ‘OriginStorage {aka int}’
      logstats.cc:1356:39: error: invalid conversion from ‘OriginStats*’ to ‘char’ [-fpermissive]
      logstats.cc: In function ‘void my_exit(const ExitStatus&)’:
      logstats.cc:2132:16: error: request for member ‘empty’ in ‘origins’, which is of non-class type ‘OriginStorage {aka int}’
      logstats.cc:2134:25: error: invalid use of qualified-name ‘::iterator’
      logstats.cc:2134:34: error: expected ‘;’ before ‘i’
      logstats.cc:2134:34: error: ‘i’ was not declared in this scope
      logstats.cc:2134:46: error: request for member ‘begin’ in ‘origins’, which is of non-class type ‘OriginStorage {aka int}’
      logstats.cc:2134:68: error: request for member ‘end’ in ‘origins’, which is of non-class type ‘OriginStorage {aka int}’
      logstats.cc:2134:73: error: expected ‘)’ before ‘;’ token
      logstats.cc:2134:75: error: ‘i’ was not declared in this scope
      logstats.cc:2134:78: error: expected ‘;’ before ‘)’ token
      logstats.cc: In function ‘int main(int, char**)’:
      logstats.cc:2295:21: error: request for member ‘insert’ in ‘* origin_set’, which is of non-class type ‘OriginSet {aka int}’
      logstats.cc:2330:25: error: request for member ‘insert’ in ‘* origin_set’, which is of non-class type ‘OriginSet {aka int}’
      make[2]: *** [logstats.o] Error 1
      make[2]: Leaving directory `/home/luca/trafficserver/proxy'
      make[1]: *** [all-recursive] Error 1
      make[1]: Leaving directory `/home/luca/trafficserver/proxy'
      make: *** [all-recursive] Error 1
      
      1. ts-1583.patch
        2 kB
        Igor Galić

        Issue Links

          Activity

          No work has yet been logged on this issue.

            People

            • Assignee:
              Alan M. Carroll
              Reporter:
              Luca Rea
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development