r243987 - [Sema] Allocate SmallVector to the right size.

David Blaikie dblaikie at gmail.com
Tue Aug 4 08:08:52 PDT 2015


On Aug 4, 2015 7:51 AM, "Benjamin Kramer" <benny.kra at googlemail.com> wrote:
>
> Author: d0k
> Date: Tue Aug  4 09:46:06 2015
> New Revision: 243987
>
> URL: http://llvm.org/viewvc/llvm-project?rev=243987&view=rev
> Log:
> [Sema] Allocate SmallVector to the right size.
>
> SmallVector::set_size does not reallocate the vector. Sadly I have no
> idea how to test this. The vector never has more than one member in all
> of the regression tests.

Could try adding an assert and self hosting to find a non-singular case?
But yeah, I get that's probably not worth it.

Should we rename set_size something more intimidating/scary? That, or I'd
love to remove it...

>
> Found by inspection.
>
> Modified:
>     cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp
>
> Modified: cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp
> URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp?rev=243987&r1=243986&r2=243987&view=diff
>
==============================================================================
> --- cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp Tue Aug  4
09:46:06 2015
> @@ -1657,7 +1657,7 @@ TemplateDeclInstantiator::VisitCXXMethod
>    SmallVector<TemplateParameterList *, 4> TempParamLists;
>    unsigned NumTempParamLists = 0;
>    if (isFriend && (NumTempParamLists =
D->getNumTemplateParameterLists())) {
> -    TempParamLists.set_size(NumTempParamLists);
> +    TempParamLists.resize(NumTempParamLists);
>      for (unsigned I = 0; I != NumTempParamLists; ++I) {
>        TemplateParameterList *TempParams = D->getTemplateParameterList(I);
>        TemplateParameterList *InstParams =
SubstTemplateParams(TempParams);
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150804/048e22da/attachment.html>


More information about the cfe-commits mailing list