treelang.texi: Treelang does have warnings.

2005-02-26  James A. Morrison  <phython@gcc.gnu.org>

        * treelang.texi: Treelang does have warnings.
        * treetree.c (tree_code_create_function_prototype): Don't set
        TREE_USED and set TREE_PUBLIC, DECL_EXTERNAL, and TREE_STATIC
        as few times as needed on the function declaration.
        (tree_code_create_function_initial): Don't set TREE_USED,
        TREE_ADDRESSABLE, but set TREE_STATIC on the function declaration.
        (tree_code_create_variable): Don't set TREE_USED on VAR_DECL.
        (tree_code_get_expression): Set TREE_USED for variable references
        and function calls.

From-SVN: r95580
This commit is contained in:
James A. Morrison 2005-02-26 14:10:11 +00:00
parent 52058e0da0
commit 347561b87c
3 changed files with 20 additions and 17 deletions

View file

@ -1,3 +1,15 @@
2005-02-26 James A. Morrison <phython@gcc.gnu.org>
* treelang.texi: Treelang does have warnings.
* treetree.c (tree_code_create_function_prototype): Don't set
TREE_USED and set TREE_PUBLIC, DECL_EXTERNAL, and TREE_STATIC
as few times as needed on the function declaration.
(tree_code_create_function_initial): Don't set TREE_USED,
TREE_ADDRESSABLE, but set TREE_STATIC on the function declaration.
(tree_code_create_variable): Don't set TREE_USED on VAR_DECL.
(tree_code_get_expression): Set TREE_USED for variable references
and function calls.
2005-02-26 James A. Morrison <phython@gcc.gnu.org>
* parse.y: Do comparisons as the type of the first expression.

View file

@ -710,9 +710,11 @@ the programmer's intention.)
@cindex warnings
@cindex questionable instructions
@item
There are few warnings in treelang. A program is either correct or in
error. The only exception to this is an expression in a return statement for
functions that return nothing.
There are a few warnings in treelang. For example an unused static function
generate a warnings when -Wunused-function is specified, similarily an unused
static variable generates a warning when -Wunused-variable are specified.
The only treelang specific warning is a warning when an expression is in a
return statement for functions that return void.
@end itemize
@cindex components of treelang

View file

@ -352,25 +352,19 @@ tree_code_create_function_prototype (unsigned char* chars,
DECL_CONTEXT (fn_decl) = NULL_TREE;
DECL_SOURCE_LOCATION (fn_decl) = loc;
TREE_USED (fn_decl) = 1;
TREE_PUBLIC (fn_decl) = 0;
DECL_EXTERNAL (fn_decl) = 0;
TREE_STATIC (fn_decl) = 0;
switch (storage_class)
{
case STATIC_STORAGE:
TREE_PUBLIC (fn_decl) = 0;
break;
case EXTERNAL_DEFINITION_STORAGE:
TREE_PUBLIC (fn_decl) = 1;
TREE_STATIC (fn_decl) = 0;
DECL_EXTERNAL (fn_decl) = 0;
break;
case EXTERNAL_REFERENCE_STORAGE:
TREE_PUBLIC (fn_decl) = 0;
DECL_EXTERNAL (fn_decl) = 1;
break;
@ -457,11 +451,7 @@ tree_code_create_function_initial (tree prev_saved,
pushlevel (0);
/* Force it to be output, else may be solely inlined. */
TREE_ADDRESSABLE (fn_decl) = 1;
/* Stop -O3 from deleting it. */
TREE_USED (fn_decl) = 1;
TREE_STATIC (fn_decl) = 1;
}
/* Wrapup a function contained in file FILENAME, ending at line LINENO. */
@ -570,9 +560,6 @@ tree_code_create_variable (unsigned int storage_class,
gcc_unreachable ();
}
/* This should really only be set if the variable is used. */
TREE_USED (var_decl) = 1;
TYPE_NAME (TREE_TYPE (var_decl)) = TYPE_NAME (var_type);
return pushdecl (copy_node (var_decl));
}
@ -701,6 +688,7 @@ tree_code_get_expression (unsigned int exp_type,
variable type, convert it. */
case EXP_REFERENCE:
gcc_assert (op1);
TREE_USED (op1) = 1;
if (type == TREE_TYPE (op1))
ret1 = op1;
else
@ -711,6 +699,7 @@ tree_code_get_expression (unsigned int exp_type,
gcc_assert (op1);
{
tree fun_ptr;
TREE_USED (op1) = 1;
fun_ptr = fold (build1 (ADDR_EXPR,
build_pointer_type (TREE_TYPE (op1)), op1));
ret1 = build3 (CALL_EXPR, type, fun_ptr, nreverse (op2), NULL_TREE);