Skip to content

Commit 6f39ae8

Browse files
committed
fixed name shadowing
1 parent 87725aa commit 6f39ae8

File tree

6 files changed

+25
-5
lines changed

6 files changed

+25
-5
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Der Changelog von DDP. Sortiert nach Release.
1111

1212
## In Entwicklung
1313

14+
- [Fix] Man kann eine Variable, die eine andere überschreibt jetzt mit dieser initialisieren
1415
- [Added] Man kann jetzt (auch rekursiv) alle Module aus einem Ordner einbinden
1516
- [Fix] Vorwärts Deklarationen geben nun keinen "undefined reference" Fehler mehr, wenn man sie einbindet
1617

lib/runtime/source/DDP/runtime.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
// mainly for debugging
1717
void SignalHandler(int signal) {
1818
if (signal == SIGSEGV) {
19+
DDP_DBGLOG("caught SIGSEGV");
1920
ddp_end_runtime();
2021
ddp_runtime_error(1, "Segmentation fault\n");
2122
}
@@ -35,6 +36,10 @@ static void handle_args(int argc, char **argv) {
3536

3637
// initialize runtime stuff
3738
void ddp_init_runtime(int argc, char **argv) {
39+
#ifdef DDP_DEBUG
40+
setvbuf(stdout, NULL, _IONBF, 0); // disable buffering for stdout
41+
#endif // DDP_DEBUG
42+
3843
DDP_DBGLOG("init_runtime");
3944
#ifdef DDPOS_WINDOWS
4045
// the locales behaviour seems to change from time to time on windows

lib/stdlib/Duden/Fehlerbehandlung.ddp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ Die öffentliche Funktion Loesche_Fehler gibt nichts zurück, ist extern sichtba
4545
Speichere falsch in Fehlermeldung_Valide.
4646
Und kann so benutzt werden:
4747
"Lösche den letzten Fehler" oder
48-
"lösche den letzten Fehler"
48+
"lösche den letzten Fehler" oder
49+
"Diese Funktion könnte einen Fehler melden"
4950

5051
[
5152
Wenn es einen Fehler gab, wird dieser zurückgegeben und gelöscht

src/compiler/compiler.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -480,8 +480,6 @@ func (c *compiler) VisitVarDecl(d *ast.VarDecl) ast.VisitResult {
480480
varLocation = c.NewAlloca(Typ.IrType())
481481
}
482482

483-
Var := c.scp.addVar(d.Name(), varLocation, Typ, false)
484-
485483
// adds the variable initializer to the function fun
486484
addInitializer := func() {
487485
initVal, initTyp, isTemp := c.evaluate(d.InitVal) // evaluate the initial value
@@ -496,7 +494,7 @@ func (c *compiler) VisitVarDecl(d *ast.VarDecl) ast.VisitResult {
496494
initVal, initTyp, isTemp = c.castNonAnyToAny(initVal, initTyp, isTemp, vtable)
497495
}
498496

499-
c.claimOrCopy(Var, initVal, Typ, isTemp)
497+
c.claimOrCopy(varLocation, initVal, Typ, isTemp)
500498
}
501499

502500
if c.scp.enclosing == nil { // module_init
@@ -512,7 +510,7 @@ func (c *compiler) VisitVarDecl(d *ast.VarDecl) ast.VisitResult {
512510
c.moduleInitFunc, c.moduleInitCbb = c.cf, c.cbb
513511

514512
c.cf, c.cbb = c.moduleDisposeFunc, c.moduleDisposeFunc.Blocks[0]
515-
c.freeNonPrimitive(Var, Typ) // free the variable in module_dispose
513+
c.freeNonPrimitive(varLocation, Typ) // free the variable in module_dispose
516514

517515
c.cf, c.cbb = cf, cbb
518516
}
@@ -522,6 +520,8 @@ func (c *compiler) VisitVarDecl(d *ast.VarDecl) ast.VisitResult {
522520
if c.cf != nil && c.cbb != nil { // ddp_main
523521
addInitializer()
524522
}
523+
524+
c.scp.addVar(d.Name(), varLocation, Typ, false)
525525
return ast.VisitRecurse
526526
}
527527

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
hallo
2+
hi
3+
hallo
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Binde "Duden/Ausgabe" ein.
2+
3+
Der Text t ist "hallo".
4+
:
5+
Der Text t ist t.
6+
Schreibe t auf eine Zeile.
7+
Speichere "hi" in t.
8+
Schreibe t auf eine Zeile.
9+
10+
Schreibe t auf eine Zeile.

0 commit comments

Comments
 (0)