| /* |
| * Copyright (c) 2021-2025 Symas Corporation |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are |
| * met: |
| * |
| * * Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * * Redistributions in binary form must reproduce the above |
| * copyright notice, this list of conditions and the following disclaimer |
| * in the documentation and/or other materials provided with the |
| * distribution. |
| * * Neither the name of the Symas Corporation nor the names of its |
| * contributors may be used to endorse or promote products derived from |
| * this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| #include "cobol-system.h" |
| |
| #include "coretypes.h" |
| #include "tree.h" |
| #include "fold-const.h" |
| #include "convert.h" |
| |
| // This is required by some generic routines |
| |
| tree |
| convert (tree /*type*/, tree /*expr*/) |
| { |
| // The routine is necessary, but in our testing of the GCOBOL compiler, it never |
| // is called. I am commenting this cloned code out. I am keeping it so I have |
| // something to refer to if and when the necessity to reconstitute it arises. |
| // RJ Dubner, 2025-02-17 |
| #if 0 |
| if (type == error_mark_node |
| || expr == error_mark_node |
| || TREE_TYPE (expr) == error_mark_node) |
| return error_mark_node; |
| |
| if (type == TREE_TYPE (expr)) |
| return expr; |
| |
| if (TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (TREE_TYPE (expr))) |
| return fold_convert (type, expr); |
| |
| switch (TREE_CODE (type)) |
| { |
| case VOID_TYPE: |
| case BOOLEAN_TYPE: |
| return fold_convert (type, expr); |
| case INTEGER_TYPE: |
| return fold (convert_to_integer (type, expr)); |
| case POINTER_TYPE: |
| return fold (convert_to_pointer (type, expr)); |
| case REAL_TYPE: |
| return fold (convert_to_real (type, expr)); |
| case COMPLEX_TYPE: |
| return fold (convert_to_complex (type, expr)); |
| default: |
| break; |
| } |
| #endif |
| |
| gcc_unreachable (); |
| } |