================ @@ -0,0 +1,136 @@ +//===--- CIRGenAsm.cpp - Inline Assembly Support for CIR CodeGen ---------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This file contains code to emit inline assembly. +// +//===----------------------------------------------------------------------===// + +#include "clang/Basic/DiagnosticSema.h" +#include "llvm/ADT/StringExtras.h" + +#include "CIRGenFunction.h" +#include "TargetInfo.h" +#include "clang/CIR/MissingFeatures.h" + +using namespace clang; +using namespace clang::CIRGen; +using namespace cir; + +static AsmFlavor inferFlavor(const CIRGenModule &cgm, const AsmStmt &s) { + AsmFlavor gnuAsmFlavor = + cgm.getCodeGenOpts().getInlineAsmDialect() == CodeGenOptions::IAD_ATT + ? AsmFlavor::x86_att + : AsmFlavor::x86_intel; + + return isa<MSAsmStmt>(&s) ? AsmFlavor::x86_intel : gnuAsmFlavor; +} + +static void collectClobbers(const CIRGenFunction &cgf, const AsmStmt &s, + std::string &constraints, bool &hasUnwindClobber, + bool &readOnly, bool readNone) { + + hasUnwindClobber = false; + const CIRGenModule &cgm = cgf.getCIRGenModule(); + + // Clobbers + for (unsigned i = 0, e = s.getNumClobbers(); i != e; i++) { + std::string clobberStr = s.getClobber(i); + StringRef clobber{clobberStr}; + if (clobber == "memory") ---------------- andykaylor wrote:
When one part of an `if-else` chain requires braces, you should use braces for all parts, per the LLVM Coding Standards. https://github.com/llvm/llvm-project/pull/153546 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits