diff options
Diffstat (limited to 'gcc/go/gofrontend/go-encode-id.h')
-rw-r--r-- | gcc/go/gofrontend/go-encode-id.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/go/gofrontend/go-encode-id.h b/gcc/go/gofrontend/go-encode-id.h new file mode 100644 index 0000000..b95d97d --- /dev/null +++ b/gcc/go/gofrontend/go-encode-id.h @@ -0,0 +1,30 @@ +// go-encode-id.h -- Go identifier encoding utilities -*- C++ -*- + +// Copyright 2016 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. + +#ifndef GO_ENCODE_ID_H +#define GO_ENCODE_ID_H + +#include "backend.h" + +// Given an identifier corresponding to a function or variable, +// this helper returns TRUE if the identifier needs special +// encoding to be used as an ASM name (symbol), FALSE if the name +// is OK as is. +extern bool +go_id_needs_encoding(const std::string& str); + +// Encodes the specified identifier for ASM name safety, returning a +// string with the encoded value. +extern std::string +go_encode_id(const std::string &id); + +// Returns the empty string if the specified name needs encoding, +// otherwise invokes go_encode_id() on the name and returns the +// result. +extern std::string +go_selectively_encode_id(const std::string &id); + +#endif // !defined(GO_ENCODE_ID_H) |