[cfe-dev] Problem with canonical types?
Douglas Gregor
dgregor at apple.com
Wed Jul 28 08:16:16 PDT 2010
On Jul 27, 2010, at 2:48 AM, Abramo Bagnara wrote:
> When compiling the attached example using clang, we get the following error:
>
> ====================
> $ llvm/Debug+Asserts/bin/clang -cc1 -fsyntax-only ppl_bug.cc
> ppl_bug.cc:32:11: error: out-of-line definition of 'foo' does not match
> any declaration in 'Class<T>'
> Class<T>::foo() {}
> ~~~~~~~~~~^
> 1 error generated.
> ====================
>
>
> We tracked down the problem up to the call to
>
> bool Sema::IsOverload(FunctionDecl *New, FunctionDecl *Old,
> bool UseUsingDeclRules);
>
> where the test
>
> OldType->getResultType() != NewType->getResultType()
>
> succeeds instead of failing.
>
> The two (canonical) result types do print the same (using method dump()
> in gdb), but they are anyway different pointers.
Definitely a canonical-types bug, which I've fixed here:
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20100726/032609.html
Thanks!
- Doug
More information about the cfe-dev
mailing list