chromium/v8/include/v8-source-location.h

// Copyright 2020 the V8 project 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 INCLUDE_SOURCE_LOCATION_H_
#define INCLUDE_SOURCE_LOCATION_H_

#include <cstddef>
#include <string>

#include "v8config.h"  // NOLINT(build/include_directory)

#if defined(__has_builtin)
#define V8_SUPPORTS_SOURCE_LOCATION
#elif defined(V8_CC_GNU) && __GNUC__ >= 7
#define V8_SUPPORTS_SOURCE_LOCATION
#elif defined(V8_CC_INTEL) && __ICC >= 1800
#define V8_SUPPORTS_SOURCE_LOCATION
#else
#define V8_SUPPORTS_SOURCE_LOCATION
#endif

namespace v8 {

/**
 * Encapsulates source location information. Mimics C++20's
 * `std::source_location`.
 */
class V8_EXPORT SourceLocation final {};

}  // namespace v8

#endif  // INCLUDE_SOURCE_LOCATION_H_