diff options
Diffstat (limited to 'gcc-4.8.1/gcc/go/go-linemap.cc')
-rw-r--r-- | gcc-4.8.1/gcc/go/go-linemap.cc | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/gcc-4.8.1/gcc/go/go-linemap.cc b/gcc-4.8.1/gcc/go/go-linemap.cc deleted file mode 100644 index b41559ed4..000000000 --- a/gcc-4.8.1/gcc/go/go-linemap.cc +++ /dev/null @@ -1,126 +0,0 @@ -// go-linemap.cc -- GCC implementation of Linemap. - -// Copyright 2011 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-linemap.h" - -// This class implements the Linemap interface defined by the -// frontend. - -class Gcc_linemap : public Linemap -{ - public: - Gcc_linemap() - : Linemap(), - in_file_(false) - { } - - void - start_file(const char* file_name, unsigned int line_begin); - - void - start_line(unsigned int line_number, unsigned int line_size); - - Location - get_location(unsigned int column); - - void - stop(); - - protected: - Location - get_predeclared_location(); - - Location - get_unknown_location(); - - bool - is_predeclared(Location); - - bool - is_unknown(Location); - - private: - // Whether we are currently reading a file. - bool in_file_; -}; - -Linemap* Linemap::instance_ = NULL; - -// Start getting locations from a new file. - -void -Gcc_linemap::start_file(const char *file_name, unsigned line_begin) -{ - if (this->in_file_) - linemap_add(line_table, LC_LEAVE, 0, NULL, 0); - linemap_add(line_table, LC_ENTER, 0, file_name, line_begin); - this->in_file_ = true; -} - -// Stop getting locations. - -void -Gcc_linemap::stop() -{ - linemap_add(line_table, LC_LEAVE, 0, NULL, 0); - this->in_file_ = false; -} - -// Start a new line. - -void -Gcc_linemap::start_line(unsigned lineno, unsigned linesize) -{ - linemap_line_start(line_table, lineno, linesize); -} - -// Get a location. - -Location -Gcc_linemap::get_location(unsigned column) -{ - return Location(linemap_position_for_column(line_table, column)); -} - -// Get the unknown location. - -Location -Gcc_linemap::get_unknown_location() -{ - return Location(UNKNOWN_LOCATION); -} - -// Get the predeclared location. - -Location -Gcc_linemap::get_predeclared_location() -{ - return Location(BUILTINS_LOCATION); -} - -// Return whether a location is the predeclared location. - -bool -Gcc_linemap::is_predeclared(Location loc) -{ - return loc.gcc_location() == BUILTINS_LOCATION; -} - -// Return whether a location is the unknown location. - -bool -Gcc_linemap::is_unknown(Location loc) -{ - return loc.gcc_location() == UNKNOWN_LOCATION; -} - -// Return the Linemap to use for the gcc backend. - -Linemap* -go_get_linemap() -{ - return new Gcc_linemap; -} |