With -f(un)signed-char, the die corresponding to "char" may be the opposite DW_ATE_(un)signed_char from the default platform signedness. Ultimately we should determine whether a type is the unspecified signedness char by looking if its name is "char" (as opposed to "signed char"/"unsigned char") and not care about DW_ATE_(un)signed_char matching the platform default. Fixes #23443 Reviewed By: labath Differential Revision: https://reviews.llvm.org/D136011
29 lines
1003 B
Python
29 lines
1003 B
Python
import lldb
|
|
from lldbsuite.test.decorators import *
|
|
from lldbsuite.test.lldbtest import *
|
|
from lldbsuite.test import lldbutil
|
|
|
|
class ExprCharTestCase(TestBase):
|
|
|
|
def do_test(self, dictionary=None):
|
|
"""These basic expression commands should work as expected."""
|
|
self.build(dictionary=dictionary)
|
|
|
|
lldbutil.run_to_source_breakpoint(self, '// Break here', lldb.SBFileSpec("main.cpp"))
|
|
|
|
self.expect_expr("foo(c)", result_value="1")
|
|
self.expect_expr("foo(sc)", result_value="2")
|
|
self.expect_expr("foo(uc)", result_value="3")
|
|
self.expect_expr("g", result_type="char")
|
|
self.expect_expr("gs", result_type="signed char")
|
|
self.expect_expr("gu", result_type="unsigned char")
|
|
|
|
def test_default_char(self):
|
|
self.do_test()
|
|
|
|
def test_signed_char(self):
|
|
self.do_test(dictionary={'CFLAGS_EXTRAS': '-fsigned-char'})
|
|
|
|
def test_unsigned_char(self):
|
|
self.do_test(dictionary={'CFLAGS_EXTRAS': '-funsigned-char'})
|