[cfe-dev] Problem with a change on newFrontendActionFactory

David Blaikie dblaikie at gmail.com
Thu May 1 13:17:01 PDT 2014


On Thu, May 1, 2014 at 1:12 PM, Richard Smith <richard at metafoo.co.uk> wrote:
> On Thu, May 1, 2014 at 12:55 PM, Etienne Ollivier <eollivier at bsu.edu> wrote:
>>
>> Hello,
>> I updated my clang repository recently and I an error appeared that was
>> not
>> there before:
>>
>> error: no viable conversion from 'std::unique_ptr<FrontendActionFactory>'
>> to
>>       'clang::tooling::ToolAction *'
>>         return Tool.run(newFrontendActionFactory<MyPluginASTAction>());
>>                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>> It is because newFrontendActionFactory has been changed to work with
>> std::unique_ptr. So if I change my code to
>>    return Tool.run(&(*newFrontendActionFactory<MyPluginASTAction>()));
>
>
> You can use .get() rather than the slightly non-obvious &*.
>
>>
>> it works. The only little problem is that it can be confusing for users
>> since is not the way it is written in the documentation, like on this
>> pages:
>> http://clang.llvm.org/docs/LibTooling.html
>> http://clang.llvm.org/docs/LibASTMatchersTutorial.html
>
>
> Thanks, I've updated the documentation.

I'm trying to understand how the ownership used to work/is meant to work now...



More information about the cfe-dev mailing list