1//===------- ItaniumCXXABI.cpp - Emit LLVM Code from ASTs for a Module ----===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// --- 325 unchanged lines hidden (view full) --- 334 335 // Note that AArch64 uses the generic ItaniumCXXABI class since it doesn't 336 // include the other 32-bit ARM oddities: constructor/destructor return values 337 // and array cookies. 338 case TargetCXXABI::GenericAArch64: 339 return new ItaniumCXXABI(CGM, /* UseARMMethodPtrABI = */ true, 340 /* UseARMGuardVarABI = */ true); 341 |
342 case TargetCXXABI::GenericMIPS: 343 return new ItaniumCXXABI(CGM, /* UseARMMethodPtrABI = */ true); 344 |
345 case TargetCXXABI::GenericItanium: 346 if (CGM.getContext().getTargetInfo().getTriple().getArch() 347 == llvm::Triple::le32) { 348 // For PNaCl, use ARM-style method pointers so that PNaCl code 349 // does not assume anything about the alignment of function 350 // pointers. 351 return new ItaniumCXXABI(CGM, /* UseARMMethodPtrABI = */ true, 352 /* UseARMGuardVarABI = */ false); --- 2856 unchanged lines hidden --- |