unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Duncan Greatwood <dgbulk@gmail.com>
To: Michael Albinus <michael.albinus@gmx.de>
Cc: 45518@debbugs.gnu.org
Subject: bug#45518: Ctrl-G Fails to Interrupt Hung Tramp Remote-Compile in Emacs 27.1
Date: Thu, 28 Jan 2021 21:15:38 -0800	[thread overview]
Message-ID: <CAN_Aq+pFgJkc7+GAR3YFTUdU=LQ8iSnqkD+gK9o4po8ALN1N+Q@mail.gmail.com> (raw)
In-Reply-To: <CAN_Aq+py7nv+O+y-hRgcbbuzHohdYuB3pxEU=SWeSyw=PFjvyg@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 2577 bytes --]

Hi Michael -

Got back to this.

Good news! The patch for compile.el, applied to Emacs 27.1, fixes the issue
of the tramp window hanging in my test cases, running tramp from MAC.

There is still one tramp hanging issue I saw in my testing. This is a much
less serious issue (pressing ctrl-G once "unhangs"), but thought I'd
mention it here. LMK if you'd prefer a separate bug report and I'll create
one.

If, during a "make" via tramp with many syntax errors, you click on one of
the early errors produced in the tramp window, the compile pauses and the
source window does not move to the error. Emacs appears to hang.

If you press ctrl-G, then the compile continues, no problem, until
eventually exiting.

I also noticed the same effect if I just try and type a few characters into
the source file while the make is going on - the compile hangs, and emacs
appears to hang, until I press ctrl-G to allow it to continue.

When I perform this operation directly in emacs on the ubuntu machine (i.e.
without using tramp), clicking on an early error message while "make"
continues to run does not hang anything - the "make" process continues and
meanwhile (even before make completes) the source window moves to the error
that I clicked on. Likewise I can type characters into the test.cpp source
file during make without causing a hang.

I am enclosing another test.cpp with even more errors to make it easier to
catch this issue (you can just drop it into the src directory you were
using for the last setup, overwriting the prior test.cpp).

By the way, this time, the issue reproduces for me regardless of whether I
am running the emacs-tramp on a Mac or on an ubuntu client; as you'll
recall, the target host is ubuntu in both cases.

Thanks again for fixing the main hanging issue!
Duncan.

On Tue, Jan 12, 2021 at 7:02 AM Michael Albinus <michael.albinus@gmx.de>
wrote:

> Duncan Greatwood <dgbulk@gmail.com> writes:
>
> Hi Duncan,
>
> > Meanwhile, good luck with debugging these bug#45518 issues.
>
> Finally, I nailed it down. In the (remote) compilation process, there is
> a process filter, which calls `file-truename' if it detects an
> error. This works one or two times, but then the (remote) compilation
> process comes in conflict with the (remote) Tramp process responsible
> for `file-truename'.
>
> The following patch has fixed the issue for me on my FreeBSD machine. It
> is on top of Emacs' git master; but likely it works also for your Emacs
> 27 (not tested by me). Could you check, whether this helps you?
>
> > Thanks again!
>
> Best regards, Michael.
>

