compnerd added inline comments.
================
Comment at: lib/CodeGen/CodeGenModule.cpp:477
Context.getTypeSizeInChars(Context.getWideCharType()).getQuantity();
- assert((LangOpts.ShortWChar ||
- llvm::TargetLibraryInfoImpl::getTargetWCharSize(Target.getTriple())
==
----------------
compnerd wrote:
> MatzeB wrote:
> > rnk wrote:
> > > @MatzeB ptal
> > Can you find a new place for this assert()? Please do not just remove it!
> >
> > For the backstory: Unfortunately I had to duplicate the wchar decision
> > logic inside llvm (TargetLibraryInfoImpl::getTargetWCharSize() for cases
> > where we just have the target triple available but need to know the size of
> > wchar_t using library function. This means the logic in LLVM needs to be
> > updated when support for new platforms is added but for people adding
> > platform support it will not be obvious that they have the change
> > LLVM/TargetLibraryInfo as well unless an assert() point them to there being
> > a mismatch.
> Sure, I'll try to see if I can find a suitable place or adjustment of it.
> However, one thing to note is that the frontend does actually embed that into
> the IR metadata ("wchar_size").
I think that if we try to retain this assertion, we need to update all the
tests to ensure that they pass the arguments for selecting the `wchar_t` type.
The entire problem is that the backend view of this cannot correlate with what
the user specified without passing it back to it. The "wchar_size" metadata
does exactly that. Using that to perform the validation for the library
function call.
Repository:
rL LLVM
https://reviews.llvm.org/D37891
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits