kparzysz added inline comments.

================
Comment at: lib/CodeGen/CGExpr.cpp:1436
+    if (BaseInfo.getMayAlias())
+      TBAAInfo = CGM.getTBAAInfo(getContext().CharTy);
     llvm::MDNode *TBAAPath = CGM.getTBAAStructTagInfo(TBAABaseType, TBAAInfo,
----------------
rjmccall wrote:
> kparzysz wrote:
> > rjmccall wrote:
> > > Hmm.  Should we be constructing a struct-path TBAA at all if the base may 
> > > alias, as opposed to just using 'char'?
> > I did that and got a verifier error: "Old-style TBAA is no longer allowed, 
> > use struct-path TBAA instead. fatal error: error in backend: Broken 
> > function found, compilation aborted!"
> Oh, I haven't been paying enough attention to LLVM's TBAA changes.  It looks 
> like they've canonicalized on always using the struct-access-style TBAA 
> metadata, which is fine; the point is that we should be using whatever tag we 
> would use for dereferencing a simple char*, which I believe just means 
> passing true for ConvertTypeToTag to DecorateInstructionWithTBAA .
With that change I'm getting another error:

```
Access type node must be a valid scalar type
  store <4 x double> %call2, <4 x double>* %b, align 32, !tbaa !8
!8 = !{!9, !9, i64 0}
!9 = !{!4, !4, i64 0}
fatal error: error in backend: Broken function found, compilation aborted!
```



Repository:
  rL LLVM

https://reviews.llvm.org/D33328



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

Reply via email to