[Bug target/96233] New: XGCC-10.1.0 for Target RX: internal compiler error: in dwarf2out_frame_debug_adjust_cfa, at dwarf2cfi.c:1189

2020-07-17 Thread hdu...@tangerine-soft.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96233

Bug ID: 96233
   Summary: XGCC-10.1.0 for Target RX: internal compiler error: in
dwarf2out_frame_debug_adjust_cfa, at dwarf2cfi.c:1189
   Product: gcc
   Version: 10.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: hdu...@tangerine-soft.de
  Target Milestone: ---

Created attachment 4
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=4=edit
Code snippet that causes the error

ICE happened in a trivial c-source code with main() entry (see attachment)

I got following errors.
$ gcc-10.1.0-rx-none-elf/bin/rx-none-elf-gcc -g -o main.o -c ./main.c 
during RTL pass: dwarf2
./main.c: In function 'int main(int, char**)':
./main.c:6:1: internal compiler error: in dwarf2out_frame_debug_adjust_cfa, at
dwarf2cfi.c:1189
6 | }
  | ^
libbacktrace could not find executable to open
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.

However either one of the followings works fine:

$ gcc-10.1.0-rx-none-elf/bin/rx-none-elf-gcc -g0 -o main.o -c ./main.c 
$ gcc-10.1.0-rx-none-elf/bin/rx-none-elf-gcc -g -O1 -o main.o -c ./main.c 
$ gcc-10.1.0-rx-none-elf/bin/rx-none-elf-gcc -g -O2 -o main.o -c ./main.c 
$ gcc-10.1.0-rx-none-elf/bin/rx-none-elf-gcc -g -O3 -o main.o -c ./main.c 


--
I have learned that this error even happens with the rx cross compiler for GCC
9.2.0:
--

$ gcc-9.2.0-rx-none-elf/bin/rx-none-elf-gcc -g -o main.o -c ./main.c 
during RTL pass: dwarf2
./main.c: In function 'int main(int, char**)':
./main.c:6:1: internal compiler error: in dwarf2out_frame_debug_adjust_cfa, at
dwarf2cfi.c:1183
6 | }
  | ^
libbacktrace could not find executable to open
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.

--
...and for an GCC rx cross compiler for GCC 8.2.0 as well:
--
$ gcc-8.2.0-rx-none-elf/bin/rx-none-elf-gcc -g -o main.o -c ./main.c 
during RTL pass: dwarf2
./main.c: In function 'int main(int, char**)':
./main.c:6:1: internal compiler error: in dwarf2out_frame_debug_adjust_cfa, at
dwarf2cfi.c:1171
 }
 ^
libbacktrace could not find executable to open
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.

