From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from zmcc-3-mx.zmailcloud.com (zmcc-3-mx.zmailcloud.com [34.200.143.36]) by sourceware.org (Postfix) with ESMTPS id 443003858C52 for ; Mon, 28 Nov 2022 21:28:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 443003858C52 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=symas.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=symas.com Received: from zmcc-3.zmailcloud.com (183.87.154.104.bc.googleusercontent.com [104.154.87.183]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by zmcc-3-mx.zmailcloud.com (Postfix) with ESMTPS id 6419C405D8; Mon, 28 Nov 2022 15:32:32 -0600 (CST) Received: from zmcc-3.zmailcloud.com (localhost [127.0.0.1]) by zmcc-3-mta-1.zmailcloud.com (Postfix) with ESMTPS id C266A8036FD7; Mon, 28 Nov 2022 15:28:30 -0600 (CST) Received: from localhost (localhost [127.0.0.1]) by zmcc-3-mta-1.zmailcloud.com (Postfix) with ESMTP id B0591803772D; Mon, 28 Nov 2022 15:28:30 -0600 (CST) Received: from zmcc-3.zmailcloud.com ([127.0.0.1]) by localhost (zmcc-3-mta-1.zmailcloud.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id pbh20cZIQ98p; Mon, 28 Nov 2022 15:28:30 -0600 (CST) Received: from zmcc-3-mailbox-1.zmailcloud.com (zmcc-3-mailbox-1.zmailcloud.com [10.240.0.91]) by zmcc-3-mta-1.zmailcloud.com (Postfix) with ESMTP id 8E08B8036FD7; Mon, 28 Nov 2022 15:28:30 -0600 (CST) From: Robert Dubner To: Cc: "'Bob Dubner'" References: In-Reply-To: Subject: Code generation: How to define file-scope static variables? Thread-Topic: Code generation: How to define file-scope static variables? Date: Mon, 28 Nov 2022 15:28:30 -0600 (CST) Message-ID: <047c01d90370$5c3ecba0$14bc62e0$@symas.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 16.0 X-Mailer: Zimbra 8.8.15_GA_4464 (Zimbra-ZCO/9.0.0.1923 (10.0.22000 en-US) P3288 T6868 R6288) Thread-Index: AdkDcDAUv/14wfczRimUXlm1PTheKA== Content-Language: en-us X-Spam-Status: No, score=-0.7 required=5.0 tests=BAYES_20,KAM_DMARC_STATUS,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: I am part of a team working on a COBOL front end for GCC. By reverse engineering other front ends, I learned, some months ago, how to create a function_decl GENERIC node that is the root of a GENERIC tree describing an entire function. By calling the routine cgraph_node::finalize_function() with that function_decl, the assembly language for that function is created, and all is well. But now I need to be able to create the equivalent of a file-scope static variable in C. This C program file: ////////////////// static int dubner_at_work = 123454321; int main(int argc, char **argv) { } ////////////////// produces, in part, this assembly language: ############### .file "ccc.c" .text .data .align 4 .type dubner_at_work, @object .size dubner_at_work, 4 dubner_at_work: .long 123454321 .text .globl main .type main, @function [...] ############### In my own GENERIC generation code, I believe that I am creating a proper translation_unit_decl that contains the block and the vars nodes for specifying "dubner_at_work". But I have been unable, after several days of looking, to figure out the equivalent of "cgraph_node::finalize_function" for a translation_unit_decl. The resulting assembly language doesn't have a definition for "dubner_at_work". Can anybody describe how I can tell the downstream processing that I need the translation_unit_decl to actually define storage? Thanks very much, Bob Dubner.