friss marked 2 inline comments as done.
friss added inline comments.

================
Comment at: include/lldb/Symbol/ClangASTContext.h:284
+             ((bool)pack_name == (bool)packed_args) &&
+             (!packed_args || !packed_args->args.empty());
     }
----------------
friss wrote:
> shafik wrote:
> > Is this saying that an empty parameter pack is invalid? We can have an 
> > empty parameter pack
> > 
> > https://godbolt.org/z/8zCFz9
> That's a good question. I need to check what the DWARF looks like for an 
> empty parameter pack. I would expect it not to be mentioned at all, but if 
> it's there we need to support it.
This was a good catch. The fact that there is an empty pack was recorded in the 
debug info and this made us consider the type as invalid. I've added a test to 
cover this.


================
Comment at: include/lldb/Symbol/ClangASTContext.h:792
+  GetTemplateArgumentKind(lldb::opaque_compiler_type_t type, size_t idx,
+                          bool expand_pack) override;
   CompilerType GetTypeTemplateArgument(lldb::opaque_compiler_type_t type,
----------------
shafik wrote:
> Why not default to `false` here?
I added the defaults at the top to keep the semantics for the existing code, 
but it turns out there's no code using those interfaces that I haven't updated. 
I'll remove the defaults from everywhere.


================
Comment at: source/Symbol/ClangASTContext.cpp:7664
+
+  assert(args.size() &&
+         "We shouldn't have a template specialization without any args");
----------------
shafik wrote:
> The asset before we do math making this assumption i.e. `args.size() - 1`
The assert is also wrong because of the empty pack issue. I'll update the patch.


https://reviews.llvm.org/D51387



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to