#include <config.h>
#include "strset.h"
+#include "strutil.h"
#include "hash_string.h"
#define HashSet strset_t
#define NullValue NULL
#define DeletedValue ((void*)-1)
#define Hash(this, value) hash_string(value)
-#define KeysEqual(this,key1,key2) (strcmp(key1, key2) == 0)
+#define KeysEqual(this,key1,key2) (streq(key1, key2))
#define SetRangeEmpty(ptr,size) memset(ptr, 0, (size) * sizeof(strset_entry_t))
#define SCALAR_RETURN
#include "adt/error.h"
#include "adt/array.h"
+#include "adt/strutil.h"
#include "adt/util.h"
#include "symbol_t.h"
#include "token_t.h"
continue;
}
- if (strcmp(clobber_str, "memory") == 0) {
+ if (streq(clobber_str, "memory")) {
needs_memory = true;
continue;
}
}
if (name[0] == 's') {
- if ((name[1] == 'e' && (!strcmp(name, "setjmp")
- || !strcmp(name, "setjmp_syscall")))
- || (name[1] == 'i' && !strcmp(name, "sigsetjmp"))
- || (name[1] == 'a' && !strcmp(name, "savectx"))) {
+ if ((name[1] == 'e' && (streq(name, "setjmp")
+ || streq(name, "setjmp_syscall")))
+ || (name[1] == 'i' && streq(name, "sigsetjmp"))
+ || (name[1] == 'a' && streq(name, "savectx"))) {
function->base.type
= add_type_modifier(function->base.type, DM_RETURNS_TWICE);
- } else if (name[1] == 'i' && !strcmp(name, "siglongjmp")) {
+ } else if (name[1] == 'i' && streq(name, "siglongjmp")) {
function->base.type
= add_type_modifier(function->base.type, DM_NORETURN);
}
- } else if ((name[0] == 'q' && !strcmp(name, "qsetjmp"))
- || (name[0] == 'v' && !strcmp(name, "vfork"))
- || (name[0] == 'g' && !strcmp(name, "getcontext"))) {
+ } else if ((name[0] == 'q' && streq(name, "qsetjmp"))
+ || (name[0] == 'v' && streq(name, "vfork"))
+ || (name[0] == 'g' && streq(name, "getcontext"))) {
function->base.type
= add_type_modifier(function->base.type, DM_RETURNS_TWICE);
- } else if (name[0] == 'l' && !strcmp(name, "longjmp")) {
+ } else if (name[0] == 'l' && streq(name, "longjmp")) {
function->base.type
= add_type_modifier(function->base.type, DM_NORETURN);
}
static opt_config_t *get_opt(const char *name)
{
FOR_EACH_OPT(config) {
- if (strcmp(config->name, name) == 0)
+ if (streq(config->name, name))
return config;
}
#include <ctype.h>
+#include "adt/strutil.h"
#include "adt/util.h"
#include "format_check.h"
#include "symbol_t.h"
*/
const char *const name = entity->base.symbol->string;
for (size_t i = 0; i < lengthof(builtin_table); ++i) {
- if (strcmp(name, builtin_table[i].name) == 0) {
+ if (streq(name, builtin_table[i].name)) {
switch (builtin_table[i].fmt_kind) {
case FORMAT_PRINTF:
check_printf_format(arg, &builtin_table[i]);
*/
#include <config.h>
+#include "adt/strutil.h"
#include "input.h"
#include "diagnostic.h"
#include "lexer.h"
*
* currently we're only interested in "3"
*/
- if (strcmp(pp_token.number.number.begin, "3") == 0) {
+ if (streq(pp_token.number.number.begin, "3")) {
lexer_pos.is_system_header = true;
}
next_pp_token();
symbol_t **prop;
symbol_t *symbol = token.identifier.symbol;
- if (strcmp(symbol->string, "put") == 0) {
+ if (streq(symbol->string, "put")) {
prop = &property->put_symbol;
- } else if (strcmp(symbol->string, "get") == 0) {
+ } else if (streq(symbol->string, "get")) {
prop = &property->get_symbol;
} else {
errorf(HERE, "expected put or get in property declspec");
for (attribute_kind_t k = ATTRIBUTE_MS_FIRST; k <= ATTRIBUTE_MS_LAST;
++k) {
const char *attribute_name = get_attribute_name(k);
- if (attribute_name != NULL && strcmp(attribute_name, name) == 0) {
+ if (attribute_name != NULL && streq(attribute_name, name)) {
kind = k;
break;
}
*/
static bool is_sym_main(const symbol_t *const sym)
{
- return strcmp(sym->string, "main") == 0;
+ return streq(sym->string, "main");
}
static void error_redefined_as_different_kind(const source_position_t *pos,
linkage_kind_t old_linkage = current_linkage;
linkage_kind_t new_linkage;
- if (strcmp(linkage, "C") == 0) {
+ if (streq(linkage, "C")) {
new_linkage = LINKAGE_C;
- } else if (strcmp(linkage, "C++") == 0) {
+ } else if (streq(linkage, "C++")) {
new_linkage = LINKAGE_CXX;
} else {
errorf(&pos, "linkage string \"%s\" not recognized", linkage);
*/
#include <config.h>
+#include "adt/strutil.h"
#include "symbol_table_t.h"
#include "symbol_t.h"
#include "token_t.h"
#define GetKey(value) (value)->string
#define InitData(this,value,key) ((void)((value) = (ValueType)obstack_alloc(&symbol_obstack, sizeof(symbol_t)), init_symbol_table_entry((value), key)))
#define Hash(this, key) hash_string(key)
-#define KeysEqual(this,key1,key2) (strcmp(key1, key2) == 0)
+#define KeysEqual(this,key1,key2) (streq(key1, key2))
#define SetRangeEmpty(ptr,size) memset(ptr, 0, (size) * sizeof(symbol_table_hash_entry_t))
#define SCALAR_RETURN
}
for (warning_switch_t* i = warning; i != endof(warning); ++i) {
- if (strcmp(i->name, s) == 0) {
+ if (streq(i->name, s)) {
i->state = (i->state & ~off) | on;
return;
}
if (s[0] == '\0') { // -W is an alias for -Wextra
goto extra;
}
-#define OPTX(x) else if (strcmp(s, x) == 0)
+#define OPTX(x) else if (streq(s, x))
#define SET(y) (void)(warning[y].state = (warning[y].state & ~off) | on)
OPTX("all") {
/* Note: this switched on a lot more warnings than gcc's -Wall */
}
#undef SET
#undef OPT_X
- else if (strcmp(opt /* sic */, "error-implicit-function-declaration") == 0) {
+ else if (streq(opt /* sic */, "error-implicit-function-declaration")) {
/* GCC legacy: This way it only can be activated. */
warning[WARN_IMPLICIT_FUNCTION_DECLARATION].state = WARN_STATE_ON | WARN_STATE_ERROR;
return;
static const char *fix_builtin_names(const char *name)
{
- if (strcmp(name, "class") == 0) {
+ if (streq(name, "class")) {
return "_class";
- } else if(strcmp(name, "this") == 0) {
+ } else if (streq(name, "this")) {
return "_this";
- } else if(strcmp(name, "public") == 0) {
+ } else if (streq(name, "public")) {
return "_public";
- } else if(strcmp(name, "protected") == 0) {
+ } else if (streq(name, "protected")) {
return "_protected";
- } else if(strcmp(name, "private") == 0) {
+ } else if (streq(name, "private")) {
return "_private";
- } else if(strcmp(name, "final") == 0) {
+ } else if (streq(name, "final")) {
return "_final";
}
/* TODO put all reserved names here */
bool in_limits = false;
for (output_limit *limit = output_limits; limit != NULL;
limit = limit->next) {
- if (strcmp(limit->filename, input_name) == 0) {
+ if (streq(limit->filename, input_name)) {
in_limits = true;
break;
}