If I hand over -g0 instead of -g or if I use an Optimization flag with an level
of greater than 0 than the ICE does not happen any longer (verfied for
rx-none-elf-gcc-10.1, rx-none-elf-gcc-9.2 and rx-none-elf-gcc-8.2.

[Bug c/89515] New: m32c ICE error: in leaf_function_p, at final.c:4492 when compiling newlib 3.1.0 with XGCC 8.3.0

2019-02-26 Thread hdu...@tangerine-soft.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89515

Bug ID: 89515
   Summary: m32c ICE error: in leaf_function_p, at final.c:4492
when compiling newlib 3.1.0 with XGCC 8.3.0
   Product: gcc
   Version: 8.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: hdu...@tangerine-soft.de
  Target Milestone: ---

m32c-none-elf-gcc
-B/tmp/build_cross_gcc/newlib-3.1.0_build_m32c-none-elf/m32c-none-elf/m32cm/newlib/
-isystem
/tmp/build_cross_gcc/newlib-3.1.0_build_m32c-none-elf/m32c-none-elf/m32cm/newlib/targ-include
-isystem
/tmp/build_cross_gcc/newlib-3.1.0_arch/newlib-3.1.0/newlib/libc/include
-B/tmp/build_cross_gcc/newlib-3.1.0_build_m32c-none-elf/m32c-none-elf/m32cm/libgloss/m32c
-L/tmp/build_cross_gcc/newlib-3.1.0_build_m32c-none-elf/m32c-none-elf/m32cm/libgloss/libnosys
-L/tmp/build_cross_gcc/newlib-3.1.0_arch/newlib-3.1.0/libgloss/m32c 
-mcpu=m32cm -DPACKAGE_NAME=\"newlib\" -DPACKAGE_TARNAME=\"newlib\"
-DPACKAGE_VERSION=\"3.1.0\" -DPACKAGE_STRING=\"newlib\ 3.1.0\"
-DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I.
-I/tmp/build_cross_gcc/newlib-3.1.0_arch/newlib-3.1.0/newlib/libc/argz -Os
-fno-builtin -DPREFER_SIZE_OVER_SPEED -DSMALL_MEMORY -D__NO_SYSCALLS__
-DMISSING_SYSCALL_NAMES -DABORT_PROVIDED -DHAVE_INIT_FINI  -g -O2 
-mcpu=m32cm -c -o lib_a-argz_create_sep.o `test -f 'argz_create_sep.c' || echo
'/tmp/build_cross_gcc/newlib-3.1.0_arch/newlib-3.1.0/newlib/libc/argz/'`argz_create_sep.c
m32c-none-elf-gcc
-B/tmp/build_cross_gcc/newlib-3.1.0_build_m32c-none-elf/m32c-none-elf/m32cm/newlib/
-isystem
/tmp/build_cross_gcc/newlib-3.1.0_build_m32c-none-elf/m32c-none-elf/m32cm/newlib/targ-include
-isystem
/tmp/build_cross_gcc/newlib-3.1.0_arch/newlib-3.1.0/newlib/libc/include
-B/tmp/build_cross_gcc/newlib-3.1.0_build_m32c-none-elf/m32c-none-elf/m32cm/libgloss/m32c
-L/tmp/build_cross_gcc/newlib-3.1.0_build_m32c-none-elf/m32c-none-elf/m32cm/libgloss/libnosys
-L/tmp/build_cross_gcc/newlib-3.1.0_arch/newlib-3.1.0/libgloss/m32c 
-mcpu=m32cm -DPACKAGE_NAME=\"newlib\" -DPACKAGE_TARNAME=\"newlib\"
-DPACKAGE_VERSION=\"3.1.0\" -DPACKAGE_STRING=\"newlib\ 3.1.0\"
-DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I.
-I/tmp/build_cross_gcc/newlib-3.1.0_arch/newlib-3.1.0/newlib/libc/argz -Os
-fno-builtin -DPREFER_SIZE_OVER_SPEED -DSMALL_MEMORY -D__NO_SYSCALLS__
-DMISSING_SYSCALL_NAMES -DABORT_PROVIDED -DHAVE_INIT_FINI  -g -O2 
-mcpu=m32cm -c -o lib_a-argz_delete.o `test -f 'argz_delete.c' || echo
'/tmp/build_cross_gcc/newlib-3.1.0_arch/newlib-3.1.0/newlib/libc/argz/'`argz_delete.c
m32c-none-elf-gcc
-B/tmp/build_cross_gcc/newlib-3.1.0_build_m32c-none-elf/m32c-none-elf/m32cm/newlib/
-isystem
/tmp/build_cross_gcc/newlib-3.1.0_build_m32c-none-elf/m32c-none-elf/m32cm/newlib/targ-include
-isystem
/tmp/build_cross_gcc/newlib-3.1.0_arch/newlib-3.1.0/newlib/libc/include
-B/tmp/build_cross_gcc/newlib-3.1.0_build_m32c-none-elf/m32c-none-elf/m32cm/libgloss/m32c
-L/tmp/build_cross_gcc/newlib-3.1.0_build_m32c-none-elf/m32c-none-elf/m32cm/libgloss/libnosys
-L/tmp/build_cross_gcc/newlib-3.1.0_arch/newlib-3.1.0/libgloss/m32c 
-mcpu=m32cm -DPACKAGE_NAME=\"newlib\" -DPACKAGE_TARNAME=\"newlib\"
-DPACKAGE_VERSION=\"3.1.0\" -DPACKAGE_STRING=\"newlib\ 3.1.0\"
-DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I.
-I/tmp/build_cross_gcc/newlib-3.1.0_arch/newlib-3.1.0/newlib/libc/argz -Os
-fno-builtin -DPREFER_SIZE_OVER_SPEED -DSMALL_MEMORY -D__NO_SYSCALLS__
-DMISSING_SYSCALL_NAMES -DABORT_PROVIDED -DHAVE_INIT_FINI  -g -O2 
-mcpu=m32cm -c -o lib_a-argz_extract.o `test -f 'argz_extract.c' || echo
'/tmp/build_cross_gcc/newlib-3.1.0_arch/newlib-3.1.0/newlib/libc/argz/'`argz_extract.c
during RTL pass: pro_and_epilogue
/tmp/build_cross_gcc/newlib-3.1.0_arch/newlib-3.1.0/newlib/libc/argz/argz_count.c:
In function 'argz_count':
/tmp/build_cross_gcc/newlib-3.1.0_arch/newlib-3.1.0/newlib/libc/argz/argz_count.c:25:1:
internal compiler error: in leaf_function_p, at final.c:4492
 }
 ^
libbacktrace could not find executable to open
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.
make[8]: *** [lib_a-argz_count.o] Error 1
make[8]: *** Waiting for unfinished jobs
during RTL pass: pro_and_epilogue
/tmp/build_cross_gcc/newlib-3.1.0_arch/newlib-3.1.0/newlib/libc/argz/argz_append.c:
In function 'argz_append':
/tmp/build_cross_gcc/newlib-3.1.0_arch/newlib-3.1.0/newlib/libc/argz/argz_append.c:31:1:
internal compiler error: in leaf_function_p, at final.c:4492
 }
 ^
libbacktrace could not find executable to open
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions

[Bug target/89484] ICE in dwarf2out_frame_debug_adjust_cfa, at dwarf2cfi.c:1171 when using __attribute__((interrupt)) w. Debug Info

2019-02-25 Thread hdu...@tangerine-soft.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89484

--- Comment #4 from Hans-Peter Dusel  ---
The Release 8.2.0 of GCC is also affected by this issue.

Here is a snapshot (same test program as mentioned above)

- begin --
alvis:tmp hdusel$ /opt/gcc-8.2.0-rx-none-elf/bin/rx-none-elf-gcc ./test.cpp -c
-g
during RTL pass: dwarf2
./test.cpp: In function 'void ISR_handleUartReceiveData()':
./test.cpp:2:2: internal compiler error: in dwarf2out_frame_debug_adjust_cfa,
at dwarf2cfi.c:1171
 {}
  ^
libbacktrace could not find executable to open
Please submit a full bug report,
with preprocessed source if appropriate.
See  for instructions.
- end ---

Here are the specs:

- begin --
alvis:tmp hdusel$ /opt/gcc-8.2.0-rx-none-elf/bin/rx-none-elf-gcc -v
Using built-in specs.
COLLECT_GCC=/opt/gcc-8.2.0-rx-none-elf/bin/rx-none-elf-gcc
COLLECT_LTO_WRAPPER=/opt/gcc-8.2.0-rx-none-elf/libexec/gcc/rx-none-elf/8.2.0/lto-wrapper
Target: rx-none-elf
Configured with: /tmp/build_cross_gcc/gcc-8.2.0_arch/gcc-8.2.0/configure
--target=rx-none-elf --prefix=/opt/gcc-8.2.0-rx-none-elf --disable-nls
--disable-shared --disable-threads --disable-libssp -v --without-headers
--with-newlib --with-gnu-as --with-gnu-ld --with-gcc --enable-languages=c,c++
Thread model: single
gcc version 8.2.0 (GCC) 
- end ---

[Bug target/89484] ICE in dwarf2out_frame_debug_adjust_cfa, at dwarf2cfi.c:1171 when using __attribute__((interrupt)) w. Debug Info

2019-02-25 Thread hdu...@tangerine-soft.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89484

--- Comment #3 from Hans-Peter Dusel  ---
This issue is not related to the c++ compiler g++. It happens also if one uses
gcc.

[Bug c++/89484] Compiler ICE: internal compiler error: in dwarf2out_frame_debug_adjust_cfa, at dwarf2cfi.c:1171 when using __attribute__((interrupt))

2019-02-24 Thread hdu...@tangerine-soft.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89484

--- Comment #2 from Hans-Peter Dusel  ---
thor:build hdusel$ /opt/gcc-8.3.0-rx-none-elf/bin/rx-none-elf-g++ -v
Using built-in specs.
COLLECT_GCC=/opt/gcc-8.3.0-rx-none-elf/bin/rx-none-elf-g++
COLLECT_LTO_WRAPPER=/opt/gcc-8.3.0-rx-none-elf/libexec/gcc/rx-none-elf/8.3.0/lto-wrapper
Target: rx-none-elf
Configured with: /tmp/build_cross_gcc/gcc-8.3.0_arch/gcc-8.3.0/configure
--target=rx-none-elf --prefix=/opt/gcc-8.3.0-rx-none-elf --disable-nls
--disable-shared --disable-threads --disable-libssp --enable-multilib
--enable-lto --without-headers --with-newlib --with-gnu-as --with-gnu-ld
--with-gcc --enable-languages=c,c++ --disable-werror
Thread model: single
gcc version 8.3.0 (GCC)

[Bug c++/89484] Compiler ICE: internal compiler error: in dwarf2out_frame_debug_adjust_cfa, at dwarf2cfi.c:1171 when using __attribute__((interrupt))

2019-02-24 Thread hdu...@tangerine-soft.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89484

--- Comment #1 from Hans-Peter Dusel  ---
Tried to verify this with a GCC 8.3 Crosscompiler (same environment as
described) but now for Target ARM. 

This Crosscompiler together with the mentioned Code-snippet and command line
__does not__ cause an ICE.

[Bug c++/89484] New: Compiler ICE: internal compiler error: in dwarf2out_frame_debug_adjust_cfa, at dwarf2cfi.c:1171 when using __attribute__((interrupt))

2019-02-24 Thread hdu...@tangerine-soft.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89484

Bug ID: 89484
   Summary: Compiler ICE: internal compiler error: in
dwarf2out_frame_debug_adjust_cfa, at dwarf2cfi.c:1171
when using __attribute__((interrupt))
   Product: gcc
   Version: 8.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: hdu...@tangerine-soft.de
  Target Milestone: ---

Environmant
===

Given is a Crosscompiler GCC 8.3 (official Release)

This Crosscompiler hass been build with Xcode Clang
(Apple LLVM version 10.0.0 (clang-1000.11.45.5) Target:
x86_64-apple-darwin17.7.0)

xGCC Target architecture is "RX" (Renesas RX)

Running Host is: Mac OS X 10.11.6

Problem:
===

If one tries to compile the code as follows:

 code start -
static void __attribute__((interrupt)) ISR_handleUartReceiveData(void)
{}
- code end --

...by using the commend line...

$> rx-none-elf-c++ ../Test.cpp -c -g

...The following ICE will happen:

during RTL pass: dwarf2
../Test.cpp: In function 'void ISR_handleUartReceiveData()':
../Test.cpp:6:1: internal compiler error: in dwarf2out_frame_debug_adjust_cfa,
at dwarf2cfi.c:1171
 }
 ^
libbacktrace could not find executable to open
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.


Side note:
=
I Discovered that the command line option '-g' __as_well__ the occurence of
'__attribute__((interrupt))' in the program code is vital to trigger this ICE!

[Bug c++/71372] [6/7 Regression] C++ FE drops TREE_THIS_VOLATILE in cp_fold on all tcc_reference trees

2016-06-03 Thread hdu...@tangerine-soft.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71372

--- Comment #16 from Hans-Peter Dusel <hdu...@tangerine-soft.de> ---
Created attachment 38634
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38634=edit
Patch for GCC 6.1.0

Patch that applies the changes for official Release of GCC 6.1.0

[Bug c++/71372] [6/7 Regression] C++ FE drops TREE_THIS_VOLATILE in cp_fold on all tcc_reference trees

2016-06-03 Thread hdu...@tangerine-soft.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71372

--- Comment #15 from Hans-Peter Dusel <hdu...@tangerine-soft.de> ---
(In reply to Jakub Jelinek from comment #12)
> Created attachment 38623 [details]
> gcc7-pr71372.patch
> 
> Patch I'm going to bootstrap/regtest.

Thanks guys!

I have applied this patch to official Release 6.1.0 too and want to confirm
that it will work for this too!

Now, the my example code will be compiled to correct code:

Thanks a lot! :-)

P.S: I'll attach the patch for gcc 6.1.0

+++

// testmodule.cpp

void fpoke ()
{
  volatile unsigned short* FLASH = (volatile unsigned short*)0x2000;

  *(FLASH + 0) = 0xAA;
  *(FLASH + 1) = 0x55;
  *(FLASH + 0) = 0xA0;
}


hdusel@Merlin /cygdrive/w/tmp
$ /opt/gcc-6.1.0-myos/bin/m68k-elf-g++ -O3 testmodule.cpp -c

hdusel@Merlin /cygdrive/w/tmp
$ /opt/gcc-6.1.0-myos/m68k-elf/bin/objdump.exe -d ./testmodule.o

./testmodule.o: file format elf32-m68k


Disassembly of section .text:

 <_Z5fpokePvsii>:
   0:   4e56    linkw %fp,#0
   4:   207c 8000   moveal #-2147483648,%a0
   a:   4e5eunlk %fp
   c:   7055moveq #85,%d0
   e:   30bc 00aa   movew #170,%a0@
  12:   33c0 8000 0002  movew %d0,8002 <_Z5fpokePvsii+0x8002>
  18:   30bc 00a0   movew #160,%a0@
  1c:   4e75rts

[Bug c++/71372] New: GCC Optimization "tree-dse" does not respect access to volatile* upon explicit cast.

2016-06-01 Thread hdu...@tangerine-soft.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71372

Bug ID: 71372
   Summary: GCC Optimization "tree-dse" does not respect access to
volatile* upon explicit cast.
   Product: gcc
   Version: 6.1.0
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: hdu...@tangerine-soft.de
  Target Milestone: ---

GCC 6.1. seems to have an issue by using access to storage which __exlicitly__
is casted to an "volatile*" in conjunction with optimization flag –ftree-dse

This issue has been observed with a crosscompiler which is based on the GCC
6.1.0, host: cygwin (32 bit), 
for target architecture m68k.


In order to illustrate the issue see 3 Cases (see details below):

1) Code snippet __without__ any explicit type cast to (volatile*). 
   GCC 6.1.0 with this code produces correct code.

2) Code Snippet __with__ explicit typecast to “volatile short*”. 
   In conjunction with optimization level -O1/2/3/s this creates wrong code.

   The code is wrong that despite the memory location is marked to be volatile*
the 
   very first access does not happen and seems to be optimized away!

3) Code Snippet __with__ explicit typecast to “volatile short*”.

   In conjunction with optimization level -O1/2/3/s but __excluding__
optimization “tree-dse”. 
   Now GCC 6.1.0 generates right code. 

+++
+ Example 1) ) Code snippet __without__ any explicit type cast. 
+ GCC 6.1.0 with this code produces correct code.
+++
// testmodule.cpp

void fpoke (void *addr, short val, int times, int wait)
{
  volatile unsigned short* FLASH = (volatile unsigned short*)0x2000;

  *(FLASH + 0) = 0xAA;
  *(FLASH + 1) = 0x55;
  *(FLASH + 0) = 0xA0;
}


hdusel@Merlin /cygdrive/w/tmp
$ /opt/gcc-6.1.0-myos/bin/m68k-elf-g++ -O3 testmodule.cpp -c

hdusel@Merlin /cygdrive/w/tmp
$ /opt/gcc-6.1.0-myos/m68k-elf/bin/objdump.exe -d ./testmodule.o

./testmodule.o: file format elf32-m68k

Disassembly of section .text:

 <_Z5fpokePvsii>:
   0:   4e56    linkw %fp,#0
   4:   207c 2000   moveal #536870912,%a0
   a:   4e5eunlk %fp
   c:   7055moveq #85,%d0
   e:   30bc 00aa   movew #170,%a0@
  12:   33c0 2000 0002  movew %d0,2002 <_Z5fpokePvsii+0x2002>
  18:   30bc 00a0   movew #160,%a0@
  1c:   4e75rts

+++
+ Example 2) Code Snippet __with__ explicit typecast to “volatile short*”. 
+ In conjunction with optimization level -O1/2/3/s this creates __wrong code__.
+
+ The __very first__ access to the storage address $2000 is missing!
+ (see remarks in the code snippet, below)
+++
// testmodule.cpp

void fpoke (void *addr, short val, int times, int wait)
{
  volatile unsigned short* FLASH = (volatile unsigned short*)0x2000;

  *(volatile unsigned short*)(FLASH + 0) = 0xAA; // this line will be optimized
away! Why?
  *(volatile unsigned short*)(FLASH + 1) = 0x55;
  *(volatile unsigned short*)(FLASH + 0) = 0xA0;
}

hdusel@Merlin /cygdrive/w/tmp
$ /opt/gcc-6.1.0-myos/bin/m68k-elf-g++ -O3 testmodule.cpp -c

hdusel@Merlin /cygdrive/w/tmp
$ /opt/gcc-6.1.0-myos/m68k-elf/bin/objdump.exe -d ./testmodule.o

./testmodule.o: file format elf32-m68k

Disassembly of section .text:

 <_Z5fpokePvsii>:
   0:   4e56    linkw %fp,#0
   4:   7055moveq #85,%d0
   6:   4e5eunlk %fp
   8:   33c0 2000 0002  movew %d0,2002 <_Z5fpokePvsii+0x2002>
   e:   303c 00a0   movew #160,%d0
  12:   33c0 2000   movew %d0,2000 <_Z5fpokePvsii+0x2000>
  18:   4e75rts

+++
+ Example 3) Code Snippet __with__ explicit typecast to “volatile short*”. 
+ In conjunction with optimization level -O1/2/3/s but __excluding__
optimization “tree-dse”. 
+ Now GCC 6.1.0 creates right code. 
+++
// testmodule.cpp (The same as on Issue 2)

void fpoke (void *addr, short val, int times, int wait)
{
  volatile unsigned short* FLASH = (volatile unsigned short*)0x2000;

  *(volatile unsigned short*)(FLASH + 0) = 0xAA;
  *(volatile unsigned short*)(FLASH + 1) = 0x55;
  *(volatile unsigned short*)(FLASH + 0) = 0xA0;
}

hdusel@Merlin /cygdrive/w/tmp
$ /opt/gcc-6.1.0-myos/bin/m68k-elf-g++ -O3 -fno-tree-dse testmodule.cpp -c

hdusel@Merlin /cygdrive/w/tmp
$ /opt/gcc-6.1.0-myos/m68k-elf/bin/objdump.exe -d ./testmodule.o

./testmodule.o: file format elf32-m68k


Disassembly of section .text: