]> granicus.if.org Git - clang/commit
fix unnamed fiefield issue and add tests for __builtin_preserve_access_index intrinsic
authorYonghong Song <yhs@fb.com>
Tue, 16 Jul 2019 17:24:33 +0000 (17:24 +0000)
committerYonghong Song <yhs@fb.com>
Tue, 16 Jul 2019 17:24:33 +0000 (17:24 +0000)
commit3a3b332ab57891b8699a270019f8ebbf29df5b2e
treed902eb15dce2172b0b93d1c5e8c7775400d0b78b
parentec0a24cf0c4cda22adebd574bb5a9f01e793f657
fix unnamed fiefield issue and add tests for __builtin_preserve_access_index intrinsic

The original commit is r366076. It is temporarily reverted (r366155)
due to test failure. This resubmit makes test more robust by accepting
regex instead of hardcoded names/references in several places.

This is a followup patch for https://reviews.llvm.org/D61809.
Handle unnamed bitfield properly and add more test cases.

Fixed the unnamed bitfield issue. The unnamed bitfield is ignored
by debug info, so we need to ignore such a struct/union member
when we try to get the member index in the debug info.

D61809 contains two test cases but not enough as it does
not checking generated IRs in the fine grain level, and also
it does not have semantics checking tests.
This patch added unit tests for both code gen and semantics checking for
the new intrinsic.

Signed-off-by: Yonghong Song <yhs@fb.com>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@366231 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGExpr.cpp
lib/CodeGen/CodeGenFunction.h
test/CodeGen/builtin-preserve-access-index.c [new file with mode: 0644]
test/Sema/builtin-preserve-access-index.c [new file with mode: 0644]