*src/Synopsis/PTree/Encoding.hh: include for memcmp et al *src/Synopsis/SymbolTable/Scope.cc: include for typeid *src/Synopsis/Parser.cc (lookup_class_name): suggests parentheses *src/Synopsis/Lexer.hh: likewise Index: synopsis-trunk/src/Synopsis/PTree/Encoding.hh =================================================================== --- synopsis-trunk/src/Synopsis/PTree/Encoding.hh (revision 1832) +++ synopsis-trunk/src/Synopsis/PTree/Encoding.hh (working copy) @@ -10,6 +10,7 @@ #include #include +#include #include namespace Synopsis Index: synopsis-trunk/src/Synopsis/Parser.cc =================================================================== --- synopsis-trunk/src/Synopsis/Parser.cc (revision 1832) +++ synopsis-trunk/src/Synopsis/Parser.cc (working copy) @@ -455,11 +455,12 @@ bool Parser::lookup_class_name(PT::Encod dynamic_cast(declared)) { my_symbol = declared; - if (my_in_nested_name_specifier) + if (my_in_nested_name_specifier) { if (my_symbol == ST::DEPENDENT) my_qualifying_scope = ST::DEPENDENT_SCOPE; else my_qualifying_scope = declared->scope()->find_scope(declared->ptree()); + } return true; } else if (dynamic_cast(declared)) @@ -4247,7 +4248,7 @@ PT::Node *Parser::primary_expression() { // GNU statement expression PT::Block *block = compound_statement(block); - if (!require(block, "compound-statement")) return 0; + if (!require(block, "compound-statement")) return 0; expr = block; } else Index: synopsis-trunk/src/Synopsis/SymbolTable/Scope.cc =================================================================== --- synopsis-trunk/src/Synopsis/SymbolTable/Scope.cc (revision 1832) +++ synopsis-trunk/src/Synopsis/SymbolTable/Scope.cc (working copy) @@ -9,6 +9,7 @@ #include #include #include +#include #include using namespace Synopsis; Index: synopsis-trunk/src/Synopsis/Lexer.hh =================================================================== --- synopsis-trunk/src/Synopsis/Lexer.hh (revision 1832) +++ synopsis-trunk/src/Synopsis/Lexer.hh (working copy) @@ -133,7 +133,7 @@ inline bool is_blank(char c) inline bool is_letter(char c) { - return 'A' <= c && c <= 'Z' || 'a' <= c && c <= 'z' || c == '_' || c == '$'; + return ('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z') || c == '_' || c == '$'; } inline bool is_digit(char c){ return '0' <= c && c <= '9';} @@ -144,7 +144,7 @@ inline bool is_eletter(char c){ return c inline bool is_hexdigit(char c) { - return is_digit(c) || 'A' <= c && c <= 'F' || 'a' <= c && c <= 'f'; + return is_digit(c) || ('A' <= c && c <= 'F') || ('a' <= c && c <= 'f'); } inline bool is_int_suffix(char c)