23 #if defined (HAVE_CONFIG_H) 54 else if (c1 ==
"class" || c2 ==
"class")
58 bool c1_is_int = (c1 ==
"int8" || c1 ==
"uint8" 59 || c1 ==
"int16" || c1 ==
"uint16" 60 || c1 ==
"int32" || c1 ==
"uint32" 61 || c1 ==
"int64" || c1 ==
"uint64");
62 bool c2_is_int = (c2 ==
"int8" || c2 ==
"uint8" 63 || c2 ==
"int16" || c2 ==
"uint16" 64 || c2 ==
"int32" || c2 ==
"uint32" 65 || c2 ==
"int64" || c2 ==
"uint64");
67 bool c1_is_char = (c1 ==
"char");
68 bool c2_is_char = (c2 ==
"char");
70 bool c1_is_double = (c1 ==
"double");
71 bool c2_is_double = (c2 ==
"double");
73 bool c1_is_single = (c1 ==
"single");
74 bool c2_is_single = (c2 ==
"single");
76 bool c1_is_logical = (c1 ==
"logical");
77 bool c2_is_logical = (c2 ==
"logical");
79 bool c1_is_built_in_type
80 = (c1_is_int || c1_is_char || c1_is_double || c1_is_single
83 bool c2_is_built_in_type
84 = (c2_is_int || c2_is_char || c2_is_double || c2_is_single
89 if (c1 ==
"struct" && c2 == c1)
91 else if (c1 ==
"cell" || c2 ==
"cell")
93 else if (c1_is_char && c2_is_built_in_type)
95 else if (c2_is_char && c1_is_built_in_type)
97 else if (c1_is_int && c2_is_built_in_type)
99 else if (c2_is_int && c1_is_built_in_type)
101 else if (c1_is_single && c2_is_built_in_type)
103 else if (c2_is_single && c1_is_built_in_type)
105 else if (c1_is_double && c2_is_built_in_type)
107 else if (c2_is_double && c1_is_built_in_type)
109 else if (c1_is_logical && c2_is_logical)
119 if (! (all_dq_strings_p || all_sq_strings_p))
121 "concatenation of different character string types may have unintended consequences");
void copy_base(const tree_array_list &array_list)
void warning_with_id(const char *id, const char *fmt,...)
virtual int column(void) const
static std::string static_class_name(void)
void maybe_warn_string_concat(bool all_dq_strings_p, bool all_sq_strings_p)
tree_matrix(tree_argument_list *row=nullptr, int l=-1, int c=-1)
std::string get_concat_class(const std::string &c1, const std::string &c2)
tree_expression * dup(symbol_scope &scope) const
If this string is the system will ring the terminal sometimes it is useful to be able to print the original representation of the string