re PR target/14047 (__progmem__ attribute doesn't work)
authorDean Ferreyra <dferreyra@igc.org>
Sat, 13 Mar 2004 06:43:30 +0000 (09:43 +0300)
committerDenis Chertykov <denisc@gcc.gnu.org>
Sat, 13 Mar 2004 06:43:30 +0000 (09:43 +0300)
PR target/14047
* config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
(avr_insert_attributes): Pass "attributes" to avr_progmem_p.
* config/avr/avr-protos.h (avr_progmem_p): Change prototype.

From-SVN: r79433

gcc/config/avr/avr-protos.h
gcc/config/avr/avr.c

index 19ee9e85b2db7966dc9495daac0cecd97aeebee1..d52d5bb5316c79c1d6a9352c9d571afbe86fce86 100644 (file)
@@ -42,7 +42,7 @@ extern void gas_output_ascii (FILE *file, const char *str, size_t length);
 
 #ifdef TREE_CODE
 extern void asm_output_external (FILE *file, tree decl, char *name);
-extern int avr_progmem_p (tree decl);
+extern int avr_progmem_p (tree decl, tree attributes);
 
 #ifdef RTX_CODE /* inside TREE_CODE */
 extern rtx avr_function_value (tree type, tree func);
index 705e07b52e92619c7ae471d64b461d44bfdc492e..092f1da9e0307eca6fba241d9be340e732101c53 100644 (file)
@@ -4575,7 +4575,7 @@ avr_handle_fndecl_attribute (tree *node, tree name,
    if found return 1, otherwise 0.  */
 
 int
-avr_progmem_p (tree decl)
+avr_progmem_p (tree decl, tree attributes)
 {
   tree a;
 
@@ -4583,7 +4583,7 @@ avr_progmem_p (tree decl)
     return 0;
 
   if (NULL_TREE
-      != lookup_attribute ("progmem", DECL_ATTRIBUTES (decl)))
+      != lookup_attribute ("progmem", attributes))
     return 1;
 
   a=decl;
@@ -4607,7 +4607,7 @@ avr_insert_attributes (tree node, tree *attributes)
 {
   if (TREE_CODE (node) == VAR_DECL
       && (TREE_STATIC (node) || DECL_EXTERNAL (node))
-      && avr_progmem_p (node))
+      && avr_progmem_p (node, *attributes))
     {
       static const char dsec[] = ".progmem.data";
       *attributes = tree_cons (get_identifier ("section"),