//
// Copyright 2022 The ANGLE 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.
//
// fuchsia_backtrace.cpp:
//   Implements functions to output the backtrace from the ANGLE code during execution on Fuschia.
//

#include "common/backtrace_utils.h"

namespace angle
{

// It is possible to refactor the implementation of printing the backtrace information from the
// PrintStackBacktrace() function.
void printBacktraceInfo(BacktraceInfo backtraceInfo) {}

}  // namespace angle
