On Apr 25, 2007, at 7:28 AM, Anton Korobeynikov wrote:

> +void GlobalAlias::setAliasee(const GlobalValue *GV)
> +{
> +  // FIXME: Some checks?
> +  Aliasee = GV;
> +}
> +

This should assert that GV type matches the alias type.

> @@ -277,7 +282,9 @@
>    Assert1(!GV.isDeclaration() ||
>            GV.hasExternalLinkage() ||
>            GV.hasDLLImportLinkage() ||
> -          GV.hasExternalWeakLinkage(),
> +          GV.hasExternalWeakLinkage() ||
> +          (isa<GlobalAlias>(GV) &&
> +           (GV.hasInternalLinkage() || GV.hasWeakLinkage())),
>    "Global is external, but doesn't have external or dllimport or  
> weak linkage!",
>            &GV);

Hopefully we can eliminate internal aliases...

>
> @@ -303,6 +310,16 @@
>    visitGlobalValue(GV);
>  }
>
> +void Verifier::visitGlobalAlias(GlobalAlias &GA) {
> +  Assert1(!GA.getName().empty(),
> +          "Alias name cannot be empty!", &GA);
> +  Assert1(GA.hasExternalLinkage() || GA.hasInternalLinkage() ||
> +          GA.hasWeakLinkage(),
> +          "Alias should have external or external weak linkage!",  
> &GA);

This should check that the alias and aliasee have the same type.

-Chris


_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to