A expressão «de fome» não desempenha função sintática.
Em princípio, poderia parecer modificador (adjunto adverbial na terminologia brasileira), porque o verbo morrer é intransitivo. Contudo, a aplicação do conhecido teste pergunta/resposta para identificação do modificador não confirma «de fome» como modificador (* indica inaceitabilidade):
1. *O que aconteceu ao João de fome? Morreu.
2. O que aconteceu ao João? Morreu de fome.
A inaceitabilidade da ocorrência de «de fome» na pergunta em 1 sugere que este constituinte é indissociável de «morreu». Contudo, considero 2 aceitável, não porque «de fome» seja um complemento verbal, mas, sim, em virtude de esse constituinte formar uma expressão fixa com morrer. Sendo assim, a expressão «morrer de fome» deve ser analisada como um todo (como se a expressão fosse um verbo definido por uma só palavra, tal como sucede com o inglês to starve, «morrer de fome»).