erik.pilkington added a comment.

Hi Balaji,

I reduced your testcase a bit more, this looks like the can be a crash on 
valid. Can you use the more minimal version in the testcase?

  template <typename a, int* = nullptr>
  struct e {
      e(a) {}
  };
  e c(0);

Also: you should add cfe-commits as a subscriber when creating new phab 
revisions. IIRC there was some issue with adding cfe-commits after the fact.



================
Comment at: include/clang/AST/TemplateBase.h:469
+
+    /* When an error occurs in a template value that is defaulted to
+       nullptr then the nullptr is left as-is and this function will
----------------
Please use `//` comments in C++ files!

I think this comment is pretty superfluous though. If a future reader came 
across this then they would probably not care too much about the details of 
this bug.


================
Comment at: include/clang/AST/TemplateBase.h:474-475
+       and proceeds through.  */
+    assert(Argument.getKind() == TemplateArgument::NullPtr ||
+           Argument.getKind() == TemplateArgument::Expression);
   }
----------------
I think we should let this constructor work with any non type template 
argument. If you agree, could you add the extra cases? (Should just be 
TemplateArgument::Declaration and TemplateArgument::Integral)


Repository:
  rC Clang

https://reviews.llvm.org/D49766



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

Reply via email to