Mit unbenutzter Variable knallt es

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Mathias
Beiträge: 7208
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Mit unbenutzter Variable knallt es

Beitrag von Mathias »

Warum knallt es hier ?
Was aber interessant ist, sobald ich die Zeile mit "mat_ID: integer;" ausklammere funktioniert es, obwohl dies Variable nirgends verwendet wird.
Das ganze kann ich bei der Trunk und Stable von fpc beobachten.

Einer eine Idee was da faul ist ?

Code: Alles auswählen

program project1;

const
  libcglm = 'cglm';

type
  Tvec4 = array[0..3] of single;
  Tmat4 = array[0..3] of Tvec4;
  Pmat4=^Tmat4;

// procedure glmc_mat4_identity(mat: Tmat4); cdecl; external libcglm;
  procedure glmc_mat4_identity(mat: Pmat4); cdecl; external libcglm;


  procedure main;
  var
    mat_ID: integer;  // ohne dies gehts
    mat2: Tmat4;

  begin
    WriteLn(111111);
    glmc_mat4_identity(@mat2);  // bum !
    WriteLn(111111);
  end;

begin
  main;
end.              
Probiert mit Linux Mint
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2878
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Mit unbenutzter Variable knallt es

Beitrag von m.fuchs »

Spannend. Kann man auch durch beliebige andere Variablen erzeugen.

Liegt aber nicht an mat_ID sondern an mat2 - setzt du die an die erste Stelle der Variablendeklaration, dann geht es.

Da würde ich doch mal auf wildes Pointer-Verschieben in der Lib tippen.
0118999881999119725-3

Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Antworten