gcc에서 지역 변수 초기화 시 생기는 현상

bmrcreative의 이미지

struct thread *cur = thread_current ();
enum intr_level old_level;
int64_t start = timer_ticks ();
 
...

pintos를 공부하고 있습니다.

이 소스코드를 실행하고 gdb로 확인하니깐 start에 쓰레기값이 들어가고 timer_ticks ()는 호출되지도 않더군요

변수 선언하는 3줄에 자리를 바꿔봐도 똑같은 현상이구요.

그런데 만약에 앞의 두줄을 지우고 실행하면 start에 원하는 값이 들어가는데

무엇 때문에 이런 현상이 발생하는지 궁금합니다.