aboutsummaryrefslogtreecommitdiff
path: root/lib/AST/Type.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2011-04-30 10:07:32 +0000
committerChandler Carruth <chandlerc@gmail.com>2011-04-30 10:07:32 +0000
commiteb65a108bd1eb613ed2a9ebfdbd73a9c872f0309 (patch)
treeebbf8f7e05818f34e0ebdf18f115c02844a52034 /lib/AST/Type.cpp
parentec997dc66627957bcdcd3db7906a68c1e14a279c (diff)
Extract a function to impose the completeness requirement on unary type
trait arguments. Reflow the logic to use early exit instead of a complex condition expression. Switch to a switch for acting on different type traits and add a bunch of the recently implemented type traits here. This fixes one of the regressions with the new __is_standard_layout trait to again require a complete type. It also fixes some latent bugs in other traits that never did impose this despite the standard requiring it. However, all these bugs were hidden for non-borland systems where the default is to require a complete type. It's unclear to me what the best approach here is: providing an explicit lists for the ones requiring complete types only w/ Borland and using a default for the rest, or forcing this switch to enumerate the traits and make it clear which way each one goes. I'm still working on cleaning up the tests so that they actually catch this, a much more comprehensive update to the tests will come once I've worked through the bugs I'm finding via inspection. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130604 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/Type.cpp')
0 files changed, 0 insertions, 0 deletions