github.com/alexanius/gollvm12@v0.0.0-20230419200121-b152358b84f3/gofrontend/go/go-dump.h (about)

     1  // go-dump.h -- Go frontend debug dumps.    -*- C++ -*-
     2  
     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.
     6  
     7  #ifndef GO_DUMP_H
     8  #define GO_DUMP_H
     9  
    10  // This class manages different arguments to -fgo-dump-XXX.  If you
    11  // want to create a new dump, create a variable of this type with the
    12  // name to use for XXX.  You can then use is_enabled to see whether
    13  // the -fgo-dump-XXX option was used on the command line.
    14  
    15  class Go_dump
    16  {
    17   public:
    18    Go_dump(const char* name);
    19  
    20    // Whether this dump was enabled.
    21    bool
    22    is_enabled() const
    23    { return this->is_enabled_; }
    24  
    25    // Enable a dump by name.  Return true if the dump was found.
    26    static bool
    27    enable_by_name(const char*);
    28  
    29   private:
    30    // The next dump.  These are not in any order.
    31    Go_dump* next_;
    32    // The name of this dump.
    33    const char* name_;
    34    // Whether this dump was enabled.
    35    bool is_enabled_;
    36  };
    37  
    38  #endif // !defined(GO_DUMP_H)