[Patch] Fix out of line constructor definition parsing.

Hi,

I found small bug with where clang does not like:

namespace A {
  struct S {
    S();
    S(int);
    void f1();
    void f2();
    operator int ();
    ~S();
  };
}

make_report_result.txt (17.3 KB)

fix_ctor_parsing.patch (1.71 KB)

correct_headers_path.patch (618 Bytes)

Hi,

fix_ctor_parsing_v2.patch (1.71 KB)

I am sorry, did not notice that those are provided with clang now.
Attached makes all files install, and solves this problem for me.
'make install' target was not tested.

Piotr

correct_headers_path_v2.patch (1008 Bytes)

Also 'make test' was pretty much broken. I needed small fix for cmake
build to put generated headers in lib/clang/1.0/include instead of
Headers/ like before.
correct_headers_path.patch fixes it.

This patch is probably fine, but I'll defer to someone familiar with
cmake. Note that the cmake build system often breaks because few
people use it; most people use the make-based build system.

Last issue is that clang fails to parse my system stdio.h (form
glibc-2.6.1) namely:

typedef union
{
struct __gconv_info __cd;
struct
{
struct __gconv_info __cd;
struct __gconv_step_data __data;
} __combined;
} _G_iconv_t;

found in /usr/include/_G_config.h
Attached 'make report' result here, should I open PR for that?

Yes, please do; we want to keep track of this. I'm a little
mystified, though... I can come up with a reduced testcase, but it
doesn't trigger on my Ubuntu system.

Reduced testcase:
struct x {int x, y;}; struct y {struct x x; int y;};

-Eli

Opened PR 3671, http://llvm.org/bugs/show_bug.cgi?id=3671

Piotr

Hi Piotr,

Somehow, your patch got lost in my inbox. It's finally committed, here:

  http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20090706/018769.html

Sorry for the massive delay! Feel free to ping me if this happens again.

  - Doug