diff options
Diffstat (limited to 'libgo/runtime/go-strcmp.c')
-rw-r--r-- | libgo/runtime/go-strcmp.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/libgo/runtime/go-strcmp.c b/libgo/runtime/go-strcmp.c new file mode 100644 index 000000000..8e6cb1834 --- /dev/null +++ b/libgo/runtime/go-strcmp.c @@ -0,0 +1,27 @@ +/* go-strcmp.c -- the go string comparison function. + + Copyright 2009 The Go Authors. All rights reserved. + Use of this source code is governed by a BSD-style + license that can be found in the LICENSE file. */ + +#include "go-string.h" + +int +__go_strcmp(struct __go_string s1, struct __go_string s2) +{ + int i; + + i = __builtin_memcmp(s1.__data, s2.__data, + (s1.__length < s2.__length + ? s1.__length + : s2.__length)); + if (i != 0) + return i; + + if (s1.__length < s2.__length) + return -1; + else if (s1.__length > s2.__length) + return 1; + else + return 0; +} |