]> granicus.if.org Git - clang/commit
Clang :: Sema/wchar.c has long been failing on Solaris:
authorRainer Orth <ro@gcc.gnu.org>
Mon, 17 Jun 2019 20:21:25 +0000 (20:21 +0000)
committerRainer Orth <ro@gcc.gnu.org>
Mon, 17 Jun 2019 20:21:25 +0000 (20:21 +0000)
commitf211949b2d72d64f832e1e5f5706890f4ee89767
tree813fa792e5eca06defbc63a23db1eda30e5658cb
parente8dbe3f862b764015d233c4030be6d668242c340
Clang :: Sema/wchar.c has long been failing on Solaris:

  error: 'error' diagnostics expected but not seen:
    File /vol/llvm/src/clang/local/test/Sema/wchar.c Line 22: initializing wide char array with non-wide string literal
  error: 'error' diagnostics seen but not expected:
    File /vol/llvm/src/clang/local/test/Sema/wchar.c Line 20: array initializer must be an initializer list
    File /vol/llvm/src/clang/local/test/Sema/wchar.c Line 22: array initializer must be an initializer list

It turns out the definition is wrong, as can be seen in GCC's gcc/config/sol2.h:

  /* wchar_t is called differently in <wchar.h> for 32 and 64-bit
     compilations.  This is called for by SCD 2.4.1, p. 6-83, Figure 6-65
     (32-bit) and p. 6P-10, Figure 6.38 (64-bit).  */

  #undef WCHAR_TYPE
  #define WCHAR_TYPE (TARGET_64BIT ? "int" : "long int")

The following patch implements this, and at the same time corrects the wint_t
definition which is the same:

  /* Same for wint_t.  See SCD 2.4.1, p. 6-83, Figure 6-66 (32-bit).  There's
     no corresponding 64-bit definition, but this is what Solaris 8
     <iso/wchar_iso.h> uses.  */

  #undef WINT_TYPE
  #define WINT_TYPE (TARGET_64BIT ? "int" : "long int")

Clang :: Preprocessor/wchar_t.c and Clang :: Sema/format-strings.c need to
be adjusted to account for that.

Tested on i386-pc-solaris2.11, x86_64-pc-solaris2.11, and x86_64-pc-linux-gnu.

Differential Revision: https://reviews.llvm.org/D62944

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@363612 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Basic/Targets/OSTargets.h
test/Preprocessor/wchar_t.c
test/Sema/format-strings.c
test/Sema/wchar.c