1 /* go-strplus.c -- the go string append function.
3 Copyright 2009 The Go Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style
5 license that can be found in the LICENSE file. */
13 __go_string_plus (struct __go_string s1
, struct __go_string s2
)
16 unsigned char *retdata
;
17 struct __go_string ret
;
21 else if (s2
.__length
== 0)
24 len
= s1
.__length
+ s2
.__length
;
25 retdata
= runtime_mallocgc (len
, FlagNoPointers
, 1, 0);
26 __builtin_memcpy (retdata
, s1
.__data
, s1
.__length
);
27 __builtin_memcpy (retdata
+ s1
.__length
, s2
.__data
, s2
.__length
);