OK, Câu trả lời hay nhất tôi có thể cung cấp.
http://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html nói "không", do thiếu sót. Không có tài liệu về bất cứ điều gì để chèn mã stack-wiping vào đầu ra. Như gần như tôi có thể đoán, cách duy nhất này có thể làm việc, là tiêm một số mã số memset
giống như (có lẽ đơn giản như một số hoạt động mov
, nhưng dù sao) vào đầu mỗi khung từ vựng được nhúng trong đó biến tự động được tạo. Gần như tôi có thể nói - và tôi là đến nay từ chuyên gia về nội bộ của GCC, nhưng - dường như không có gì là được ghi lại là sẽ làm như vậy.
Ngoài ra, PDF gccint.pdf của GCC Internals (http://gcc.gnu.org/onlinedocs/gccint.pdf) trên trang 361 xác định rằng tên GCC cho bước gọi điều chỉnh con trỏ khung khi nhập vào hàm là prologue
. (Tôi không thực sự biết/hiểu rằng điều này áp dụng cho các phạm vi từ vựng khác trong một hàm, tuy nhiên.) Vì điều đó sẽ xảy ra trong tệp Định nghĩa máy (md), bất kỳ tùy chọn nào như vậy sẽ dường như phải được xác định cho Kiến trúc CPU. Tôi chọc vào ViewCVS trực tuyến của họ tại http://gcc.gnu.org/viewcvs/trunk/gcc/config/i386/ và tìm thấy (ít nhất một) bản sao của prologue
xung quanh dòng 11,893 của i386.md, sau khi chơi mở rộng tìm kiếm cho chức năng, một vài bước nhảy, dường như không có gì để phát ra mã điều kiện như thế.
Nhưng điều này thứ dưới GCC's-mui xe là kinda gọn gàng ...
'-Wextra' là rất tốt cho cơ sở mã mới mà chưa có 3 triệu dòng mã. :) –
Tôi không thể tin rằng khởi tạo được viết "initialialize" trong tài liệu trình biên dịch. –
@AndrewMarshall: Ha! Tôi thậm chí còn không nhận ra điều đó. Nó thực sự được đánh vần theo cách đó, mặc dù xlc đó là khá cũ. [Trợ giúp trực tuyến] hiện tại (http://publib.boulder.ibm.com/infocenter/comphelp/v7v91/index.jsp?topic=%2Fcom.ibm.vacpp7a.doc%2Fcompiler%2Fref%2Fruoptini.htm) không có lỗi đó. –