forked from OSchip/llvm-project
39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
# DExTer : Debugging Experience Tester
|
|
# ~~~~~~ ~ ~~ ~ ~~
|
|
#
|
|
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
# See https://llvm.org/LICENSE.txt for license information.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
|
|
|
|
class ValueIR:
|
|
"""Data class to store the result of an expression evaluation."""
|
|
|
|
def __init__(self,
|
|
expression: str,
|
|
value: str,
|
|
type_name: str,
|
|
could_evaluate: bool,
|
|
error_string: str = None,
|
|
is_optimized_away: bool = False,
|
|
is_irretrievable: bool = False):
|
|
self.expression = expression
|
|
self.value = value
|
|
self.type_name = type_name
|
|
self.could_evaluate = could_evaluate
|
|
self.error_string = error_string
|
|
self.is_optimized_away = is_optimized_away
|
|
self.is_irretrievable = is_irretrievable
|
|
|
|
def __str__(self):
|
|
prefix = '"{}": '.format(self.expression)
|
|
if self.error_string is not None:
|
|
return prefix + self.error_string
|
|
if self.value is not None:
|
|
return prefix + '({}) {}'.format(self.type_name, self.value)
|
|
return (prefix +
|
|
'could_evaluate: {}; irretrievable: {}; optimized_away: {};'
|
|
.format(self.could_evaluate, self.is_irretrievable,
|
|
self.is_optimized_away))
|
|
|