Hi, I'm trying to create a global variable in my own PASS which located at the LATE_IPA_PASSES. (I'm using GCC 10.3.0.)
And after creating it, I added the attributes like the following. // 1. create the var tree new_name = get_identifier (xx); tree new_type = build_pointer_type (xx); tree new_var = build_decl (UNKNOWN_LOCATION, VAR_DECL, new_name, new_type); add_attributes (new_var); static void add_attributes (tree var) { DECL_ARTIFICIAL (var) = 1; DECL_EXTERNAL (var) = 0; TREE_STATIC (var) = 1; TREE_PUBLIC (var) = 1; TREE_USED (var) = 1; DECL_CONTEXT (var) = NULL_TREE; TREE_THIS_VOLATILE (var) = 0; TREE_ADDRESSABLE (var) = 0; TREE_READONLY (var) = 0; if (is_global_var (var)) set_decl_tls_model (var, TLS_MODEL_NONE); } But when I try to compile some example files with -flto, error occurs. /usr/bin/ld: xxx.ltrans0.ltrans.o: in function `xxx': xxx.c: undefined reference to `glob_var' xxx.c: undefined reference to `glob_var' xxx.c: undefined reference to `glob_var' Here `glob_var' is the global varaiable created in my PASS. I would like to ask, am I using some attributes incorrectly? Thanks Hanke Zhang