forked from OSchip/llvm-project
Revert "CodeGenModule: Always output wchar_size, check LLVM assumptions."
Let's revert this for now (and with it the assert()) to get the bots back to green until I have LLVM synced up properly. This reverts commit r303463. llvm-svn: 303474
This commit is contained in:
parent
888965c8a2
commit
421b63dd70
|
@ -45,7 +45,6 @@
|
|||
#include "clang/Frontend/CodeGenOptions.h"
|
||||
#include "clang/Sema/SemaDiagnostic.h"
|
||||
#include "llvm/ADT/Triple.h"
|
||||
#include "llvm/Analysis/TargetLibraryInfo.h"
|
||||
#include "llvm/IR/CallSite.h"
|
||||
#include "llvm/IR/CallingConv.h"
|
||||
#include "llvm/IR/DataLayout.h"
|
||||
|
@ -466,24 +465,18 @@ void CodeGenModule::Release() {
|
|||
getModule().addModuleFlag(llvm::Module::Warning, "Debug Info Version",
|
||||
llvm::DEBUG_METADATA_VERSION);
|
||||
|
||||
// Width of wchar_t in bytes
|
||||
uint64_t WCharWidth =
|
||||
Context.getTypeSizeInChars(Context.getWideCharType()).getQuantity();
|
||||
assert(LangOpts.ShortWChar ||
|
||||
llvm::TargetLibraryInfoImpl::getTargetWCharSize(Target.getTriple()) ==
|
||||
Target.getWCharWidth() / 8 &&
|
||||
"LLVM wchar_t size out of sync");
|
||||
|
||||
// We need to record the widths of enums and wchar_t, so that we can generate
|
||||
// the correct build attributes in the ARM backend. wchar_size is also used by
|
||||
// TargetLibraryInfo.
|
||||
getModule().addModuleFlag(llvm::Module::Error, "wchar_size", WCharWidth);
|
||||
|
||||
// the correct build attributes in the ARM backend.
|
||||
llvm::Triple::ArchType Arch = Context.getTargetInfo().getTriple().getArch();
|
||||
if ( Arch == llvm::Triple::arm
|
||||
|| Arch == llvm::Triple::armeb
|
||||
|| Arch == llvm::Triple::thumb
|
||||
|| Arch == llvm::Triple::thumbeb) {
|
||||
// Width of wchar_t in bytes
|
||||
uint64_t WCharWidth =
|
||||
Context.getTypeSizeInChars(Context.getWideCharType()).getQuantity();
|
||||
getModule().addModuleFlag(llvm::Module::Error, "wchar_size", WCharWidth);
|
||||
|
||||
// The minimum width of an enum in bytes
|
||||
uint64_t EnumWidth = Context.getLangOpts().ShortEnums ? 1 : 4;
|
||||
getModule().addModuleFlag(llvm::Module::Error, "min_enum_size", EnumWidth);
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm -o - %s | FileCheck %s -check-prefix=LONG-WCHAR
|
||||
// RUN: %clang_cc1 -triple x86_64-unknown-windows-msvc -emit-llvm -o - %s | FileCheck %s -check-prefix=SHORT-WCHAR
|
||||
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm -o - -fshort-wchar %s | FileCheck %s -check-prefix=SHORT-WCHAR
|
||||
// Note: -fno-short-wchar implies the target default is used; so there is no
|
||||
// need to test this separately here.
|
||||
|
||||
// LONG-WCHAR: !{{[0-9]+}} = !{i32 {{[0-9]+}}, !"wchar_size", i32 4}
|
||||
// SHORT-WCHAR: !{{[0-9]+}} = !{i32 {{[0-9]+}}, !"wchar_size", i32 2}
|
Loading…
Reference in New Issue