diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-02-17 18:43:32 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-02-17 18:43:32 +0000 |
commit | d60f2fbf69df08e952377b498c036f269395024d (patch) | |
tree | 1d916f7aac75a55f7f5daf243c282f03e428891d /lib/CodeGen/ModuleBuilder.cpp | |
parent | bb7677391a9db7d062a7cc637db8960d89ec7c93 (diff) |
Change EmitConstantExpr to allow failure.
IRgen no longer relies on isConstantInitializer, instead we just try
to emit the constant. If that fails then in C we emit an error
unsupported (this occurs when Sema accepted something that it doesn't
know how to fold, and IRgen doesn't know how to emit) and in C++ we
emit a guarded initializer.
This ends up handling a few more cases, because IRgen was actually
able to emit some of the constants Sema accepts but can't Evaluate().
For example, PR3398.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64780 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/ModuleBuilder.cpp')
0 files changed, 0 insertions, 0 deletions