[cfe-dev] canonical type for C++11 auto
Milian Wolff
mail at milianw.de
Thu Jul 30 13:48:53 PDT 2015
Ping?
Could anyone help me out? In what direction should I look? How can I resolve the "auto" QualType (as
returned by e.g. T.getAsString())" to the underlying type - in my test code below "int"?
Any help would be greatly appreciated.
Bye
On Sunday, July 26, 2015 03:31:14 PM Milian Wolff wrote:
> Hey all,
>
> I want to scratch my own itch by fixing the issue that
> clang_getCanonicalType does not deduce the type for variables such as `auto
> i = 1;`. See for context:
>
> https://llvm.org/bugs/show_bug.cgi?id=18669
> http://clang-developers.42468.n3.nabble.com/API-for-auto-type-deduction-in-l
> ibclang-td4037350.html
>
> I added a simple unit test as the first step:
>
> $ cat test/Index/cxx11-print-type.cpp
> auto a = 1;
>
> // RUN: c-index-test -test-print-type -std=c++11 %s | FileCheck %s
> // CHECK: VarDecl=a:1:6 [type=auto] [typeKind=Unexposed]
> [canonicaltype=int] [canonicaltypekind=Int] [isPOD=1]
>
> Running the first half manually I get:
>
> VarDecl=a:1:6 (Definition) [type=auto] [typekind=Unexposed] [isPOD=0]
>
> Sadly, I'm a bit lost as to where I'd have to fix this. Looking at
> CXType.cpp's clang_getCanonicalType implementation, I tried something like
> this:
>
> fprintf(stderr, "--------------> undeduced?: %d\n",
> T->isUndeducedType()); if (T->isUndeducedType()) {
> auto d = T->getContainedAutoType()->getDeducedType();
> fprintf(stderr, "--------------> deduced valid? %d\n", !d.isNull());
> if (!d.isNull()) {
> T = d;
> }
> }
>
> This shows me that for the above input (i.e. `auto i = 1;`), the type is
> undeduced, but I also cannot force deduction by getDeducedType (probably me
> abusing/misinterpreting the API). So what can be done here - how could it be
> fixed? Where would it be fixed?
>
> Thanks
--
Milian Wolff
mail at milianw.de
http://milianw.de
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20150730/5ed295e7/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20150730/5ed295e7/attachment.sig>
More information about the cfe-dev
mailing list