aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.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
commitb077620c025b65d5782c666dabc9f5db286d40ec (patch)
tree168150e1ab463389fe66c065b6869e7af42046f4 /clang/lib/Frontend/CompilerInvocation.cpp
parent583edf884315605fa802b7e9c55afdbc2cc0e129 (diff)
downloadllvm-b077620c025b65d5782c666dabc9f5db286d40ec.zip
llvm-b077620c025b65d5782c666dabc9f5db286d40ec.tar.gz
llvm-b077620c025b65d5782c666dabc9f5db286d40ec.tar.bz2
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. llvm-svn: 130604
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions