ahatanak added inline comments.

> TargetInfo.cpp:430
>        if (AN == Name && ARN.RegNum < Names.size())
> -        return Name;
> +        if (ReturnCanonical)
> +          return Names[ARN.RegNum];

Please use braces or a ternary operator here.

> ahatanak wrote in Targets.cpp:2718
> Can we skip the checks for all these non-alphabet characters and handle them 
> in "default"? Would doing so be incorrect?

Sorry for not being clear. Because this will fail to find registers for 
constraints like "=&c", I was thinking you can just check the first alphabet 
after skipping all the non-alphabets (using isalpha, for example).

> Targets.cpp:2714
>    }
> +  virtual StringRef getConstraintRegister(const StringRef &Constraint,
> +    const StringRef &Expression) const {

Use "override" instead of "virtual".

> SemaStmtAsm.cpp:186
> +    if (InOutVars.find(Clobber) != InOutVars.end()){
> +      SourceLocation Loc = Clobbers[i]->getLocStart();
> +      return &Loc;

You don't want to return the address of a local variable. Just change this 
function to return a SourceLocation by value. You can use 
SourceLocation::isValid in ActOnGCCAsmStmt to determine whether it is a valid 
SourceLocation.

> SemaStmtAsm.cpp:190
> +  }
> +  return nullptr;
> +}

Return "SourceLocation()"

> SemaStmtAsm.cpp:602
> +    Constraints, Clobbers, NumClobbers, Context.getTargetInfo(), Context);
> +  if (ConstraintLoc) {
> +    return Diag(*ConstraintLoc,

You don't need braces here.

https://reviews.llvm.org/D15075



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to