change TargetInfo::ConstraintInfo to be a struct that contains
the enum along with some other data.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70114 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaStmt.cpp b/lib/Sema/SemaStmt.cpp
index 1ee8188..62623f3 100644
--- a/lib/Sema/SemaStmt.cpp
+++ b/lib/Sema/SemaStmt.cpp
@@ -925,8 +925,8 @@
std::string OutputConstraint(Literal->getStrData(),
Literal->getByteLength());
- TargetInfo::ConstraintInfo info;
- if (!Context.Target.validateOutputConstraint(OutputConstraint.c_str(),info))
+ TargetInfo::ConstraintInfo Info;
+ if (!Context.Target.validateOutputConstraint(OutputConstraint.c_str(),Info))
return StmtError(Diag(Literal->getLocStart(),
diag::err_asm_invalid_output_constraint) << OutputConstraint);
@@ -938,7 +938,7 @@
<< OutputExpr->getSubExpr()->getSourceRange());
}
- OutputConstraintInfos.push_back(info);
+ OutputConstraintInfos.push_back(Info);
}
for (unsigned i = NumOutputs, e = NumOutputs + NumInputs; i != e; i++) {
@@ -950,12 +950,12 @@
std::string InputConstraint(Literal->getStrData(),
Literal->getByteLength());
- TargetInfo::ConstraintInfo info;
+ TargetInfo::ConstraintInfo Info;
if (!Context.Target.validateInputConstraint(InputConstraint.c_str(),
&Names[0],
&Names[0] + NumOutputs,
&OutputConstraintInfos[0],
- info)) {
+ Info)) {
return StmtError(Diag(Literal->getLocStart(),
diag::err_asm_invalid_input_constraint) << InputConstraint);
}
@@ -963,15 +963,14 @@
ParenExpr *InputExpr = cast<ParenExpr>(Exprs[i]);
// Only allow void types for memory constraints.
- if ((info & TargetInfo::CI_AllowsMemory)
- && !(info & TargetInfo::CI_AllowsRegister)) {
+ if (Info.allowsMemory() && !Info.allowsRegister()) {
if (CheckAsmLValue(InputExpr, *this))
return StmtError(Diag(InputExpr->getSubExpr()->getLocStart(),
diag::err_asm_invalid_lvalue_in_input)
- << InputConstraint << InputExpr->getSubExpr()->getSourceRange());
+ << InputConstraint << InputExpr->getSubExpr()->getSourceRange());
}
- if (info & TargetInfo::CI_AllowsRegister) {
+ if (Info.allowsRegister()) {
if (InputExpr->getType()->isVoidType()) {
return StmtError(Diag(InputExpr->getSubExpr()->getLocStart(),
diag::err_asm_invalid_type_in_input)