[-- Attachment #1.2: Type: text/html, Size: 3314 bytes --]

[-- Attachment #2: test.cpp --]
[-- Type: application/octet-stream, Size: 31142 bytes --]

// test.cpp - for lots of syntax errors

#include <mutex>
#include <string>
#include <vector>
#include <memory>         

/////////////////////////////

class A1
{
    int f1();
    int f2();
    int f3();
    int f4();
    int f5();
    int f6();
    int f7();
    int f8();
    int f9();
};

class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
class Nested
{
    A1 m1;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};


class A2
{
    std::shared_ptr<A1> a1ptr;
    A2() {A1 a1; a1ptr = &a1;}
};

#define AN_BODY                                                    \
    A1 x1;                                                         \
    A1 x2;                                                         \
    std::string s1(x1);                                            \
    std::string s2(x2);                                            \
Nested n1;                                                              \
const std::vector<std::string> v1(1, a1);                               \
const std::vector<std::string> v1(1, n1);                               \
std::vector<std::string> * v1_cptr(&v1);                                \
return(s1+s2);

int A1::f1()
{
    AN_BODY;
}

int A1::f2()
{
    AN_BODY;
}

int A1::f3()
{
    AN_BODY;
}

int A1::f4()
{
    AN_BODY;
}

int A1::f5()
{
    AN_BODY;
}

int A1::f6()
{
    AN_BODY;
}

int A1::f7()
{
    AN_BODY;
}

int A1::f8()
{
    AN_BODY;
}

int A1::f9()
{
    AN_BODY;
}

int A1::f10()
{
    AN_BODY;
}


int main(int argc, char* argv[])
{
    AN_BODY;
}


/////////////////////////////

class A11
{
    int f1();
    int f2();
    int f3();
    int f4();
    int f5();
    int f6();
    int f7();
    int f8();
    int f9();
};

class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
class Nested1
{
    A11 m1;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};


class A2
{
    std::shared_ptr<A11> a1ptr;
    A2() {A11 a1; a1ptr = &a1;}
};

#define AN_BODY1                                                    \
    A11 x1;                                                         \
    A11 x2;                                                         \
    std::string s1(x1);                                            \
    std::string s2(x2);                                            \
Nested1 n1;                                                              \
const std::vector<std::string> v1(1, a1);                               \
const std::vector<std::string> v1(1, n1);                               \
std::vector<std::string> * v1_cptr(&v1);                                \
return(s1+s2);

int A11::f1()
{
    AN_BODY1;
}

int A11::f2()
{
    AN_BODY1;
}

int A11::f3()
{
    AN_BODY1;
}

int A11::f4()
{
    AN_BODY1;
}

int A11::f5()
{
    AN_BODY1;
}

int A11::f6()
{
    AN_BODY1;
}

int A11::f7()
{
    AN_BODY1;
}

int A11::f8()
{
    AN_BODY1;
}

int A11::f9()
{
    AN_BODY1;
}

int A11::f10()
{
    AN_BODY1;
}


int main1(int argc, char* argv[])
{
    AN_BODY1;
}


/////////////////////////////

class A111
{
    int f1();
    int f2();
    int f3();
    int f4();
    int f5();
    int f6();
    int f7();
    int f8();
    int f9();
};

class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
class Nested11
{
    A111 m1;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};


class A2
{
    std::shared_ptr<A111> a1ptr;
    A2() {A111 a1; a1ptr = &a1;}
};

#define AN_BODY11                                                    \
    A111 x1;                                                         \
    A111 x2;                                                         \
    std::string s1(x1);                                            \
    std::string s2(x2);                                            \
Nested11 n1;                                                              \
const std::vector<std::string> v1(1, a1);                               \
const std::vector<std::string> v1(1, n1);                               \
std::vector<std::string> * v1_cptr(&v1);                                \
return(s1+s2);

int A111::f1()
{
    AN_BODY11;
}

int A111::f2()
{
    AN_BODY11;
}

int A111::f3()
{
    AN_BODY11;
}

int A111::f4()
{
    AN_BODY11;
}

int A111::f5()
{
    AN_BODY11;
}

int A111::f6()
{
    AN_BODY11;
}

int A111::f7()
{
    AN_BODY11;
}

int A111::f8()
{
    AN_BODY11;
}

int A111::f9()
{
    AN_BODY11;
}

int A111::f10()
{
    AN_BODY11;
}


int main11(int argc, char* argv[])
{
    AN_BODY11;
}


/////////////////////////////

class A1111
{
    int f1();
    int f2();
    int f3();
    int f4();
    int f5();
    int f6();
    int f7();
    int f8();
    int f9();
};

class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
class Nested111
{
    A1111 m1;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};


class A2
{
    std::shared_ptr<A1111> a1ptr;
    A2() {A1111 a1; a1ptr = &a1;}
};

#define AN_BODY111                                                    \
    A1111 x1;                                                         \
    A1111 x2;                                                         \
    std::string s1(x1);                                            \
    std::string s2(x2);                                            \
Nested111 n1;                                                              \
const std::vector<std::string> v1(1, a1);                               \
const std::vector<std::string> v1(1, n1);                               \
std::vector<std::string> * v1_cptr(&v1);                                \
return(s1+s2);

int A1111::f1()
{
    AN_BODY111;
}

int A1111::f2()
{
    AN_BODY111;
}

int A1111::f3()
{
    AN_BODY111;
}

int A1111::f4()
{
    AN_BODY111;
}

int A1111::f5()
{
    AN_BODY111;
}

int A1111::f6()
{
    AN_BODY111;
}

int A1111::f7()
{
    AN_BODY111;
}

int A1111::f8()
{
    AN_BODY111;
}

int A1111::f9()
{
    AN_BODY111;
}

int A1111::f10()
{
    AN_BODY111;
}


int main111(int argc, char* argv[])
{
    AN_BODY111;
}


/////////////////////////////

class A11111
{
    int f1();
    int f2();
    int f3();
    int f4();
    int f5();
    int f6();
    int f7();
    int f8();
    int f9();
};

class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
class Nested1111
{
    A11111 m1;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};


class A2
{
    std::shared_ptr<A11111> a1ptr;
    A2() {A11111 a1; a1ptr = &a1;}
};

#define AN_BODY1111                                                    \
    A11111 x1;                                                         \
    A11111 x2;                                                         \
    std::string s1(x1);                                            \
    std::string s2(x2);                                            \
Nested1111 n1;                                                              \
const std::vector<std::string> v1(1, a1);                               \
const std::vector<std::string> v1(1, n1);                               \
std::vector<std::string> * v1_cptr(&v1);                                \
return(s1+s2);

int A11111::f1()
{
    AN_BODY1111;
}

int A11111::f2()
{
    AN_BODY1111;
}

int A11111::f3()
{
    AN_BODY1111;
}

int A11111::f4()
{
    AN_BODY1111;
}

int A11111::f5()
{
    AN_BODY1111;
}

int A11111::f6()
{
    AN_BODY1111;
}

int A11111::f7()
{
    AN_BODY1111;
}

int A11111::f8()
{
    AN_BODY1111;
}

int A11111::f9()
{
    AN_BODY1111;
}

int A11111::f10()
{
    AN_BODY1111;
}


int main1111(int argc, char* argv[])
{
    AN_BODY1111;
}


/////////////////////////////

class A111111
{
    int f1();
    int f2();
    int f3();
    int f4();
    int f5();
    int f6();
    int f7();
    int f8();
    int f9();
};

class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
class Nested11111
{
    A111111 m1;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};


class A2
{
    std::shared_ptr<A111111> a1ptr;
    A2() {A111111 a1; a1ptr = &a1;}
};

#define AN_BODY11111                                                    \
    A111111 x1;                                                         \
    A111111 x2;                                                         \
    std::string s1(x1);                                            \
    std::string s2(x2);                                            \
Nested11111 n1;                                                              \
const std::vector<std::string> v1(1, a1);                               \
const std::vector<std::string> v1(1, n1);                               \
std::vector<std::string> * v1_cptr(&v1);                                \
return(s1+s2);

int A111111::f1()
{
    AN_BODY11111;
}

int A111111::f2()
{
    AN_BODY11111;
}

int A111111::f3()
{
    AN_BODY11111;
}

int A111111::f4()
{
    AN_BODY11111;
}

int A111111::f5()
{
    AN_BODY11111;
}

int A111111::f6()
{
    AN_BODY11111;
}

int A111111::f7()
{
    AN_BODY11111;
}

int A111111::f8()
{
    AN_BODY11111;
}

int A111111::f9()
{
    AN_BODY11111;
}

int A111111::f10()
{
    AN_BODY11111;
}


int main11111(int argc, char* argv[])
{
    AN_BODY11111;
}


/////////////////////////////

class A1111111
{
    int f1();
    int f2();
    int f3();
    int f4();
    int f5();
    int f6();
    int f7();
    int f8();
    int f9();
};

class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
class Nested111111
{
    A1111111 m1;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};


class A2
{
    std::shared_ptr<A1111111> a1ptr;
    A2() {A1111111 a1; a1ptr = &a1;}
};

#define AN_BODY111111                                                    \
    A1111111 x1;                                                         \
    A1111111 x2;                                                         \
    std::string s1(x1);                                            \
    std::string s2(x2);                                            \
Nested111111 n1;                                                              \
const std::vector<std::string> v1(1, a1);                               \
const std::vector<std::string> v1(1, n1);                               \
std::vector<std::string> * v1_cptr(&v1);                                \
return(s1+s2);

int A1111111::f1()
{
    AN_BODY111111;
}

int A1111111::f2()
{
    AN_BODY111111;
}

int A1111111::f3()
{
    AN_BODY111111;
}

int A1111111::f4()
{
    AN_BODY111111;
}

int A1111111::f5()
{
    AN_BODY111111;
}

int A1111111::f6()
{
    AN_BODY111111;
}

int A1111111::f7()
{
    AN_BODY111111;
}

int A1111111::f8()
{
    AN_BODY111111;
}

int A1111111::f9()
{
    AN_BODY111111;
}

int A1111111::f10()
{
    AN_BODY111111;
}


int main111111(int argc, char* argv[])
{
    AN_BODY111111;
}


/////////////////////////////

class A11111111
{
    int f1();
    int f2();
    int f3();
    int f4();
    int f5();
    int f6();
    int f7();
    int f8();
    int f9();
};

class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
class Nested1111111
{
    A11111111 m1;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};


class A2
{
    std::shared_ptr<A11111111> a1ptr;
    A2() {A11111111 a1; a1ptr = &a1;}
};

#define AN_BODY1111111                                                    \
    A11111111 x1;                                                         \
    A11111111 x2;                                                         \
    std::string s1(x1);                                            \
    std::string s2(x2);                                            \
Nested1111111 n1;                                                              \
const std::vector<std::string> v1(1, a1);                               \
const std::vector<std::string> v1(1, n1);                               \
std::vector<std::string> * v1_cptr(&v1);                                \
return(s1+s2);

int A11111111::f1()
{
    AN_BODY1111111;
}

int A11111111::f2()
{
    AN_BODY1111111;
}

int A11111111::f3()
{
    AN_BODY1111111;
}

int A11111111::f4()
{
    AN_BODY1111111;
}

int A11111111::f5()
{
    AN_BODY1111111;
}

int A11111111::f6()
{
    AN_BODY1111111;
}

int A11111111::f7()
{
    AN_BODY1111111;
}

int A11111111::f8()
{
    AN_BODY1111111;
}

int A11111111::f9()
{
    AN_BODY1111111;
}

int A11111111::f10()
{
    AN_BODY1111111;
}


int main1111111(int argc, char* argv[])
{
    AN_BODY1111111;
}


/////////////////////////////

class A111111111
{
    int f1();
    int f2();
    int f3();
    int f4();
    int f5();
    int f6();
    int f7();
    int f8();
    int f9();
};

class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
class Nested11111111
{
    A111111111 m1;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};


class A2
{
    std::shared_ptr<A111111111> a1ptr;
    A2() {A111111111 a1; a1ptr = &a1;}
};

#define AN_BODY11111111                                                    \
    A111111111 x1;                                                         \
    A111111111 x2;                                                         \
    std::string s1(x1);                                            \
    std::string s2(x2);                                            \
Nested11111111 n1;                                                              \
const std::vector<std::string> v1(1, a1);                               \
const std::vector<std::string> v1(1, n1);                               \
std::vector<std::string> * v1_cptr(&v1);                                \
return(s1+s2);

int A111111111::f1()
{
    AN_BODY11111111;
}

int A111111111::f2()
{
    AN_BODY11111111;
}

int A111111111::f3()
{
    AN_BODY11111111;
}

int A111111111::f4()
{
    AN_BODY11111111;
}

int A111111111::f5()
{
    AN_BODY11111111;
}

int A111111111::f6()
{
    AN_BODY11111111;
}

int A111111111::f7()
{
    AN_BODY11111111;
}

int A111111111::f8()
{
    AN_BODY11111111;
}

int A111111111::f9()
{
    AN_BODY11111111;
}

int A111111111::f10()
{
    AN_BODY11111111;
}


int main11111111(int argc, char* argv[])
{
    AN_BODY11111111;
}


/////////////////////////////

class A1111111111
{
    int f1();
    int f2();
    int f3();
    int f4();
    int f5();
    int f6();
    int f7();
    int f8();
    int f9();
};

class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
class Nested111111111
{
    A1111111111 m1;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};


class A2
{
    std::shared_ptr<A1111111111> a1ptr;
    A2() {A1111111111 a1; a1ptr = &a1;}
};

#define AN_BODY111111111                                                    \
    A1111111111 x1;                                                         \
    A1111111111 x2;                                                         \
    std::string s1(x1);                                            \
    std::string s2(x2);                                            \
Nested111111111 n1;                                                              \
const std::vector<std::string> v1(1, a1);                               \
const std::vector<std::string> v1(1, n1);                               \
std::vector<std::string> * v1_cptr(&v1);                                \
return(s1+s2);

int A1111111111::f1()
{
    AN_BODY111111111;
}

int A1111111111::f2()
{
    AN_BODY111111111;
}

int A1111111111::f3()
{
    AN_BODY111111111;
}

int A1111111111::f4()
{
    AN_BODY111111111;
}

int A1111111111::f5()
{
    AN_BODY111111111;
}

int A1111111111::f6()
{
    AN_BODY111111111;
}

int A1111111111::f7()
{
    AN_BODY111111111;
}

int A1111111111::f8()
{
    AN_BODY111111111;
}

int A1111111111::f9()
{
    AN_BODY111111111;
}

int A1111111111::f10()
{
    AN_BODY111111111;
}


int main111111111(int argc, char* argv[])
{
    AN_BODY111111111;
}


/////////////////////////////

class A11111111111
{
    int f1();
    int f2();
    int f3();
    int f4();
    int f5();
    int f6();
    int f7();
    int f8();
    int f9();
};

class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
class Nested1111111111
{
    A11111111111 m1;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};


class A2
{
    std::shared_ptr<A11111111111> a1ptr;
    A2() {A11111111111 a1; a1ptr = &a1;}
};

#define AN_BODY1111111111                                                    \
    A11111111111 x1;                                                         \
    A11111111111 x2;                                                         \
    std::string s1(x1);                                            \
    std::string s2(x2);                                            \
Nested1111111111 n1;                                                              \
const std::vector<std::string> v1(1, a1);                               \
const std::vector<std::string> v1(1, n1);                               \
std::vector<std::string> * v1_cptr(&v1);                                \
return(s1+s2);

int A11111111111::f1()
{
    AN_BODY1111111111;
}

int A11111111111::f2()
{
    AN_BODY1111111111;
}

int A11111111111::f3()
{
    AN_BODY1111111111;
}

int A11111111111::f4()
{
    AN_BODY1111111111;
}

int A11111111111::f5()
{
    AN_BODY1111111111;
}

int A11111111111::f6()
{
    AN_BODY1111111111;
}

int A11111111111::f7()
{
    AN_BODY1111111111;
}

int A11111111111::f8()
{
    AN_BODY1111111111;
}

int A11111111111::f9()
{
    AN_BODY1111111111;
}

int A11111111111::f10()
{
    AN_BODY1111111111;
}


int main1111111111(int argc, char* argv[])
{
    AN_BODY1111111111;
}


/////////////////////////////

class A111111111111
{
    int f1();
    int f2();
    int f3();
    int f4();
    int f5();
    int f6();
    int f7();
    int f8();
    int f9();
};

class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
class Nested11111111111
{
    A111111111111 m1;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};


class A2
{
    std::shared_ptr<A111111111111> a1ptr;
    A2() {A111111111111 a1; a1ptr = &a1;}
};

#define AN_BODY11111111111                                                    \
    A111111111111 x1;                                                         \
    A111111111111 x2;                                                         \
    std::string s1(x1);                                            \
    std::string s2(x2);                                            \
Nested11111111111 n1;                                                              \
const std::vector<std::string> v1(1, a1);                               \
const std::vector<std::string> v1(1, n1);                               \
std::vector<std::string> * v1_cptr(&v1);                                \
return(s1+s2);

int A111111111111::f1()
{
    AN_BODY11111111111;
}

int A111111111111::f2()
{
    AN_BODY11111111111;
}

int A111111111111::f3()
{
    AN_BODY11111111111;
}

int A111111111111::f4()
{
    AN_BODY11111111111;
}

int A111111111111::f5()
{
    AN_BODY11111111111;
}

int A111111111111::f6()
{
    AN_BODY11111111111;
}

int A111111111111::f7()
{
    AN_BODY11111111111;
}

int A111111111111::f8()
{
    AN_BODY11111111111;
}

int A111111111111::f9()
{
    AN_BODY11111111111;
}

int A111111111111::f10()
{
    AN_BODY11111111111;
}


int main11111111111(int argc, char* argv[])
{
    AN_BODY11111111111;
}


/////////////////////////////

class A1111111111111
{
    int f1();
    int f2();
    int f3();
    int f4();
    int f5();
    int f6();
    int f7();
    int f8();
    int f9();
};

class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
class Nested111111111111
{
    A1111111111111 m1;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};


class A2
{
    std::shared_ptr<A1111111111111> a1ptr;
    A2() {A1111111111111 a1; a1ptr = &a1;}
};

#define AN_BODY111111111111                                                    \
    A1111111111111 x1;                                                         \
    A1111111111111 x2;                                                         \
    std::string s1(x1);                                            \
    std::string s2(x2);                                            \
Nested111111111111 n1;                                                              \
const std::vector<std::string> v1(1, a1);                               \
const std::vector<std::string> v1(1, n1);                               \
std::vector<std::string> * v1_cptr(&v1);                                \
return(s1+s2);

int A1111111111111::f1()
{
    AN_BODY111111111111;
}

int A1111111111111::f2()
{
    AN_BODY111111111111;
}

int A1111111111111::f3()
{
    AN_BODY111111111111;
}

int A1111111111111::f4()
{
    AN_BODY111111111111;
}

int A1111111111111::f5()
{
    AN_BODY111111111111;
}

int A1111111111111::f6()
{
    AN_BODY111111111111;
}

int A1111111111111::f7()
{
    AN_BODY111111111111;
}

int A1111111111111::f8()
{
    AN_BODY111111111111;
}

int A1111111111111::f9()
{
    AN_BODY111111111111;
}

int A1111111111111::f10()
{
    AN_BODY111111111111;
}


int main111111111111(int argc, char* argv[])
{
    AN_BODY111111111111;
}


/////////////////////////////

class A11111111111111
{
    int f1();
    int f2();
    int f3();
    int f4();
    int f5();
    int f6();
    int f7();
    int f8();
    int f9();
};

class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
class Nested1111111111111
{
    A11111111111111 m1;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};


class A2
{
    std::shared_ptr<A11111111111111> a1ptr;
    A2() {A11111111111111 a1; a1ptr = &a1;}
};

#define AN_BODY1111111111111                                                    \
    A11111111111111 x1;                                                         \
    A11111111111111 x2;                                                         \
    std::string s1(x1);                                            \
    std::string s2(x2);                                            \
Nested1111111111111 n1;                                                              \
const std::vector<std::string> v1(1, a1);                               \
const std::vector<std::string> v1(1, n1);                               \
std::vector<std::string> * v1_cptr(&v1);                                \
return(s1+s2);

int A11111111111111::f1()
{
    AN_BODY1111111111111;
}

int A11111111111111::f2()
{
    AN_BODY1111111111111;
}

int A11111111111111::f3()
{
    AN_BODY1111111111111;
}

int A11111111111111::f4()
{
    AN_BODY1111111111111;
}

int A11111111111111::f5()
{
    AN_BODY1111111111111;
}

int A11111111111111::f6()
{
    AN_BODY1111111111111;
}

int A11111111111111::f7()
{
    AN_BODY1111111111111;
}

int A11111111111111::f8()
{
    AN_BODY1111111111111;
}

int A11111111111111::f9()
{
    AN_BODY1111111111111;
}

int A11111111111111::f10()
{
    AN_BODY1111111111111;
}


int main1111111111111(int argc, char* argv[])
{
    AN_BODY1111111111111;
}


/////////////////////////////

class A111111111111111
{
    int f1();
    int f2();
    int f3();
    int f4();
    int f5();
    int f6();
    int f7();
    int f8();
    int f9();
};

class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
class Nested11111111111111
{
    A111111111111111 m1;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};


class A2
{
    std::shared_ptr<A111111111111111> a1ptr;
    A2() {A111111111111111 a1; a1ptr = &a1;}
};

#define AN_BODY11111111111111                                                    \
    A111111111111111 x1;                                                         \
    A111111111111111 x2;                                                         \
    std::string s1(x1);                                            \
    std::string s2(x2);                                            \
Nested11111111111111 n1;                                                              \
const std::vector<std::string> v1(1, a1);                               \
const std::vector<std::string> v1(1, n1);                               \
std::vector<std::string> * v1_cptr(&v1);                                \
return(s1+s2);

int A111111111111111::f1()
{
    AN_BODY11111111111111;
}

int A111111111111111::f2()
{
    AN_BODY11111111111111;
}

int A111111111111111::f3()
{
    AN_BODY11111111111111;
}

int A111111111111111::f4()
{
    AN_BODY11111111111111;
}

int A111111111111111::f5()
{
    AN_BODY11111111111111;
}

int A111111111111111::f6()
{
    AN_BODY11111111111111;
}

int A111111111111111::f7()
{
    AN_BODY11111111111111;
}

int A111111111111111::f8()
{
    AN_BODY11111111111111;
}

int A111111111111111::f9()
{
    AN_BODY11111111111111;
}

int A111111111111111::f10()
{
    AN_BODY11111111111111;
}


int main11111111111111(int argc, char* argv[])
{
    AN_BODY11111111111111;
}



  parent reply	other threads:[~2021-01-29  5:15 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-29  1:10 bug#45518: Ctrl-G Fails to Interrupt Hung Tramp Remote-Compile in Emacs 27.1 Duncan Greatwood
2020-12-30 10:36 ` Michael Albinus
2020-12-30 21:13 ` Duncan Greatwood
2020-12-31  8:42   ` Michael Albinus
2021-01-03 10:27     ` Michael Albinus
2021-01-03 19:27 ` Duncan Greatwood
2021-01-06 13:37   ` Michael Albinus
2021-01-06 22:54 ` Duncan Greatwood
2021-01-11 10:58   ` Michael Albinus
2021-01-11 16:52 ` Duncan Greatwood
2021-01-11 17:56   ` Michael Albinus
2021-01-12  4:34 ` Duncan Greatwood
2021-01-12  9:02   ` Michael Albinus
2021-01-12 15:02   ` Michael Albinus
2021-01-29  5:15 ` Duncan Greatwood [this message]
2021-01-29  8:53   ` Michael Albinus
2021-02-10 15:40   ` Michael Albinus
2021-02-11 15:22     ` Michael Albinus
2021-02-14  1:38 ` Duncan Greatwood
2021-02-14 14:15   ` Michael Albinus
2021-02-15 20:21 ` Duncan Greatwood
2021-02-16 20:09   ` Michael Albinus
2021-02-17  5:41 ` Duncan Greatwood
2021-02-17 15:39   ` Michael Albinus
2021-03-16  1:36 ` Duncan Greatwood
2021-03-16 18:30   ` Michael Albinus
     [not found] <CAN_Aq+rYcM7wHHWXKBqyY4P0Ew04RfkqnQUioqtUk0AOUeaRMA@mail.gmail.com>
2021-02-25 18:33 ` Michael Albinus
2021-03-15 20:49   ` Michael Albinus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAN_Aq+pFgJkc7+GAR3YFTUdU=LQ8iSnqkD+gK9o4po8ALN1N+Q@mail.gmail.com' \
    --to=dgbulk@gmail.com \
    --cc=45518@debbugs.gnu.org \
    --cc=michael.albinus@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).