Thanks! Looks good to me, I only have one comment:

> --- a/lib/Sema/SemaDecl.cpp
> +++ b/lib/Sema/SemaDecl.cpp
> @@ -4907,10 +4907,10 @@ static void checkDLLAttributeRedeclaration(Sema &S, 
> NamedDecl *OldDecl,
>    // A redeclaration is not allowed to drop a dllimport attribute, the only
>    // exception being inline function definitions.
>    // NB: MSVC converts such a declaration to dllexport.
> -  bool IsInline =
> -      isa<FunctionDecl>(NewDecl) && cast<FunctionDecl>(NewDecl)->isInlined();
> -
> -  if (OldImportAttr && !HasNewAttr && !IsInline) {
> +  auto *NewFD = dyn_cast<FunctionDecl>(NewDecl);
> +  auto *NewVD = dyn_cast<VarDecl>(NewDecl);
> +  if (OldImportAttr && !HasNewAttr && !(NewFD && NewFD->isInlined()) &&
> +      !(NewVD && NewVD->isStaticDataMember())) {

I wish the definition of IsInline above could have been shorter, but
it did make the if statement easier to read. I think if the statement
looke like this, it would be much easier to parse:

  if (OldImportAttr && !HasNewAttr && !IsInline && !IsStatisDatamember) {
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to