> Revised patch is ok.
Thanks! Committed at r190190.
-cary
On 08/06/2012 02:45 PM, Cary Coutant wrote:
> Do you still have concerns about the patch?
Nope. I'd mis-remembered from whence things get finalized.
Revised patch is ok.
r~
Here's a revised patch, with testcase added, and with Steven's
suggested change...
-cary
2012-08-06 Cary Coutant
gcc/
* cgraphunit.c (assemble_thunk): Add source line info.
* final.c (final): Check for non-null cfg pointer.
* testsuite/g++.dg/debug/dwarf2/non-virtual-
Richard,
>> Try a target like arm-linux (which doesn't use final_end_function), and hack
>> the generated auto-host.h so that HAVE_AS_DWARF2_DEBUG_LINE is undefined.
>
> Trying arm-unknown-linux-gnueabi now...
I just built an ARM compiler and tried it out on my testcase. It
generated this code f
> I'm uncomfortable with just the one call into the debug generator, outside of
> the other debug_hooks begin/end calls.
>
> It'll obviously work for stabs, and probably work for sdb, due to how the
> debug info is represented.
>
> But for dwarf2 it probably only works for selected targets.
>
> F
On 08/03/2012 04:38 PM, Cary Coutant wrote:
> 2012-08-03 Cary Coutant
>
> * gcc/cgraphunit.c (assemble_thunk): Add source line info.
> * gcc/final.c (final): Check for non-null cfg pointer.
I'm uncomfortable with just the one call into the debug generator, outside of
the other deb
On Sat, Aug 4, 2012 at 1:38 AM, Cary Coutant wrote:
> diff --git a/gcc/final.c b/gcc/final.c
> index 095d608..d22130f 100644
> --- a/gcc/final.c
> +++ b/gcc/final.c
> @@ -1863,11 +1863,12 @@ final (rtx first, FILE *file, int optimize_p)
>start_to_bb = XCNEWVEC (basic_block, bb_map_size);
>
Following up with a simple test case. If the patch looks OK, I'll work
this into a dejagnu test and add it to the patch.
class A
{
public:
A();
virtual ~A();
private:
int i;
};
class B
{
public:
B();
virtual ~B();
private:
int i;
};
class C : public A, public B
{
public:
C();
GCC generates non-virtual thunks directly to assembly code, which
causes a couple of problems. First, it doesn't add source location
information to the thunk, so the thunk simply inherits the random
location from the end of the function in front of it (the function
it's a thunk for). In two differe