HomePhabricator

Fixes for platforms that default to unsigned char

Description

Fixes for platforms that default to unsigned char

This fixes several test case failure on s390x caused by the fact that
on this platform, the default "char" type is unsigned.

  • In ClangASTContext::GetBuiltinTypeForEncodingAndBitSize we should return an explicit *signed* char type for encoding eEncodingSint and bit size 8, instead of the default platform char type (which may be unsigned). This fix matches existing code in ClangASTContext::GetIntTypeFromBitSize, and fixes the TestClangASTContext.TestBuiltinTypeForEncodingAndBitSize unit test case.
  • The test/expression_command/char/TestExprsChar.py test case is known to fail on platforms defaulting to unsigned char (pr23069), and just needs to be xfailed on s390x like on arm.
  • The test/functionalities/watchpoint/watchpoint_on_vectors/main.c test case defines a vector of "char" and implicitly assumes to be signed. Use an explicit "signed char" instead.

Differential Revision: http://reviews.llvm.org/D18979

Details

Committed
uweigandApr 14 2016, 7:30 AM
Differential Revision
D18979: Fixes for platforms that default to unsigned char
Parents
rLLDB266308: Support Linux on SystemZ as platform
Branches
Unknown
Tags
Unknown