Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | PR36055: fix computation of *-dependence in nested initializer lists. | Richard Smith | 2018-02-07 | 1 | -0/+8 |
| | | | | | | | | | | | | | | | | When we synthesize an implicit inner initializer list when analyzing an outer initializer list, we add it to the outer list immediately, and then fill in the inner list. This gives the outer list no chance to update its *-dependence bits with those of the completed inner list. To fix this, re-add the inner list to the outer list once it's completed. Note that we do not recompute the *-dependence bits from scratch when we complete an outer list; this would give the wrong result for the case where a designated initializer overwrites a dependent initializer with a non-dependent one. The resulting list in that case should still be dependent, even though all traces of the dependence were removed from the semantic form. llvm-svn: 324537 | ||||
* | [Sema] Fix a pair of crashes when generating exception specifiers with an | Erich Keane | 2017-09-18 | 1 | -0/+31 |
error'ed field for a template class' default ctor. The two examples in the test would both cause a compiler assert when attempting to calculate the exception specifier for the default constructor for the template classes. The problem was that dependents of this function expect that Field->getInClassInitializer (including canThrow) is not nullptr. However, if the template's initializer has an error, exactly that situation happens. This patch simply sets the field to be invalid. Differential Revision: https://reviews.llvm.org/D37865 llvm-svn: 313569 |