(resend message which seems to have been lost 2 days ago)
Hello clang Developers,
I have been interested in the standardisation of the upcomming C++0x for quite
some time now, and while reading up on it I discovered LLVM and CLang.
I was imediately intrigued by the project, and I'd like to get involved.
So I started reading all the Documentation (short of API-Reference) that I
could find, and think that I now have a tentative understanding how the
larger parts fit togher.
Reading the Open Projects and the C++ Status Pages I took on the first
"project" which looked managable and open, which landed me with
Pseudo Destructor calls.
The first thing I did was creating a test for the feature, so I created a file
llvm/tools/clang/test/CXX/expr/expr.post/expr.pseudo/p1.cpp with the following
content:
3: int main() {
4: typedef int NonClass_type;
5:
6: NonClass_type nc;
7: nc.~NonClass_type();
8: nc.NonClass_type::~NonClass_type();
9:
10: NonClass_type * pNc;
11: pNc->~NonClass_type();
12: pNc->NonClass_type::~NonClass_type();
13: }
which probably contain the first mistakes along the way.
(Do I test everything relevant? Do lines 8 and 12 belong
to paragraph 1?, ... )
Anyway, having this test I can clearly see that this feature
is not yet supported, I recive the following output from
clang-cc -fsyntax-only -verify:
Errors seen but not expected:
Line 7: expected identifier
Line 8: member reference base type 'NonClass_type' (aka 'int') is not a
structure or union
Line 11: expected identifier
Line 12: member reference base type 'NonClass_type' (aka 'int') is not a
structure or union
So searching for these errors I get the source locations where they occur,
and discovered that Line 7 and 11 are not correctly parsed so I changed this
with the following patch: