Forum: Compiler & IDEs Warning: expression dangerous with linker stubs


von Markus C. (ljmarkus)


Angehängte Dateien:

Lesenswert?

Hallo..

ich bekomme folgende Warnung angezeigt kann damit aber nicht wirklich 
was anfangen.

Compiling C: lib_rdm_in.c
avr-gcc -c -mmcu=atmega8515 -I. -gdwarf-2 -DF_CPU=16000000UL -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=./lib_rdm_in.lst  -std=gnu99 -Wundef 
-MMD -MP -MF .dep/lib_rdm_in.o.d lib_rdm_in.c -o lib_rdm_in.o
C:\DOKUME~1\markus\LOKALE~1\Temp/cc45Ep3L.s: Assembler messages:
C:\DOKUME~1\markus\LOKALE~1\Temp/cc45Ep3L.s:552: Warning: expression 
dangerous with linker stubs
C:\DOKUME~1\markus\LOKALE~1\Temp/cc45Ep3L.s:553: Warning: expression 
dangerous with linker stubs

im Anhang die lib_rdm_in.c


Danke, Markus

von Stefan B. (stefan) Benutzerseite


Lesenswert?

> C:\DOKUME~1\markus\LOKALE~1\Temp/cc45Ep3L.s: Assembler messages:

Das ist eine vom GCC generierte Datei.

Um den Fehler darin nachzuvollziehen, müsste man am besten die Datei 
haben oder sie sich notfalls erzeugen.

Für ersteres ist der Anhang falsch und für zweiteres fehlen Dateien 
(lib_rdm_in.h) und Angaben zur Version der Toolchain.

von Markus C. (ljmarkus)


Angehängte Dateien:

Lesenswert?

hier noch die .h
avr-gcc (GCC) 4.2.2 (WinAVR 20071221)


Danke, Markus

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Es handelt sich wohl um diese Stelle, wo bei POS1/POS2 eine der acht 
Spungadressen (L73-L80) ab Label L81 indirekt (ijmp) angesprungen werden 
soll:
1
.LVL29:
2
.L70:
3
.LM84:
4
  lds r24,RxState
5
.LVL30:
6
  ldi r25,lo8(0)
7
  movw r30,r24
8
  sbiw r30,1
9
  cpi r30,8
10
  cpc r31,__zero_reg__
11
  brlo .+2
12
  rjmp .L98
13
  subi r30,lo8(-(gs(.L81))) ; ### POS1 ###
14
  sbci r31,hi8(-(gs(.L81))) ; ### POS2 ###
15
  ijmp
16
  .data
17
  .section .progmem.gcc_sw_table, "ax", @progbits
18
  .p2align 1
19
.L81:
20
  .data
21
  .section .progmem.gcc_sw_table, "ax", @progbits
22
  .p2align 1
23
  rjmp .L73
24
  rjmp .L74
25
  rjmp .L75
26
  rjmp .L76
27
  rjmp .L77
28
  rjmp .L78
29
  rjmp .L79
30
  rjmp .L80

Das Problem ist bekannt
http://osdir.com/ml/hardware.avr.libc.devel/2006-11/msg00005.html

Und sollte in neueren Toolchains weg sein
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=420928

Bei dem Atmega8515 sollte man die Warnung auch sicher ignorieren können.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Stefan B. wrote:

> Bei dem Atmega8515 sollte man die Warnung auch sicher ignorieren können.

Du kannst die Warnung praktisch immer ignorieren.  Bei neueren
Toolchains wird sie auch einfach nur gar nicht mehr generiert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.