Skip to content

Commit

Permalink
[TBAA] Add bail-out to skip tbaa generation to getTBAAStructInfo. (#8…
Browse files Browse the repository at this point in the history
…4386)

Without this bail out, we may generate fields with null nodes as tags
are generated by using getTypeInfo which has the same bail out.

PR: #84386
  • Loading branch information
fhahn committed Mar 8, 2024
1 parent 755b439 commit 83789ff
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 2 deletions.
3 changes: 3 additions & 0 deletions clang/lib/CodeGen/CodeGenTBAA.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,9 @@ CodeGenTBAA::CollectFields(uint64_t BaseOffset,

llvm::MDNode *
CodeGenTBAA::getTBAAStructInfo(QualType QTy) {
if (CodeGenOpts.OptimizationLevel == 0 || CodeGenOpts.RelaxedAliasing)
return nullptr;

const Type *Ty = Context.getCanonicalType(QTy).getTypePtr();

if (llvm::MDNode *N = StructMetadataCache[Ty])
Expand Down
2 changes: 0 additions & 2 deletions clang/test/CodeGen/tbaa-struct-relaxed-aliasing-with-tsan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@
// RUN: FileCheck %s
//
// Check that we do not create tbaa for instructions generated for copies.
// FIXME: !tbaa.struct is generated with null node as tag.

// CHECK: !tbaa.struct
// CHECK-NOT: !tbaa

struct A {
Expand Down

0 comments on commit 83789ff

Please sign in to comment.