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