Fixes for platforms that default to unsigned char
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Thu, 14 Apr 2016 14:30:12 +0000 (14:30 +0000)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Thu, 14 Apr 2016 14:30:12 +0000 (14:30 +0000)
commit377e4213e1fd9f242a92bf0f40f7e3734a4c6938
tree9916845475528bf2a393ff7c378676d8b80374c3
parentbb00d0b6b29a2ab1c59d3040a21f14156d8779df
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

llvm-svn: 266309
lldb/packages/Python/lldbsuite/test/expression_command/char/TestExprsChar.py
lldb/packages/Python/lldbsuite/test/functionalities/watchpoint/watchpoint_on_vectors/main.c
lldb/source/Symbol/ClangASTContext.cpp