| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Original gccxml output used the singular name, so we should too for
compatibility. Fix this typo left from commit defc576826 (Output:
Generate Function and related elements, 2014-02-12).
|
|
|
|
|
|
|
|
| |
Refactoring in the parent commit removed the need to consume a node
index when creating a CvQualifiedType element. That commit preserved
the behavior artificially in order to minimize differences in expected
test output. Now remove this behavior and update the expected test
output to account for the now-contiguous indexes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously our handling of cv-qualified types did not account for
multiple locally cv-qualified types encountered through multiple levels
of desugaring. This could lead to CvQualifiedType elements that
reference elements that are generated with a different id.
Refactor our internal representation of dump nodes to keep cv-qualifiers
in the node ids. Teach AddTypeDumpNode to collect cv-qualifiers from
each level of desugaring and compute their union. Once the desugared
unqualified type is found, generate one CvQualifiedType element for the
qualified type, if any.
Update the expected test output to account for the new ordering of
nodes. Mark the Class-template-constructor-template test case as no
longer broken because this approach fixes it. Add test cases covering
cv-qualifiers added at different layers of desugaring (via "T const"
where T is already a "const" type in a template instantiation).
GitHub-Issue: 10
|
|
|
|
|
|
| |
This information is produced by gccxml, so add it to our output too.
Since we don't know the architecture that will be targeted during
testing, match any size and align values with "[0-9]+".
|
|
|
|
| |
This information is produced by gccxml, so add it to our output too.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Teach AddDumpNode to optionally report back the actual QualType that it
selects after possibly unwrapping some layers of indirection in the
Clang AST. Use this in GetTypeIdRef so that we check this actual
QualType's cv qualifiers instead of the original QualType. Otherwise
we may generate a dangling reference to the id number that is replaced
by a CvQualifiedType id.
Fix the expected output of existing test cases that exhibit this problem
and add a new test case designed to cover the behavior explicitly.
|
|
Use clang::Sema::PerformPendingInstantiations before we attempt to add
implicit member definitions so any real errors show up first. Then set
SuppressAllDiagnostics to suppress errors caused by the following.
Iterate over all members of one class at a time in order of completion
of class definition (bases before derived classes). Force definition of
each member using clang::Sema::MarkFunctionReferenced followed by
another call to clang::Sema::PerformPendingInstantiations to ensure that
members formed by implicitly instantiated templates are completed.
Clang will mark any failed declaration as invalid, allowing us to
exclude it from the output. This works both for implicit and explicit
members.
Update the test suite to mark test cases that are no longer 'broken'.
According to discussion on the Clang cfe-commits mailing list:
[PATCH] Add DiagnosticSuppressionScope RAII class
http://thread.gmane.org/gmane.comp.compilers.clang.scm/110832/focus=111112
this approach may depend on non-guaranteed behavior. By iterating over
members in order of class definition, we mark any bad special members
invalid in base classes so that when Clang processes those in derived
classes the invalid members are only one "step" away. Hopefully this
behavior will be easier to preserve if Clang changes in the future.
|