Changes in / [ad47ec4:9bb6c5f]


Ignore:
Files:
40 edited

Legend:

Unmodified
Added
Removed
  • doc/bibliography/pl.bib

    rad47ec4 r9bb6c5f  
     1
    12% Conventions: uncross-referenced entries appear first, then
    23%    cross-referenced entries.  In both groups, entries are sorted by their
     
    58505851    contributer = {pabuhr@plg},
    58515852    author      = {Leslie Lamport},
    5852     title       = {A New Solution of Dijkstra's Concurrent Programming Problem},
     5853    title       = {A New Solution of {D}ijkstra's Concurrent Programming Problem},
    58535854    journal     = cacm,
    58545855    month       = aug,
     
    68096810    year        = 1981,
    68106811    series      = {Series in Computer Science}
     6812}
     6813
     6814@inproceedings{Damas82,
     6815    contributer = {pabuhr@plg},
     6816    author      = {Luis Damas and Robin Milner},
     6817    title       = {Principal Type-Schemes for Functional Programs},
     6818    publisher   = {Association for Computing Machinery},
     6819    address     = {New York, NY, USA},
     6820    booktitle   = {Proceedings of the 9th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
     6821    location    = {Albuquerque, New Mexico},
     6822    series      = {POPL'82}
     6823    year        = 1982,
     6824    pages       = {207-212},
    68116825}
    68126826
  • doc/theses/fangren_yu_MMath/intro.tex

    rad47ec4 r9bb6c5f  
    66Overloading allows programmers to use the most meaningful names without fear of name clashes within a program or from external sources, like include files.
    77\begin{quote}
    8 There are only two hard things in Computer Science: cache invalidation and naming things. --- Phil Karlton
     8There are only two hard things in Computer Science: cache invalidation and \emph{naming things}. --- Phil Karlton
    99\end{quote}
    1010Experience from \CC and \CFA developers is that the type system implicitly and correctly disambiguates the majority of overloaded names, \ie it is rare to get an incorrect selection or ambiguity, even among hundreds of overloaded (variables and) functions.
     
    1515
    1616
    17 \subsection{Operator Overloading}
    18 
    19 Virtually all programming languages overload the arithmetic operators across the basic types using the number and type of parameters and returns.
     17\section{Types}
     18
     19\begin{quote}
     20Some are born great, some achieve greatness, and some have greatness thrust upon them. Twelfth Night, Act II Scene 5, William Shakespeare
     21\end{quote}
     22
     23All computers have multiple types because computer architects optimize the hardware around a few basic types with well defined (mathematical) operations: boolean, integral, floating-point, and occasionally strings.
     24A programming language and its compiler present ways to declare types that ultimately map into those provided by the underlying hardware.
     25These language types are thrust upon programmers, with their syntactic and semantic rules, and resulting restrictions.
     26A language type-system defines these rules and uses them to understand how an expression is to be evaluated by the hardware.
     27Modern programming-languages allow user-defined types and generalize across multiple types using polymorphism.
     28Type systems can be static, where each variable has a fixed type during execution and an expression's type is determined once at compile time, or dynamic, where each variable can change type during execution and so an expression's type is reconstructed on each evaluation.
     29Expressibility, generalization, and safety are all bound up in a language's type system, and hence, directly affect the capability, build time, and correctness of program development.
     30
     31
     32\section{Operator Overloading}
     33
     34Virtually all programming languages overload the arithmetic operators across the basic computational types using the number and type of parameters and returns.
    2035Like \CC, \CFA also allows these operators to be overloaded with user-defined types.
    21 The syntax for operator names uses the @'?'@ character to denote a parameter, \eg prefix and infix increment operators: @?++@, @++?@, and @?+?@.
     36The syntax for operator names uses the @'?'@ character to denote a function parameter, \eg prefix, postfix, and infix increment operators: @++?@, @?++@, and @?+?@.
     37Here, a user-defined type is extended with an addition operation with the same syntax as builtin types.
    2238\begin{cfa}
    2339struct S { int i, j };
     
    2541S s1, s2;
    2642s1 = s1 @+@ s2;                 $\C[1.75in]{// infix call}$
    27 s1 = @?+?@( s1, s2 );   $\C{// direct call}\CRT$
     43s1 = @?+?@( s1, s2 );   $\C{// direct call using operator name}\CRT$
    2844\end{cfa}
    2945The type system examines each call size and selects the best matching overloaded function based on the number and types of the arguments.
    30 If there are mixed-mode operands, @2 + 3.5@, the type system, like in C/\CC, attempts (safe) conversions, converting the argument type(s) to the parameter type(s).
    31 
    32 
    33 \subsection{Function Overloading}
     46If there are mixed-mode operands, @2 + 3.5@, the \CFA type system, like C/\CC, attempts (safe) conversions, converting one or more of the argument type(s) to the parameter type(s).
     47Conversions are necessary because the hardware rarely supports mix-mode operations, so both operands must be the same type.
     48Note, without implicit conversions, programmers must write an exponential number of functions covering all possible exact-match cases among all possible types.
     49This approach does not match with programmer intuition and expectation, regardless of any \emph{safety} issues resulting from converted values.
     50
     51
     52\section{Function Overloading}
    3453
    3554Both \CFA and \CC allow function names to be overloaded, as long as their prototypes differ in the number and type of parameters and returns.
    3655\begin{cfa}
    37 void f( void );                 $\C[1.75in]{// (1): no parameter}$
     56void f( void );                 $\C[2in]{// (1): no parameter}$
    3857void f( char );                 $\C{// (2): overloaded on the number and parameter type}$
    3958void f( int, int );             $\C{// (3): overloaded on the number and parameter type}$
     
    4564
    4665Ada, Scala, and \CFA type-systems also use the return type in resolving a call, to pinpoint the best overloaded name.
    47 \begin{cfa}
    48 int f( void );                  $\C[1.75in]{// (4); overloaded on return type}$
    49 double f( void );               $\C{// (5); overloaded on return type}$
    50 int i = f();                    $\C{// select (4)}$
    51 double d = f();                 $\C{// select (5)}\CRT$
    52 \end{cfa}
    53 
    54 
    55 \subsection{Variable Overloading}
    56 Unlike almost all programming languages, \CFA has variable overloading within a scope, along with shadow overloading in nested scopes.
     66For example, in many programming languages with overloading, the following functions are ambiguous without using the return type.
     67\begin{cfa}
     68int f( int );                   $\C[2in]{// (1); overloaded on return type and parameter}$
     69double f( int );                $\C{// (2); overloaded on return type and parameter}$
     70int i = f( 3 );                 $\C{// select (1)}$
     71double d = f( 3 );              $\C{// select (2)}\CRT$
     72\end{cfa}
     73However, if the type system looks at the return type, there is an exact match for each call, which matches with programmer intuition and expectation.
     74This capability can be taken to the extreme, where there are no function parameters.
     75\begin{cfa}
     76int random( void );             $\C[2in]{// (1); overloaded on return type}$
     77double random( void );  $\C{// (2); overloaded on return type}$
     78int i = random();               $\C{// select (1)}$
     79double d = random();    $\C{// select (2)}\CRT$
     80\end{cfa}
     81Again, there is an exact match for each call.
     82If there is no exact match, a set of minimal conversions can be added to find a best match, as for operator overloading.
     83
     84
     85\section{Variable Overloading}
     86
     87Unlike most programming languages, \CFA has variable overloading within a scope, along with shadow overloading in nested scopes.
     88(Shadow overloading is also possible for functions, if a language supports nested function declarations, \eg \CC named, nested, lambda functions.)
    5789\begin{cfa}
    5890void foo( double d );
    59 int v;                              $\C[1.75in]{// (1)}$
     91int v;                              $\C[2in]{// (1)}$
    6092double v;                               $\C{// (2) variable overloading}$
    6193foo( v );                               $\C{// select (2)}$
     
    6698}
    6799\end{cfa}
    68 The \CFA type system simply treats overloaded variables as an overloaded function returning a value with no parameters.
     100It is interesting that shadow overloading is considered a normal programming-language feature with only slight software-engineering problems, but variable overloading within a scope is often considered extremely dangerous.
     101
     102In \CFA, the type system simply treats overloaded variables as an overloaded function returning a value with no parameters.
    69103Hence, no significant effort is required to support this feature.
     104Leveraging the return type to disambiguate is essential because variables have no parameters.
     105\begin{cfa}
     106int MAX = 2147483647;   $\C[2in]{// (1); overloaded on return type}$
     107double MAX = ...;               $\C{// (2); overloaded on return type}$
     108int i = MAX;                    $\C{// select (1)}$
     109double d = MAX;                 $\C{// select (2)}\CRT$
     110\end{cfa}
     111
     112
     113\section{Type Inferencing}
     114
     115One of the first and powerful type-inferencing system is Hindley--Milner~\cite{Damas82}.
     116Here, the type resolver starts with the types of the program constants used for initialization and these constant types flow throughout the program, setting all variable and expression types.
     117\begin{cfa}
     118auto f() {
     119        x = 1;   y = 3.5;       $\C{// set types from constants}$
     120        x = // expression involving x, y and other local initialized variables
     121        y = // expression involving x, y and other local initialized variables
     122        return x, y;
     123}
     124auto w = f();                   $\C{// typing flows outwards}$
     125
     126void f( auto x, auto y ) {
     127        x = // expression involving x, y and other local initialized variables
     128        y = // expression involving x, y and other local initialized variables
     129}
     130s = 1;   t = 3.5;               $\C{// set types from constants}$
     131f( s, t );                              $\C{// typing flows inwards}$
     132\end{cfa}
     133In both overloads of @f@, the type system works from the constant initializations inwards and/or outwards to determine the types of all variables and functions.
     134Note, like template meta-programming, there can be a new function generated for the second @f@ depending on the types of the arguments, assuming these types are meaningful in the body of the @f@.
     135Inferring type constraints, by analysing the body of @f@ is possible, and these constraints must be satisfied at each call site by the argument types;
     136in this case, parametric polymorphism can allow separate compilation.
     137In languages with type inferencing, there is often limited overloading to reduce the search space, which introduces the naming problem.
     138Return-type inferencing goes in the opposite direction to Hindley--Milner: knowing the type of the result and flowing back through an expression to help select the best possible overloads, and possibly converting the constants for a best match.
     139
     140In simpler type inferencing systems, such as C/\CC/\CFA, there are more specific usages.
     141\begin{cquote}
     142\setlength{\tabcolsep}{10pt}
     143\begin{tabular}{@{}lll@{}}
     144\multicolumn{1}{c}{\textbf{gcc / \CFA}} & \multicolumn{1}{c}{\textbf{\CC}} \\
     145\begin{cfa}
     146#define expr 3.0 * i
     147typeof(expr) x = expr;
     148int y;
     149typeof(y) z = y;
     150\end{cfa}
     151&
     152\begin{cfa}
     153
     154auto x = 3.0 * 4;
     155int y;
     156auto z = y;
     157\end{cfa}
     158&
     159\begin{cfa}
     160
     161// use type of initialization expression
     162
     163// use type of initialization expression
     164\end{cfa}
     165\end{tabular}
     166\end{cquote}
     167The two important capabilities are:
     168\begin{itemize}[topsep=0pt]
     169\item
     170Not determining or writing long generic types, \eg, given deeply nested generic types.
     171\begin{cfa}
     172typedef T1(int).T2(float).T3(char).T ST;  $\C{// \CFA nested type declaration}$
     173ST x, y, x;
     174\end{cfa}
     175This issue is exaggerated with \CC templates, where type names are 100s of characters long, resulting in unreadable error messages.
     176\item
     177Ensuring the type of secondary variables, always matches a primary variable.
     178\begin{cfa}
     179int x; $\C{// primary variable}$
     180typeof(x) y, z, w; $\C{// secondary variables match x's type}$
     181\end{cfa}
     182If the type of @x@ changes, the types of the secondary variables correspondingly update.
     183\end{itemize}
     184Note, the use of @typeof@ is more restrictive, and possibly safer, than general type-inferencing.
     185\begin{cfa}
     186int x;
     187type(x) y = ... // complex expression
     188type(x) z = ... // complex expression
     189\end{cfa}
     190Here, the types of @y@ and @z@ are fixed (branded), whereas with type inferencing, the types of @y@ and @z@ are potentially unknown.
     191
     192
     193\section{Type-Inferencing Issues}
     194
     195Each kind of type-inferencing systems has its own set of issues that flow onto the programmer in the form of restrictions and/or confusions.
     196\begin{enumerate}[leftmargin=*]
     197\item
     198There can be large blocks of code where all declarations are @auto@.
     199As a result, understanding and changing the code becomes almost impossible.
     200Types provide important clues as to the behaviour of the code, and correspondingly to correctly change or add new code.
     201In these cases, a programmer is forced to re-engineer types, which is fragile, or rely on a fancy IDE that can re-engineer types.
     202\item
     203The problem of unknown types becomes acute when the concrete type must be used, \eg, given:
     204\begin{cfa}
     205auto x = @...@
     206\end{cfa}
     207and the need to write a routine to compute using @x@
     208\begin{cfa}
     209void rtn( @...@ parm );
     210rtn( x );
     211\end{cfa}
     212A programmer must re-engineer the type of @x@'s initialization expression, reconstructing the possibly long generic type-name.
     213In this situation, having the type name or its short alias is essential.
     214\item
     215There is the conundrum in type inferencing of when to \emph{brand} a type.
     216That is, when is the type of the variable/function more important than the type of its initialization expression.
     217For example, if a change is made in an initialization expression, it can cause cascading type changes and/or errors.
     218At some point, a variable's type needs to remain constant and the expression needs to be modified or in error when it changes.
     219Often type-inferencing systems allow \newterm{branding} a variable or function type;
     220now the complier can report a mismatch on the constant.
     221\begin{cfa}
     222void f( @int@ x, @int@ y ) {  // brand function prototype
     223        x = // expression involving x, y and other local initialized variables
     224        y = // expression involving x, y and other local initialized variables
     225}
     226s = 1;   t = 3.5;
     227f( s, @t@ ); // type mismatch
     228\end{cfa}
     229In Haskell, it is common for programmers to brand (type) function parameters.
     230\end{enumerate}
     231
     232\CFA's type system is trying to prevent type-resolution mistakes by relying heavily on the type of the left-hand side of assignment to pinpoint the right types for an expression computation.
     233Type inferencing defeats this goal because there is no left-hand type.
     234Fundamentally, type inferencing tries to magic away types from the programmer.
     235However, this results in lazy programming with the potential for poor performance and safety concerns.
     236Types are as important as control-flow, and should not be masked, even if it requires the programmer to think!
     237A similar example is garbage collection, where storage management is masked, resulting in poor program design and performance.
     238The entire area of Computer-Science data-structures is obsessed with time and space, and that obsession should continue into regular programming.
     239Understanding space and time issues are an essential part of the programming craft.
     240Given @typedef@ and @typeof@ in \CFA, and the strong need to use the left-hand type in resolution, implicit type-inferencing is unsupported.
     241Should a significant need arise, this feature can be revisited.
     242
     243
     244\section{Polymorphism}
     245
     246
     247
     248\section{Contributions}
  • doc/theses/jiada_liang_MMath/Cenum.tex

    rad47ec4 r9bb6c5f  
    8787\end{cfa}
    8888
    89 Note, \CC has the same safe restriction~\cite[C.1.5.7.2]{C++} and provides the same workaround cast.
    90 \begin{description}[parsep=0pt]
     89Note, \CC has the same safe restriction and provides the same workaround cast:
     90\begin{cquote}
     91\begin{description}[leftmargin=*,topsep=0pt,itemsep=0pt,parsep=0pt]
    9192\item[Change:] \CC objects of enumeration type can only be assigned values of the same enumeration type.
    9293In C, objects of enumeration type can be assigned values of any integral type.
     
    102103\item[How widely used:] Common.
    103104\end{description}
     105\hfill ISO/IEC 14882:1998 (\CC Programming Language Standard)~\cite[C.1.5.7.2.5]{ANSI98:C++}
     106\end{cquote}
  • doc/theses/jiada_liang_MMath/relatedwork.tex

    rad47ec4 r9bb6c5f  
    353353whereas C @const@ declarations without @static@ are marked @R@.
    354354
    355 The following \CC non-backward compatible change is made~\cite[C.1.5.7.2]{C++}, plus the safe-assignment change shown in~\VRef{s:TypeSafety}.
    356 \begin{description}[parsep=0pt]
     355The following \CC non-backward compatible change is made, plus the safe-assignment change shown in~\VRef{s:TypeSafety}.
     356\begin{cquote}
     357\begin{description}[leftmargin=*,topsep=0pt,itemsep=0pt,parsep=0pt]
    357358\item[Change:] In \CC, the type of an enumerator is its enumeration.
    358359In C, the type of an enumerator is @int@.
     
    370371Taking the size of an enumerator is not a common C coding practice.
    371372\end{description}
     373\hfill ISO/IEC 14882:1998 (\CC Programming Language Standard)~\cite[C.1.5.7.2.6]{ANSI98:C++}
     374\end{cquote}
    372375Hence, the values in a \CC enumeration can only be its enumerators (without a cast).
    373376
  • libcfa/prelude/prototypes.awk

    rad47ec4 r9bb6c5f  
    103103
    104104        for ( prototype in prototypes ) {
    105                 # printf( "//\"%s\"\n", prototype )
    106105                if ( index( "BT_LAST", prototype ) == 1 ) {
    107106                        continue
     
    126125
    127126                # generate function parameter types as macro
    128                 if ( index( prototype, "VAR" ) != 2 ) {                 # C-style empty parameters ?
    129                         for ( p = 0; length( prototype ) > 0; p += 1 ) { # until all parameters types are removed
    130                                 sub( "_", "", prototype)                                # remove "_"
    131                                 printf( ", ", type )
    132                                 temp = prototype
    133                                 for ( t = 0; t < N; t += 1 ) {                  # find longest match
    134                                         type = types[t];
    135                                         if ( index( prototype, type ) == 1 ) { # found match
    136                                                 printf( "BT_%s", type )
    137                                                 sub( type, "", prototype )
    138                                                 break;
    139                                         } # if
    140                                 } # for
    141                                 if ( temp == prototype ) {                              # no match found for parameter in macro table
    142                                         printf( "\n********** MISSING TYPE \"%s\" **********\n", prototype )
    143                                         exit 0
     127                for ( p = 0; length( prototype ) > 0; p += 1 ) { # until all parameters types are removed
     128                        sub( "_", "", prototype)                                # remove "_"
     129                        printf( ", ", type )
     130                        temp = prototype
     131                        for ( t = 0; t < N; t += 1 ) {                  # find longest match
     132                                type = types[t];
     133                                if ( index( prototype, type ) == 1 ) { # found match
     134                                        printf( "BT_%s", type )
     135                                        sub( type, "", prototype )
     136                                        break;
    144137                                } # if
    145138                        } # for
    146                 } # if
     139                        if ( temp == prototype ) {                              # no match found for parameter in macro table
     140                                printf( "\n********** MISSING TYPE \"%s\" **********\n", prototype )
     141                                exit 0
     142                        } # if
     143                } # for
    147144                printf( ")\n" )
    148145        } # for
  • libcfa/src/concurrency/future.hfa

    rad47ec4 r9bb6c5f  
    8888                if ( s.clause_status == 0p ) // poke in result so that woken threads do not need to reacquire any locks
    8989                    copy_T( result, *(((future_node(T) &)s).my_result) );
    90                
     90
    9191                wake_one( waiters, s );
    9292            }
     
    146146            }
    147147            unlock( lock );
    148            
     148
    149149            return [ret_val, false];
    150150        }
     
    154154
    155155            // check if we can complete operation. If so race to establish winner in special OR case
    156             if ( !s.park_counter && state != FUTURE_EMPTY ) { 
     156            if ( !s.park_counter && state != FUTURE_EMPTY ) {
    157157                if ( !__make_select_node_available( s ) ) { // we didn't win the race so give up on registering
    158158                    unlock( lock );
     
    180180            return false;
    181181        }
    182                
     182
    183183        bool on_selected( future(T) & this, select_node & node ) { return true; }
    184184        }
  • libcfa/src/iostream.cfa

    rad47ec4 r9bb6c5f  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Aug 17 12:31:47 2024
    13 // Update Count     : 2038
     12// Last Modified On : Wed Sep  4 11:30:12 2024
     13// Update Count     : 2040
    1414//
    1515
     
    512512                if ( cnt == 1 && f.flags.left ) { wd = f.wd; f.wd = maxdig; } // copy f.wd and reset for printing middle chunk
    513513                // printf( "R val:%#lx(%lu) wd:%u pc:%u base:%c neg:%d pc:%d left:%d nobsdp:%d sign:%d pad0:%d\n",
    514                 //              f.val, f.val, f.wd, f.pc, f.base, f.flags.neg, f.flags.pc, f.flags.left, f.flags.nobsdp, f.flags.sign, f.flags.pad0 ); 
     514                //              f.val, f.val, f.wd, f.pc, f.base, f.flags.neg, f.flags.pc, f.flags.left, f.flags.nobsdp, f.flags.sign, f.flags.pad0 );
    515515                (ostype &)(os | f);
    516516                if ( cnt == 1 ) {
     
    554554                if ( f.flags.neg ) f.val = -f.val;
    555555                // printf( "L val:%#lx(%lu) wd:%u pc:%u base:%c neg:%d pc:%d left:%d nobsdp:%d sign:%d pad0:%d\n",
    556                 //              f.val, f.val, f.wd, f.pc, f.base, f.flags.neg, f.flags.pc, f.flags.left, f.flags.nobsdp, f.flags.sign, f.flags.pad0 ); 
     556                //              f.val, f.val, f.wd, f.pc, f.base, f.flags.neg, f.flags.pc, f.flags.left, f.flags.nobsdp, f.flags.sign, f.flags.pad0 );
    557557                (ostype &)(os | f);
    558558
     
    597597        "y", "z", "a", "f", "p", "n", "u", "m", "",
    598598        "K", "M", "G", "T", "P", "E", "Z", "Y"
    599 }; 
     599};
    600600#define SUFFIXES_START (-24) /* Smallest power for which there is a suffix defined. */
    601601#define SUFFIXES_END (SUFFIXES_START + (int)((sizeof(suffixes) / sizeof(char *) - 1) * 3))
     
    10641064                        else args = fmt( is, fmtstr, s, &len );
    10651065                        // fprintf( stderr, "cstr %s %d %d %d\n", fmtstr, args, len, f.cstr.wd );
     1066
     1067                        // No data read and eof is on => true eof so raise exception.
     1068                        if ( len == 0 && eof( is ) ) throwResume ExceptionInst( end_of_file );
     1069
    10661070                        if ( check && len >= rwd && ! eof( is ) ) {     // might not fit
    10671071                                char peek;
     
    10871091                                else args = fmt( is, fmtstr, s, &len );
    10881092
     1093                                // No data read and eof is on => true eof so raise exception.
     1094                                if ( len == 0 && eof( is ) ) throwResume ExceptionInst( end_of_file );
     1095
    10891096                                if ( check && len == rwd && ! eof( is ) ) {     // might not fit
    10901097                                        char peek;
     
    11061113                                else args = fmt( is, fmtstr, s, &len );
    11071114                                // fprintf( stderr, "incl/excl %s \"%s\" %d %d %d %d %d %c\n", fmtstr, s, args, wd, len, eof( is ), check, s[wd] );
     1115
     1116                                // No data read and eof is on => true eof so raise exception.
     1117                                if ( len == 0 && eof( is ) ) throwResume ExceptionInst( end_of_file );
     1118
    11081119                                if ( check && len == rwd && ! eof( is ) ) {     // might not fit
    11091120                                        // fprintf( stderr, "overflow\n" );
  • src/CodeGen/CodeGenerator.cpp

    rad47ec4 r9bb6c5f  
    180180
    181181        if ( 0 == decl->params.size() ) {
    182                 if ( decl->type->isVarArgs ) {
     182                if ( !decl->type->isVarArgs ) {
     183                        acc << "(void)";
     184                } else if ( options.genC ) {
    183185                        acc << "()";
    184186                } else {
    185                         acc << "(void)";
     187                        acc << "(...)";
    186188                }
    187189        } else {
  • src/CodeGen/GenType.cpp

    rad47ec4 r9bb6c5f  
    168168
    169169        if ( type->params.empty() ) {
    170                 if ( type->isVarArgs ) {
     170                if ( !type->isVarArgs ) {
     171                        os << "(void)";
     172                } else if ( options.genC ) {
    171173                        os << "()";
    172174                } else {
    173                         os << "(void)";
     175                        os << "(...)";
    174176                }
    175177        } else {
  • src/Concurrency/Keywords.cpp

    rad47ec4 r9bb6c5f  
    15101510
    15111511ast::ptr<ast::Type> MutexKeyword::generic_func =
    1512         new ast::FunctionType( ast::VariableArgs );
     1512        new ast::FunctionType( ast::FixedArgs );
    15131513
    15141514// --------------------------------------------------------------------------
  • src/Concurrency/Waitfor.cpp

    rad47ec4 r9bb6c5f  
    302302        const ast::ObjectDecl * monitors = declMonitors( out, clause );
    303303        ast::Type * fptr_t = new ast::PointerType(
    304                         new ast::FunctionType( ast::VariableArgs ) );
     304                        new ast::FunctionType( ast::FixedArgs ) );
    305305
    306306        const ast::VariableExpr * variableExpr =
  • src/Parser/TypeData.cpp

    rad47ec4 r9bb6c5f  
    15411541
    15421542// The argument flag (is/is not var-args) of a computed property.
    1543 static ast::ArgumentFlag argumentFlag( const TypeData * td ) {
     1543static ast::ArgumentFlag buildArgumentFlag( const TypeData * td ) {
    15441544        assert( td->kind == TypeData::Function );
    1545         bool isVaArgs = !td->function.params || td->function.params->hasEllipsis;
    1546         return (isVaArgs) ? ast::VariableArgs : ast::FixedArgs;
    1547 } // argumentFlag
     1545        bool isVarArgs = !td->function.params || td->function.params->hasEllipsis;
     1546        return (isVarArgs) ? ast::VariableArgs : ast::FixedArgs;
     1547}
     1548
     1549
     1550// Wrapper to convert the void parameter into the empty explicit list.
     1551static void buildParamList( DeclarationNode * decl,
     1552                std::vector<ast::ptr<ast::DeclWithType>> & params ) {
     1553        buildList( decl, params );
     1554        if ( 1 == params.size() && params[0]->get_type()->isVoid() ) {
     1555                params.pop_back();
     1556        }
     1557}
    15481558
    15491559
     
    15621572        std::vector<ast::ptr<ast::DeclWithType>> params;
    15631573        std::vector<ast::ptr<ast::DeclWithType>> returns;
    1564         buildList( td->function.params, params );
     1574        buildParamList( td->function.params, params );
    15651575        buildForall( td->forall, forall );
    15661576        // Functions do not store their assertions there anymore.
     
    16101620                std::move( attributes ),
    16111621                funcSpec,
    1612                 argumentFlag( td )
     1622                buildArgumentFlag( td )
    16131623        );
    16141624        buildList( td->function.withExprs, decl->withExprs );
     
    16621672        assert( td->kind == TypeData::Function );
    16631673        ast::FunctionType * ft = new ast::FunctionType(
    1664                 argumentFlag( td ),
     1674                buildArgumentFlag( td ),
    16651675                buildQualifiers( td )
    16661676        );
  • src/Parser/parser.yy

    rad47ec4 r9bb6c5f  
    28892889parameter_list_ellipsis_opt:
    28902890        // empty
    2891                 { $$ = nullptr; }
     2891                { $$ = DeclarationNode::newFromTypeData( build_basic_type( TypeData::Void ) ); }
    28922892        | ELLIPSIS
    28932893                { $$ = nullptr; }
  • tests/.expect/KRfunctions.arm64.txt

    rad47ec4 r9bb6c5f  
    9898    __attribute__ ((unused)) signed int _X11_retval_f15i_1;
    9999}
    100 const signed int _X4fredFi___1(){
     100const signed int _X4fredFi___1(void){
    101101    __attribute__ ((unused)) const signed int _X12_retval_fredKi_1;
    102102    signed int *(*_X1xFPi_ii__2)(signed int __param_0, signed int __param_1);
  • tests/.expect/KRfunctions.x64.txt

    rad47ec4 r9bb6c5f  
    9898    __attribute__ ((unused)) signed int _X11_retval_f15i_1;
    9999}
    100 const signed int _X4fredFi___1(){
     100const signed int _X4fredFi___1(void){
    101101    __attribute__ ((unused)) const signed int _X12_retval_fredKi_1;
    102102    signed int *(*_X1xFPi_ii__2)(signed int __param_0, signed int __param_1);
  • tests/.expect/KRfunctions.x86.txt

    rad47ec4 r9bb6c5f  
    9898    __attribute__ ((unused)) signed int _X11_retval_f15i_1;
    9999}
    100 const signed int _X4fredFi___1(){
     100const signed int _X4fredFi___1(void){
    101101    __attribute__ ((unused)) const signed int _X12_retval_fredKi_1;
    102102    signed int *(*_X1xFPi_ii__2)(signed int __param_0, signed int __param_1);
  • tests/.expect/attributes.arm64.txt

    rad47ec4 r9bb6c5f  
    1 signed int _X2laFi___1(){
     1signed int _X2laFi___1(void){
    22    __attribute__ ((unused)) signed int _X10_retval_lai_1;
    33    {
     
    11791179
    11801180}
    1181 __attribute__ ((unused)) signed int _X1fFi___1() asm ( "xyz" );
     1181__attribute__ ((unused)) signed int _X1fFi___1(void) asm ( "xyz" );
    11821182__attribute__ ((used,used)) const signed int _X3vd1Ki_1;
    11831183__attribute__ ((used,unused)) const signed int _X3vd2Ki_1;
     
    11861186__attribute__ ((used,used,used)) const signed int _X3vd5A0Ki_1[((unsigned long int )5)];
    11871187__attribute__ ((used,used,unused,used)) const signed int _X3vd6A0Ki_1[((unsigned long int )5)];
    1188 __attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)();
    1189 __attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)();
    1190 __attribute__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)();
    1191 __attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___1)();
    1192 __attribute__ ((unused,used)) signed int _X2f1Fi___1();
    1193 __attribute__ ((unused)) signed int _X2f1Fi___1(){
     1188__attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)(void);
     1189__attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)(void);
     1190__attribute__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)(void);
     1191__attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___1)(void);
     1192__attribute__ ((unused,used)) signed int _X2f1Fi___1(void);
     1193__attribute__ ((unused)) signed int _X2f1Fi___1(void){
    11941194    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
    11951195}
    1196 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1();
    1197 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(){
     1196__attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1(void);
     1197__attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(void){
    11981198    __attribute__ ((unused)) signed int **const _X10_retval_f2KPPi_1;
    11991199}
     
    12061206    __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[];
    12071207}
    1208 __attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1())(signed int __param_0);
    1209 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1())(signed int __param_0){
     1208__attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1(void))(signed int __param_0);
     1209__attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1(void))(signed int __param_0){
    12101210    __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0);
    12111211}
    1212 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1())(signed int __param_0){
     1212__attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1(void))(signed int __param_0){
    12131213    __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0);
    12141214}
    1215 __attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1())(signed int __param_0){
     1215__attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1(void))(signed int __param_0){
    12161216    __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0);
    12171217}
    1218 signed int _X3vtrFi___1(){
     1218signed int _X3vtrFi___1(void){
    12191219    __attribute__ ((unused)) signed int _X11_retval_vtri_1;
    12201220    __attribute__ ((unused,unused,used)) signed int _X2t1i_2;
     
    12231223    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned long int )5)];
    12241224    __attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X2t5A0PPi_2[((unsigned long int )5)];
    1225     __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___2();
    1226     __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2();
     1225    __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___2(void);
     1226    __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2(void);
    12271227}
    12281228signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1);
     
    12381238    __attribute__ ((unused)) signed int _X12_retval_ipd3i_1;
    12391239}
    1240 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)());
    1241 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)()){
     1240signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void));
     1241signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){
    12421242    __attribute__ ((unused)) signed int _X12_retval_ipd4i_1;
    12431243}
     
    12461246signed int _X4tpr3Fi_Pi__1(__attribute__ ((unused,unused,unused)) signed int *_X3FooPi_1);
    12471247signed int _X4tpr4Fi_Fi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object2)(signed int __param_0[((unsigned long int )5)]));
    1248 signed int _X4tpr5Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
    1249 signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
     1248signed int _X4tpr5Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)(void));
     1249signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)(void));
    12501250signed int _X4tpr7Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object3)(signed int (*__param_0)(signed int __param_0)));
    1251 signed int _X2adFi___1(){
     1251signed int _X2adFi___1(void){
    12521252    __attribute__ ((unused)) signed int _X10_retval_adi_1;
    12531253    __attribute__ ((used,unused)) signed int _X3ad1i_2;
     
    12561256    __attribute__ ((unused,unused,unused,unused,unused)) signed int (*_X3ad4PA0i_2)[((unsigned long int )10)];
    12571257    __attribute__ ((unused,unused,unused,unused,used)) signed int _X3ad5i_2;
    1258     __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2();
     1258    __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2(void);
    12591259    {
    12601260        ((void)sizeof(__attribute__ ((unused,unused)) signed int ));
     
    12741274
    12751275    {
    1276         ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ()));
     1276        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (void)));
    12771277    }
    12781278
     
    13481348signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object6, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object7);
    13491349signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object8, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object9);
    1350 signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)());
     1350signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)(void), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)(void));
    13511351signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object12)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object13)(signed int __param_0));
    1352 signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)());
     1352signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)(void), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)(void));
    13531353signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)(__attribute__ ((unused)) signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(__attribute__ ((unused)) signed int __param_0));
    13541354struct Vad {
  • tests/.expect/attributes.x64.txt

    rad47ec4 r9bb6c5f  
    1 signed int _X2laFi___1(){
     1signed int _X2laFi___1(void){
    22    __attribute__ ((unused)) signed int _X10_retval_lai_1;
    33    {
     
    11791179
    11801180}
    1181 __attribute__ ((unused)) signed int _X1fFi___1() asm ( "xyz" );
     1181__attribute__ ((unused)) signed int _X1fFi___1(void) asm ( "xyz" );
    11821182__attribute__ ((used,used)) const signed int _X3vd1Ki_1;
    11831183__attribute__ ((used,unused)) const signed int _X3vd2Ki_1;
     
    11861186__attribute__ ((used,used,used)) const signed int _X3vd5A0Ki_1[((unsigned long int )5)];
    11871187__attribute__ ((used,used,unused,used)) const signed int _X3vd6A0Ki_1[((unsigned long int )5)];
    1188 __attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)();
    1189 __attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)();
    1190 __attribute__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)();
    1191 __attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___1)();
    1192 __attribute__ ((unused,used)) signed int _X2f1Fi___1();
    1193 __attribute__ ((unused)) signed int _X2f1Fi___1(){
     1188__attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)(void);
     1189__attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)(void);
     1190__attribute__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)(void);
     1191__attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___1)(void);
     1192__attribute__ ((unused,used)) signed int _X2f1Fi___1(void);
     1193__attribute__ ((unused)) signed int _X2f1Fi___1(void){
    11941194    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
    11951195}
    1196 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1();
    1197 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(){
     1196__attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1(void);
     1197__attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(void){
    11981198    __attribute__ ((unused)) signed int **const _X10_retval_f2KPPi_1;
    11991199}
     
    12061206    __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[];
    12071207}
    1208 __attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1())(signed int __param_0);
    1209 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1())(signed int __param_0){
     1208__attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1(void))(signed int __param_0);
     1209__attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1(void))(signed int __param_0){
    12101210    __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0);
    12111211}
    1212 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1())(signed int __param_0){
     1212__attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1(void))(signed int __param_0){
    12131213    __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0);
    12141214}
    1215 __attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1())(signed int __param_0){
     1215__attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1(void))(signed int __param_0){
    12161216    __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0);
    12171217}
    1218 signed int _X3vtrFi___1(){
     1218signed int _X3vtrFi___1(void){
    12191219    __attribute__ ((unused)) signed int _X11_retval_vtri_1;
    12201220    __attribute__ ((unused,unused,used)) signed int _X2t1i_2;
     
    12231223    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned long int )5)];
    12241224    __attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X2t5A0PPi_2[((unsigned long int )5)];
    1225     __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___2();
    1226     __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2();
     1225    __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___2(void);
     1226    __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2(void);
    12271227}
    12281228signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1);
     
    12381238    __attribute__ ((unused)) signed int _X12_retval_ipd3i_1;
    12391239}
    1240 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)());
    1241 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)()){
     1240signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void));
     1241signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){
    12421242    __attribute__ ((unused)) signed int _X12_retval_ipd4i_1;
    12431243}
     
    12461246signed int _X4tpr3Fi_Pi__1(__attribute__ ((unused,unused,unused)) signed int *_X3FooPi_1);
    12471247signed int _X4tpr4Fi_Fi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object2)(signed int __param_0[((unsigned long int )5)]));
    1248 signed int _X4tpr5Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
    1249 signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
     1248signed int _X4tpr5Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)(void));
     1249signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)(void));
    12501250signed int _X4tpr7Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object3)(signed int (*__param_0)(signed int __param_0)));
    1251 signed int _X2adFi___1(){
     1251signed int _X2adFi___1(void){
    12521252    __attribute__ ((unused)) signed int _X10_retval_adi_1;
    12531253    __attribute__ ((used,unused)) signed int _X3ad1i_2;
     
    12561256    __attribute__ ((unused,unused,unused,unused,unused)) signed int (*_X3ad4PA0i_2)[((unsigned long int )10)];
    12571257    __attribute__ ((unused,unused,unused,unused,used)) signed int _X3ad5i_2;
    1258     __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2();
     1258    __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2(void);
    12591259    {
    12601260        ((void)sizeof(__attribute__ ((unused,unused)) signed int ));
     
    12741274
    12751275    {
    1276         ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ()));
     1276        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (void)));
    12771277    }
    12781278
     
    13481348signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object6, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object7);
    13491349signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object8, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object9);
    1350 signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)());
     1350signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)(void), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)(void));
    13511351signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object12)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object13)(signed int __param_0));
    1352 signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)());
     1352signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)(void), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)(void));
    13531353signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)(__attribute__ ((unused)) signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(__attribute__ ((unused)) signed int __param_0));
    13541354struct Vad {
  • tests/.expect/attributes.x86.txt

    rad47ec4 r9bb6c5f  
    1 signed int _X2laFi___1(){
     1signed int _X2laFi___1(void){
    22    __attribute__ ((unused)) signed int _X10_retval_lai_1;
    33    {
     
    11791179
    11801180}
    1181 __attribute__ ((unused)) signed int _X1fFi___1() asm ( "xyz" );
     1181__attribute__ ((unused)) signed int _X1fFi___1(void) asm ( "xyz" );
    11821182__attribute__ ((used,used)) const signed int _X3vd1Ki_1;
    11831183__attribute__ ((used,unused)) const signed int _X3vd2Ki_1;
     
    11861186__attribute__ ((used,used,used)) const signed int _X3vd5A0Ki_1[((unsigned int )5)];
    11871187__attribute__ ((used,used,unused,used)) const signed int _X3vd6A0Ki_1[((unsigned int )5)];
    1188 __attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)();
    1189 __attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)();
    1190 __attribute__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)();
    1191 __attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___1)();
    1192 __attribute__ ((unused,used)) signed int _X2f1Fi___1();
    1193 __attribute__ ((unused)) signed int _X2f1Fi___1(){
     1188__attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)(void);
     1189__attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)(void);
     1190__attribute__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)(void);
     1191__attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___1)(void);
     1192__attribute__ ((unused,used)) signed int _X2f1Fi___1(void);
     1193__attribute__ ((unused)) signed int _X2f1Fi___1(void){
    11941194    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
    11951195}
    1196 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1();
    1197 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(){
     1196__attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1(void);
     1197__attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(void){
    11981198    __attribute__ ((unused)) signed int **const _X10_retval_f2KPPi_1;
    11991199}
     
    12061206    __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[];
    12071207}
    1208 __attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1())(signed int __param_0);
    1209 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1())(signed int __param_0){
     1208__attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1(void))(signed int __param_0);
     1209__attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1(void))(signed int __param_0){
    12101210    __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0);
    12111211}
    1212 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1())(signed int __param_0){
     1212__attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1(void))(signed int __param_0){
    12131213    __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0);
    12141214}
    1215 __attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1())(signed int __param_0){
     1215__attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1(void))(signed int __param_0){
    12161216    __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0);
    12171217}
    1218 signed int _X3vtrFi___1(){
     1218signed int _X3vtrFi___1(void){
    12191219    __attribute__ ((unused)) signed int _X11_retval_vtri_1;
    12201220    __attribute__ ((unused,unused,used)) signed int _X2t1i_2;
     
    12231223    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned int )5)];
    12241224    __attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X2t5A0PPi_2[((unsigned int )5)];
    1225     __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___2();
    1226     __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2();
     1225    __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___2(void);
     1226    __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2(void);
    12271227}
    12281228signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1);
     
    12381238    __attribute__ ((unused)) signed int _X12_retval_ipd3i_1;
    12391239}
    1240 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)());
    1241 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)()){
     1240signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void));
     1241signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){
    12421242    __attribute__ ((unused)) signed int _X12_retval_ipd4i_1;
    12431243}
     
    12461246signed int _X4tpr3Fi_Pi__1(__attribute__ ((unused,unused,unused)) signed int *_X3FooPi_1);
    12471247signed int _X4tpr4Fi_Fi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object2)(signed int __param_0[((unsigned int )5)]));
    1248 signed int _X4tpr5Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
    1249 signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
     1248signed int _X4tpr5Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)(void));
     1249signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)(void));
    12501250signed int _X4tpr7Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object3)(signed int (*__param_0)(signed int __param_0)));
    1251 signed int _X2adFi___1(){
     1251signed int _X2adFi___1(void){
    12521252    __attribute__ ((unused)) signed int _X10_retval_adi_1;
    12531253    __attribute__ ((used,unused)) signed int _X3ad1i_2;
     
    12561256    __attribute__ ((unused,unused,unused,unused,unused)) signed int (*_X3ad4PA0i_2)[((unsigned int )10)];
    12571257    __attribute__ ((unused,unused,unused,unused,used)) signed int _X3ad5i_2;
    1258     __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2();
     1258    __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2(void);
    12591259    {
    12601260        ((void)sizeof(__attribute__ ((unused,unused)) signed int ));
     
    12741274
    12751275    {
    1276         ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ()));
     1276        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (void)));
    12771277    }
    12781278
     
    13481348signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object6, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object7);
    13491349signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object8, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object9);
    1350 signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)());
     1350signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)(void), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)(void));
    13511351signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object12)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object13)(signed int __param_0));
    1352 signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)());
     1352signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)(void), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)(void));
    13531353signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)(__attribute__ ((unused)) signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(__attribute__ ((unused)) signed int __param_0));
    13541354struct Vad {
  • tests/.expect/castError.txt

    rad47ec4 r9bb6c5f  
    2121Cost ( 1, 0, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
    2222      Variable Expression: f: function
    23         accepting unspecified arguments
    2423      ... returning nothing
    2524
    2625      ... with resolved type:
    2726        pointer to function
    28           accepting unspecified arguments
    2927        ... returning nothing
    3028
  • tests/.expect/declarationSpecifier.arm64.txt

    rad47ec4 r9bb6c5f  
    647647_Thread_local signed int _X3x37i_1;
    648648__thread signed int _X3x38i_1;
    649 static inline volatile const signed int _X3f11Fi___1();
    650 static inline volatile const signed int _X3f12Fi___1();
    651 static inline volatile const signed int _X3f13Fi___1();
    652 static inline volatile const signed int _X3f14Fi___1();
    653 static inline volatile const signed int _X3f15Fi___1();
    654 static inline volatile const signed int _X3f16Fi___1();
    655 static inline volatile const signed int _X3f17Fi___1();
    656 static inline volatile const signed int _X3f18Fi___1();
    657 static inline volatile const signed short int _X3f21Fs___1();
    658 static inline volatile const signed short int _X3f22Fs___1();
    659 static inline volatile const signed short int _X3f23Fs___1();
    660 static inline volatile const signed short int _X3f24Fs___1();
    661 static inline volatile const signed short int _X3f25Fs___1();
    662 static inline volatile const signed short int _X3f26Fs___1();
    663 static inline volatile const signed short int _X3f27Fs___1();
    664 static inline volatile const signed short int _X3f28Fs___1();
     649static inline volatile const signed int _X3f11Fi___1(void);
     650static inline volatile const signed int _X3f12Fi___1(void);
     651static inline volatile const signed int _X3f13Fi___1(void);
     652static inline volatile const signed int _X3f14Fi___1(void);
     653static inline volatile const signed int _X3f15Fi___1(void);
     654static inline volatile const signed int _X3f16Fi___1(void);
     655static inline volatile const signed int _X3f17Fi___1(void);
     656static inline volatile const signed int _X3f18Fi___1(void);
     657static inline volatile const signed short int _X3f21Fs___1(void);
     658static inline volatile const signed short int _X3f22Fs___1(void);
     659static inline volatile const signed short int _X3f23Fs___1(void);
     660static inline volatile const signed short int _X3f24Fs___1(void);
     661static inline volatile const signed short int _X3f25Fs___1(void);
     662static inline volatile const signed short int _X3f26Fs___1(void);
     663static inline volatile const signed short int _X3f27Fs___1(void);
     664static inline volatile const signed short int _X3f28Fs___1(void);
    665665struct __anonymous14 {
    666666    signed int _X1ii_1;
     
    707707
    708708}
    709 static inline volatile const struct __anonymous14 _X3f31FS13__anonymous14___1();
     709static inline volatile const struct __anonymous14 _X3f31FS13__anonymous14___1(void);
    710710struct __anonymous15 {
    711711    signed int _X1ii_1;
     
    752752
    753753}
    754 static inline volatile const struct __anonymous15 _X3f32FS13__anonymous15___1();
     754static inline volatile const struct __anonymous15 _X3f32FS13__anonymous15___1(void);
    755755struct __anonymous16 {
    756756    signed int _X1ii_1;
     
    797797
    798798}
    799 static inline volatile const struct __anonymous16 _X3f33FS13__anonymous16___1();
     799static inline volatile const struct __anonymous16 _X3f33FS13__anonymous16___1(void);
    800800struct __anonymous17 {
    801801    signed int _X1ii_1;
     
    842842
    843843}
    844 static inline volatile const struct __anonymous17 _X3f34FS13__anonymous17___1();
     844static inline volatile const struct __anonymous17 _X3f34FS13__anonymous17___1(void);
    845845struct __anonymous18 {
    846846    signed int _X1ii_1;
     
    887887
    888888}
    889 static inline volatile const struct __anonymous18 _X3f35FS13__anonymous18___1();
     889static inline volatile const struct __anonymous18 _X3f35FS13__anonymous18___1(void);
    890890struct __anonymous19 {
    891891    signed int _X1ii_1;
     
    932932
    933933}
    934 static inline volatile const struct __anonymous19 _X3f36FS13__anonymous19___1();
     934static inline volatile const struct __anonymous19 _X3f36FS13__anonymous19___1(void);
    935935struct __anonymous20 {
    936936    signed int _X1ii_1;
     
    977977
    978978}
    979 static inline volatile const struct __anonymous20 _X3f37FS13__anonymous20___1();
     979static inline volatile const struct __anonymous20 _X3f37FS13__anonymous20___1(void);
    980980struct __anonymous21 {
    981981    signed int _X1ii_1;
     
    10221022
    10231023}
    1024 static inline volatile const struct __anonymous21 _X3f38FS13__anonymous21___1();
    1025 static inline volatile const signed short int _X3f41Fs___1();
    1026 static inline volatile const signed short int _X3f42Fs___1();
    1027 static inline volatile const signed short int _X3f43Fs___1();
    1028 static inline volatile const signed short int _X3f44Fs___1();
    1029 static inline volatile const signed short int _X3f45Fs___1();
    1030 static inline volatile const signed short int _X3f46Fs___1();
    1031 static inline volatile const signed short int _X3f47Fs___1();
    1032 static inline volatile const signed short int _X3f48Fs___1();
     1024static inline volatile const struct __anonymous21 _X3f38FS13__anonymous21___1(void);
     1025static inline volatile const signed short int _X3f41Fs___1(void);
     1026static inline volatile const signed short int _X3f42Fs___1(void);
     1027static inline volatile const signed short int _X3f43Fs___1(void);
     1028static inline volatile const signed short int _X3f44Fs___1(void);
     1029static inline volatile const signed short int _X3f45Fs___1(void);
     1030static inline volatile const signed short int _X3f46Fs___1(void);
     1031static inline volatile const signed short int _X3f47Fs___1(void);
     1032static inline volatile const signed short int _X3f48Fs___1(void);
    10331033signed int _X4mainFi_iPPKc__1(signed int _X4argci_1, const char **_X4argvPPKc_1){
    10341034    __attribute__ ((unused)) signed int _X12_retval_maini_1;
  • tests/.expect/declarationSpecifier.x64.txt

    rad47ec4 r9bb6c5f  
    647647_Thread_local signed int _X3x37i_1;
    648648__thread signed int _X3x38i_1;
    649 static inline volatile const signed int _X3f11Fi___1();
    650 static inline volatile const signed int _X3f12Fi___1();
    651 static inline volatile const signed int _X3f13Fi___1();
    652 static inline volatile const signed int _X3f14Fi___1();
    653 static inline volatile const signed int _X3f15Fi___1();
    654 static inline volatile const signed int _X3f16Fi___1();
    655 static inline volatile const signed int _X3f17Fi___1();
    656 static inline volatile const signed int _X3f18Fi___1();
    657 static inline volatile const signed short int _X3f21Fs___1();
    658 static inline volatile const signed short int _X3f22Fs___1();
    659 static inline volatile const signed short int _X3f23Fs___1();
    660 static inline volatile const signed short int _X3f24Fs___1();
    661 static inline volatile const signed short int _X3f25Fs___1();
    662 static inline volatile const signed short int _X3f26Fs___1();
    663 static inline volatile const signed short int _X3f27Fs___1();
    664 static inline volatile const signed short int _X3f28Fs___1();
     649static inline volatile const signed int _X3f11Fi___1(void);
     650static inline volatile const signed int _X3f12Fi___1(void);
     651static inline volatile const signed int _X3f13Fi___1(void);
     652static inline volatile const signed int _X3f14Fi___1(void);
     653static inline volatile const signed int _X3f15Fi___1(void);
     654static inline volatile const signed int _X3f16Fi___1(void);
     655static inline volatile const signed int _X3f17Fi___1(void);
     656static inline volatile const signed int _X3f18Fi___1(void);
     657static inline volatile const signed short int _X3f21Fs___1(void);
     658static inline volatile const signed short int _X3f22Fs___1(void);
     659static inline volatile const signed short int _X3f23Fs___1(void);
     660static inline volatile const signed short int _X3f24Fs___1(void);
     661static inline volatile const signed short int _X3f25Fs___1(void);
     662static inline volatile const signed short int _X3f26Fs___1(void);
     663static inline volatile const signed short int _X3f27Fs___1(void);
     664static inline volatile const signed short int _X3f28Fs___1(void);
    665665struct __anonymous14 {
    666666    signed int _X1ii_1;
     
    707707
    708708}
    709 static inline volatile const struct __anonymous14 _X3f31FS13__anonymous14___1();
     709static inline volatile const struct __anonymous14 _X3f31FS13__anonymous14___1(void);
    710710struct __anonymous15 {
    711711    signed int _X1ii_1;
     
    752752
    753753}
    754 static inline volatile const struct __anonymous15 _X3f32FS13__anonymous15___1();
     754static inline volatile const struct __anonymous15 _X3f32FS13__anonymous15___1(void);
    755755struct __anonymous16 {
    756756    signed int _X1ii_1;
     
    797797
    798798}
    799 static inline volatile const struct __anonymous16 _X3f33FS13__anonymous16___1();
     799static inline volatile const struct __anonymous16 _X3f33FS13__anonymous16___1(void);
    800800struct __anonymous17 {
    801801    signed int _X1ii_1;
     
    842842
    843843}
    844 static inline volatile const struct __anonymous17 _X3f34FS13__anonymous17___1();
     844static inline volatile const struct __anonymous17 _X3f34FS13__anonymous17___1(void);
    845845struct __anonymous18 {
    846846    signed int _X1ii_1;
     
    887887
    888888}
    889 static inline volatile const struct __anonymous18 _X3f35FS13__anonymous18___1();
     889static inline volatile const struct __anonymous18 _X3f35FS13__anonymous18___1(void);
    890890struct __anonymous19 {
    891891    signed int _X1ii_1;
     
    932932
    933933}
    934 static inline volatile const struct __anonymous19 _X3f36FS13__anonymous19___1();
     934static inline volatile const struct __anonymous19 _X3f36FS13__anonymous19___1(void);
    935935struct __anonymous20 {
    936936    signed int _X1ii_1;
     
    977977
    978978}
    979 static inline volatile const struct __anonymous20 _X3f37FS13__anonymous20___1();
     979static inline volatile const struct __anonymous20 _X3f37FS13__anonymous20___1(void);
    980980struct __anonymous21 {
    981981    signed int _X1ii_1;
     
    10221022
    10231023}
    1024 static inline volatile const struct __anonymous21 _X3f38FS13__anonymous21___1();
    1025 static inline volatile const signed short int _X3f41Fs___1();
    1026 static inline volatile const signed short int _X3f42Fs___1();
    1027 static inline volatile const signed short int _X3f43Fs___1();
    1028 static inline volatile const signed short int _X3f44Fs___1();
    1029 static inline volatile const signed short int _X3f45Fs___1();
    1030 static inline volatile const signed short int _X3f46Fs___1();
    1031 static inline volatile const signed short int _X3f47Fs___1();
    1032 static inline volatile const signed short int _X3f48Fs___1();
     1024static inline volatile const struct __anonymous21 _X3f38FS13__anonymous21___1(void);
     1025static inline volatile const signed short int _X3f41Fs___1(void);
     1026static inline volatile const signed short int _X3f42Fs___1(void);
     1027static inline volatile const signed short int _X3f43Fs___1(void);
     1028static inline volatile const signed short int _X3f44Fs___1(void);
     1029static inline volatile const signed short int _X3f45Fs___1(void);
     1030static inline volatile const signed short int _X3f46Fs___1(void);
     1031static inline volatile const signed short int _X3f47Fs___1(void);
     1032static inline volatile const signed short int _X3f48Fs___1(void);
    10331033signed int _X4mainFi_iPPKc__1(signed int _X4argci_1, const char **_X4argvPPKc_1){
    10341034    __attribute__ ((unused)) signed int _X12_retval_maini_1;
  • tests/.expect/declarationSpecifier.x86.txt

    rad47ec4 r9bb6c5f  
    647647_Thread_local signed int _X3x37i_1;
    648648__thread signed int _X3x38i_1;
    649 static inline volatile const signed int _X3f11Fi___1();
    650 static inline volatile const signed int _X3f12Fi___1();
    651 static inline volatile const signed int _X3f13Fi___1();
    652 static inline volatile const signed int _X3f14Fi___1();
    653 static inline volatile const signed int _X3f15Fi___1();
    654 static inline volatile const signed int _X3f16Fi___1();
    655 static inline volatile const signed int _X3f17Fi___1();
    656 static inline volatile const signed int _X3f18Fi___1();
    657 static inline volatile const signed short int _X3f21Fs___1();
    658 static inline volatile const signed short int _X3f22Fs___1();
    659 static inline volatile const signed short int _X3f23Fs___1();
    660 static inline volatile const signed short int _X3f24Fs___1();
    661 static inline volatile const signed short int _X3f25Fs___1();
    662 static inline volatile const signed short int _X3f26Fs___1();
    663 static inline volatile const signed short int _X3f27Fs___1();
    664 static inline volatile const signed short int _X3f28Fs___1();
     649static inline volatile const signed int _X3f11Fi___1(void);
     650static inline volatile const signed int _X3f12Fi___1(void);
     651static inline volatile const signed int _X3f13Fi___1(void);
     652static inline volatile const signed int _X3f14Fi___1(void);
     653static inline volatile const signed int _X3f15Fi___1(void);
     654static inline volatile const signed int _X3f16Fi___1(void);
     655static inline volatile const signed int _X3f17Fi___1(void);
     656static inline volatile const signed int _X3f18Fi___1(void);
     657static inline volatile const signed short int _X3f21Fs___1(void);
     658static inline volatile const signed short int _X3f22Fs___1(void);
     659static inline volatile const signed short int _X3f23Fs___1(void);
     660static inline volatile const signed short int _X3f24Fs___1(void);
     661static inline volatile const signed short int _X3f25Fs___1(void);
     662static inline volatile const signed short int _X3f26Fs___1(void);
     663static inline volatile const signed short int _X3f27Fs___1(void);
     664static inline volatile const signed short int _X3f28Fs___1(void);
    665665struct __anonymous14 {
    666666    signed int _X1ii_1;
     
    707707
    708708}
    709 static inline volatile const struct __anonymous14 _X3f31FS13__anonymous14___1();
     709static inline volatile const struct __anonymous14 _X3f31FS13__anonymous14___1(void);
    710710struct __anonymous15 {
    711711    signed int _X1ii_1;
     
    752752
    753753}
    754 static inline volatile const struct __anonymous15 _X3f32FS13__anonymous15___1();
     754static inline volatile const struct __anonymous15 _X3f32FS13__anonymous15___1(void);
    755755struct __anonymous16 {
    756756    signed int _X1ii_1;
     
    797797
    798798}
    799 static inline volatile const struct __anonymous16 _X3f33FS13__anonymous16___1();
     799static inline volatile const struct __anonymous16 _X3f33FS13__anonymous16___1(void);
    800800struct __anonymous17 {
    801801    signed int _X1ii_1;
     
    842842
    843843}
    844 static inline volatile const struct __anonymous17 _X3f34FS13__anonymous17___1();
     844static inline volatile const struct __anonymous17 _X3f34FS13__anonymous17___1(void);
    845845struct __anonymous18 {
    846846    signed int _X1ii_1;
     
    887887
    888888}
    889 static inline volatile const struct __anonymous18 _X3f35FS13__anonymous18___1();
     889static inline volatile const struct __anonymous18 _X3f35FS13__anonymous18___1(void);
    890890struct __anonymous19 {
    891891    signed int _X1ii_1;
     
    932932
    933933}
    934 static inline volatile const struct __anonymous19 _X3f36FS13__anonymous19___1();
     934static inline volatile const struct __anonymous19 _X3f36FS13__anonymous19___1(void);
    935935struct __anonymous20 {
    936936    signed int _X1ii_1;
     
    977977
    978978}
    979 static inline volatile const struct __anonymous20 _X3f37FS13__anonymous20___1();
     979static inline volatile const struct __anonymous20 _X3f37FS13__anonymous20___1(void);
    980980struct __anonymous21 {
    981981    signed int _X1ii_1;
     
    10221022
    10231023}
    1024 static inline volatile const struct __anonymous21 _X3f38FS13__anonymous21___1();
    1025 static inline volatile const signed short int _X3f41Fs___1();
    1026 static inline volatile const signed short int _X3f42Fs___1();
    1027 static inline volatile const signed short int _X3f43Fs___1();
    1028 static inline volatile const signed short int _X3f44Fs___1();
    1029 static inline volatile const signed short int _X3f45Fs___1();
    1030 static inline volatile const signed short int _X3f46Fs___1();
    1031 static inline volatile const signed short int _X3f47Fs___1();
    1032 static inline volatile const signed short int _X3f48Fs___1();
     1024static inline volatile const struct __anonymous21 _X3f38FS13__anonymous21___1(void);
     1025static inline volatile const signed short int _X3f41Fs___1(void);
     1026static inline volatile const signed short int _X3f42Fs___1(void);
     1027static inline volatile const signed short int _X3f43Fs___1(void);
     1028static inline volatile const signed short int _X3f44Fs___1(void);
     1029static inline volatile const signed short int _X3f45Fs___1(void);
     1030static inline volatile const signed short int _X3f46Fs___1(void);
     1031static inline volatile const signed short int _X3f47Fs___1(void);
     1032static inline volatile const signed short int _X3f48Fs___1(void);
    10331033signed int _X4mainFi_iPPKc__1(signed int _X4argci_1, const char **_X4argvPPKc_1){
    10341034    __attribute__ ((unused)) signed int _X12_retval_maini_1;
  • tests/.expect/extension.arm64.txt

    rad47ec4 r9bb6c5f  
    161161    _X1BKM1E_1,
    162162};
    163 __extension__ signed int _X1fFi___1();
     163__extension__ signed int _X1fFi___1(void);
    164164__extension__ signed int i;
    165165__extension__ signed int j;
  • tests/.expect/extension.x64.txt

    rad47ec4 r9bb6c5f  
    161161    _X1BKM1E_1,
    162162};
    163 __extension__ signed int _X1fFi___1();
     163__extension__ signed int _X1fFi___1(void);
    164164__extension__ signed int i;
    165165__extension__ signed int j;
  • tests/.expect/extension.x86.txt

    rad47ec4 r9bb6c5f  
    161161    _X1BKM1E_1,
    162162};
    163 __extension__ signed int _X1fFi___1();
     163__extension__ signed int _X1fFi___1(void);
    164164__extension__ signed int i;
    165165__extension__ signed int j;
  • tests/.expect/functions.arm64.txt

    rad47ec4 r9bb6c5f  
    1616
    1717}
    18 signed int _X2f1Fi___1(){
     18signed int _X2f1Fi___1(void){
    1919    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
    2020}
    21 signed int _X2f2Fi___1(){
     21signed int _X2f2Fi___1(void){
    2222    __attribute__ ((unused)) signed int _X10_retval_f2i_1;
    2323}
    24 signed int (*_X2f3FFi_____1())(){
    25     __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)();
    26 }
    27 signed int *_X2f4FPi___1(){
     24signed int (*_X2f3FFi_____1(void))(void){
     25    __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)(void);
     26}
     27signed int *_X2f4FPi___1(void){
    2828    __attribute__ ((unused)) signed int *_X10_retval_f4Pi_1;
    2929}
    30 signed int (*_X2f5FFi_____1())(){
    31     __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)();
    32 }
    33 signed int *_X2f6FPi___1(){
     30signed int (*_X2f5FFi_____1(void))(void){
     31    __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)(void);
     32}
     33signed int *_X2f6FPi___1(void){
    3434    __attribute__ ((unused)) signed int *_X10_retval_f6Pi_1;
    3535}
    36 signed int *_X2f7FPi___1(){
     36signed int *_X2f7FPi___1(void){
    3737    __attribute__ ((unused)) signed int *_X10_retval_f7Pi_1;
    3838}
    39 signed int **_X2f8FPPi___1(){
     39signed int **_X2f8FPPi___1(void){
    4040    __attribute__ ((unused)) signed int **_X10_retval_f8PPi_1;
    4141}
    42 signed int *const *_X2f9FPKPi___1(){
     42signed int *const *_X2f9FPKPi___1(void){
    4343    __attribute__ ((unused)) signed int *const *_X10_retval_f9PKPi_1;
    4444}
    45 signed int (*_X3f10FPA0i___1())[]{
     45signed int (*_X3f10FPA0i___1(void))[]{
    4646    __attribute__ ((unused)) signed int (*_X11_retval_f10PA0i_1)[];
    4747}
    48 signed int (*_X3f11FPA0A0i___1())[][((unsigned long int )3)]{
     48signed int (*_X3f11FPA0A0i___1(void))[][((unsigned long int )3)]{
    4949    __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned long int )3)];
    5050}
    51 signed int (*_X3f12FPA0A0i___1())[][((unsigned long int )3)]{
     51signed int (*_X3f12FPA0A0i___1(void))[][((unsigned long int )3)]{
    5252    __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned long int )3)];
    5353}
     
    6464    __attribute__ ((unused)) const signed int _X12_retval_fII4Ki_1;
    6565}
    66 signed int *_X4fII5FPi___1(){
     66signed int *_X4fII5FPi___1(void){
    6767    __attribute__ ((unused)) signed int *_X12_retval_fII5Pi_1;
    6868}
    69 signed int *const _X4fII6FPi___1(){
     69signed int *const _X4fII6FPi___1(void){
    7070    __attribute__ ((unused)) signed int *const _X12_retval_fII6KPi_1;
    7171}
    72 const signed long int *_X4fII7FPKl___1(){
     72const signed long int *_X4fII7FPKl___1(void){
    7373    __attribute__ ((unused)) const signed long int *_X12_retval_fII7PKl_1;
    7474}
    75 static const signed long int *_X4fII8FPKl___1(){
     75static const signed long int *_X4fII8FPKl___1(void){
    7676    __attribute__ ((unused)) const signed long int *_X12_retval_fII8PKl_1;
    7777}
    78 static const signed long int *_X4fII9FPKl___1(){
     78static const signed long int *_X4fII9FPKl___1(void){
    7979    __attribute__ ((unused)) const signed long int *_X12_retval_fII9PKl_1;
    8080}
     
    224224signed int _X3f11Fi_i__1(signed int __anonymous_object34);
    225225signed int _X3f12Fi___1(void);
    226 const double _X4bar1Fd___1();
     226const double _X4bar1Fd___1(void);
    227227const double _X4bar2Fd_i__1(signed int __anonymous_object35);
    228228const double _X4bar3Fd_d__1(double __anonymous_object36);
     
    290290    signed int (*(*_X1pPA0Fi_i__2)[])(signed int __param_0);
    291291}
    292 static const signed int *_X2f1FPKi___1(){
     292static const signed int *_X2f1FPKi___1(void){
    293293    __attribute__ ((unused)) const signed int *_X10_retval_f1PKi_1;
    294294}
     
    310310    __attribute__ ((unused)) const struct _conc__tuple2_3 _X10_retval_f5KT2PiKi_1;
    311311}
    312 signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(signed int (*__anonymous_object42)(), signed int *(*__anonymous_object43)(), signed int **(*__anonymous_object44)(), signed int *const *(*__anonymous_object45)(), signed int *const *const (*__anonymous_object46)(), signed int *__anonymous_object47, signed int __anonymous_object48[10], signed int **__anonymous_object49, signed int *__anonymous_object50[10], signed int ***__anonymous_object51, signed int **__anonymous_object52[10], signed int *const **__anonymous_object53, signed int *const *__anonymous_object54[10], signed int *const *const *__anonymous_object55, signed int *const *const __anonymous_object56[10]);
    313 signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object57)(), __attribute__ ((unused)) signed int *(*__anonymous_object58)(), __attribute__ ((unused)) signed int **(*__anonymous_object59)(), __attribute__ ((unused)) signed int *const *(*__anonymous_object60)(), __attribute__ ((unused)) signed int *const *const (*__anonymous_object61)(), __attribute__ ((unused)) signed int *__anonymous_object62, __attribute__ ((unused)) signed int __anonymous_object63[10], __attribute__ ((unused)) signed int **__anonymous_object64, __attribute__ ((unused)) signed int *__anonymous_object65[10], __attribute__ ((unused)) signed int ***__anonymous_object66, __attribute__ ((unused)) signed int **__anonymous_object67[10], __attribute__ ((unused)) signed int *const **__anonymous_object68, __attribute__ ((unused)) signed int *const *__anonymous_object69[10], __attribute__ ((unused)) signed int *const *const *__anonymous_object70, __attribute__ ((unused)) signed int *const *const __anonymous_object71[10]){
     312signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(signed int (*__anonymous_object42)(void), signed int *(*__anonymous_object43)(void), signed int **(*__anonymous_object44)(void), signed int *const *(*__anonymous_object45)(void), signed int *const *const (*__anonymous_object46)(void), signed int *__anonymous_object47, signed int __anonymous_object48[10], signed int **__anonymous_object49, signed int *__anonymous_object50[10], signed int ***__anonymous_object51, signed int **__anonymous_object52[10], signed int *const **__anonymous_object53, signed int *const *__anonymous_object54[10], signed int *const *const *__anonymous_object55, signed int *const *const __anonymous_object56[10]);
     313signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object57)(void), __attribute__ ((unused)) signed int *(*__anonymous_object58)(void), __attribute__ ((unused)) signed int **(*__anonymous_object59)(void), __attribute__ ((unused)) signed int *const *(*__anonymous_object60)(void), __attribute__ ((unused)) signed int *const *const (*__anonymous_object61)(void), __attribute__ ((unused)) signed int *__anonymous_object62, __attribute__ ((unused)) signed int __anonymous_object63[10], __attribute__ ((unused)) signed int **__anonymous_object64, __attribute__ ((unused)) signed int *__anonymous_object65[10], __attribute__ ((unused)) signed int ***__anonymous_object66, __attribute__ ((unused)) signed int **__anonymous_object67[10], __attribute__ ((unused)) signed int *const **__anonymous_object68, __attribute__ ((unused)) signed int *const *__anonymous_object69[10], __attribute__ ((unused)) signed int *const *const *__anonymous_object70, __attribute__ ((unused)) signed int *const *const __anonymous_object71[10]){
    314314    __attribute__ ((unused)) signed int _X9_retval_fi_1;
    315315}
  • tests/.expect/functions.x64.txt

    rad47ec4 r9bb6c5f  
    1616
    1717}
    18 signed int _X2f1Fi___1(){
     18signed int _X2f1Fi___1(void){
    1919    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
    2020}
    21 signed int _X2f2Fi___1(){
     21signed int _X2f2Fi___1(void){
    2222    __attribute__ ((unused)) signed int _X10_retval_f2i_1;
    2323}
    24 signed int (*_X2f3FFi_____1())(){
    25     __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)();
    26 }
    27 signed int *_X2f4FPi___1(){
     24signed int (*_X2f3FFi_____1(void))(void){
     25    __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)(void);
     26}
     27signed int *_X2f4FPi___1(void){
    2828    __attribute__ ((unused)) signed int *_X10_retval_f4Pi_1;
    2929}
    30 signed int (*_X2f5FFi_____1())(){
    31     __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)();
    32 }
    33 signed int *_X2f6FPi___1(){
     30signed int (*_X2f5FFi_____1(void))(void){
     31    __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)(void);
     32}
     33signed int *_X2f6FPi___1(void){
    3434    __attribute__ ((unused)) signed int *_X10_retval_f6Pi_1;
    3535}
    36 signed int *_X2f7FPi___1(){
     36signed int *_X2f7FPi___1(void){
    3737    __attribute__ ((unused)) signed int *_X10_retval_f7Pi_1;
    3838}
    39 signed int **_X2f8FPPi___1(){
     39signed int **_X2f8FPPi___1(void){
    4040    __attribute__ ((unused)) signed int **_X10_retval_f8PPi_1;
    4141}
    42 signed int *const *_X2f9FPKPi___1(){
     42signed int *const *_X2f9FPKPi___1(void){
    4343    __attribute__ ((unused)) signed int *const *_X10_retval_f9PKPi_1;
    4444}
    45 signed int (*_X3f10FPA0i___1())[]{
     45signed int (*_X3f10FPA0i___1(void))[]{
    4646    __attribute__ ((unused)) signed int (*_X11_retval_f10PA0i_1)[];
    4747}
    48 signed int (*_X3f11FPA0A0i___1())[][((unsigned long int )3)]{
     48signed int (*_X3f11FPA0A0i___1(void))[][((unsigned long int )3)]{
    4949    __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned long int )3)];
    5050}
    51 signed int (*_X3f12FPA0A0i___1())[][((unsigned long int )3)]{
     51signed int (*_X3f12FPA0A0i___1(void))[][((unsigned long int )3)]{
    5252    __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned long int )3)];
    5353}
     
    6464    __attribute__ ((unused)) const signed int _X12_retval_fII4Ki_1;
    6565}
    66 signed int *_X4fII5FPi___1(){
     66signed int *_X4fII5FPi___1(void){
    6767    __attribute__ ((unused)) signed int *_X12_retval_fII5Pi_1;
    6868}
    69 signed int *const _X4fII6FPi___1(){
     69signed int *const _X4fII6FPi___1(void){
    7070    __attribute__ ((unused)) signed int *const _X12_retval_fII6KPi_1;
    7171}
    72 const signed long int *_X4fII7FPKl___1(){
     72const signed long int *_X4fII7FPKl___1(void){
    7373    __attribute__ ((unused)) const signed long int *_X12_retval_fII7PKl_1;
    7474}
    75 static const signed long int *_X4fII8FPKl___1(){
     75static const signed long int *_X4fII8FPKl___1(void){
    7676    __attribute__ ((unused)) const signed long int *_X12_retval_fII8PKl_1;
    7777}
    78 static const signed long int *_X4fII9FPKl___1(){
     78static const signed long int *_X4fII9FPKl___1(void){
    7979    __attribute__ ((unused)) const signed long int *_X12_retval_fII9PKl_1;
    8080}
     
    224224signed int _X3f11Fi_i__1(signed int __anonymous_object34);
    225225signed int _X3f12Fi___1(void);
    226 const double _X4bar1Fd___1();
     226const double _X4bar1Fd___1(void);
    227227const double _X4bar2Fd_i__1(signed int __anonymous_object35);
    228228const double _X4bar3Fd_d__1(double __anonymous_object36);
     
    290290    signed int (*(*_X1pPA0Fi_i__2)[])(signed int __param_0);
    291291}
    292 static const signed int *_X2f1FPKi___1(){
     292static const signed int *_X2f1FPKi___1(void){
    293293    __attribute__ ((unused)) const signed int *_X10_retval_f1PKi_1;
    294294}
     
    310310    __attribute__ ((unused)) const struct _conc__tuple2_3 _X10_retval_f5KT2PiKi_1;
    311311}
    312 signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(signed int (*__anonymous_object42)(), signed int *(*__anonymous_object43)(), signed int **(*__anonymous_object44)(), signed int *const *(*__anonymous_object45)(), signed int *const *const (*__anonymous_object46)(), signed int *__anonymous_object47, signed int __anonymous_object48[10], signed int **__anonymous_object49, signed int *__anonymous_object50[10], signed int ***__anonymous_object51, signed int **__anonymous_object52[10], signed int *const **__anonymous_object53, signed int *const *__anonymous_object54[10], signed int *const *const *__anonymous_object55, signed int *const *const __anonymous_object56[10]);
    313 signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object57)(), __attribute__ ((unused)) signed int *(*__anonymous_object58)(), __attribute__ ((unused)) signed int **(*__anonymous_object59)(), __attribute__ ((unused)) signed int *const *(*__anonymous_object60)(), __attribute__ ((unused)) signed int *const *const (*__anonymous_object61)(), __attribute__ ((unused)) signed int *__anonymous_object62, __attribute__ ((unused)) signed int __anonymous_object63[10], __attribute__ ((unused)) signed int **__anonymous_object64, __attribute__ ((unused)) signed int *__anonymous_object65[10], __attribute__ ((unused)) signed int ***__anonymous_object66, __attribute__ ((unused)) signed int **__anonymous_object67[10], __attribute__ ((unused)) signed int *const **__anonymous_object68, __attribute__ ((unused)) signed int *const *__anonymous_object69[10], __attribute__ ((unused)) signed int *const *const *__anonymous_object70, __attribute__ ((unused)) signed int *const *const __anonymous_object71[10]){
     312signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(signed int (*__anonymous_object42)(void), signed int *(*__anonymous_object43)(void), signed int **(*__anonymous_object44)(void), signed int *const *(*__anonymous_object45)(void), signed int *const *const (*__anonymous_object46)(void), signed int *__anonymous_object47, signed int __anonymous_object48[10], signed int **__anonymous_object49, signed int *__anonymous_object50[10], signed int ***__anonymous_object51, signed int **__anonymous_object52[10], signed int *const **__anonymous_object53, signed int *const *__anonymous_object54[10], signed int *const *const *__anonymous_object55, signed int *const *const __anonymous_object56[10]);
     313signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object57)(void), __attribute__ ((unused)) signed int *(*__anonymous_object58)(void), __attribute__ ((unused)) signed int **(*__anonymous_object59)(void), __attribute__ ((unused)) signed int *const *(*__anonymous_object60)(void), __attribute__ ((unused)) signed int *const *const (*__anonymous_object61)(void), __attribute__ ((unused)) signed int *__anonymous_object62, __attribute__ ((unused)) signed int __anonymous_object63[10], __attribute__ ((unused)) signed int **__anonymous_object64, __attribute__ ((unused)) signed int *__anonymous_object65[10], __attribute__ ((unused)) signed int ***__anonymous_object66, __attribute__ ((unused)) signed int **__anonymous_object67[10], __attribute__ ((unused)) signed int *const **__anonymous_object68, __attribute__ ((unused)) signed int *const *__anonymous_object69[10], __attribute__ ((unused)) signed int *const *const *__anonymous_object70, __attribute__ ((unused)) signed int *const *const __anonymous_object71[10]){
    314314    __attribute__ ((unused)) signed int _X9_retval_fi_1;
    315315}
  • tests/.expect/functions.x86.txt

    rad47ec4 r9bb6c5f  
    1616
    1717}
    18 signed int _X2f1Fi___1(){
     18signed int _X2f1Fi___1(void){
    1919    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
    2020}
    21 signed int _X2f2Fi___1(){
     21signed int _X2f2Fi___1(void){
    2222    __attribute__ ((unused)) signed int _X10_retval_f2i_1;
    2323}
    24 signed int (*_X2f3FFi_____1())(){
    25     __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)();
    26 }
    27 signed int *_X2f4FPi___1(){
     24signed int (*_X2f3FFi_____1(void))(void){
     25    __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)(void);
     26}
     27signed int *_X2f4FPi___1(void){
    2828    __attribute__ ((unused)) signed int *_X10_retval_f4Pi_1;
    2929}
    30 signed int (*_X2f5FFi_____1())(){
    31     __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)();
    32 }
    33 signed int *_X2f6FPi___1(){
     30signed int (*_X2f5FFi_____1(void))(void){
     31    __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)(void);
     32}
     33signed int *_X2f6FPi___1(void){
    3434    __attribute__ ((unused)) signed int *_X10_retval_f6Pi_1;
    3535}
    36 signed int *_X2f7FPi___1(){
     36signed int *_X2f7FPi___1(void){
    3737    __attribute__ ((unused)) signed int *_X10_retval_f7Pi_1;
    3838}
    39 signed int **_X2f8FPPi___1(){
     39signed int **_X2f8FPPi___1(void){
    4040    __attribute__ ((unused)) signed int **_X10_retval_f8PPi_1;
    4141}
    42 signed int *const *_X2f9FPKPi___1(){
     42signed int *const *_X2f9FPKPi___1(void){
    4343    __attribute__ ((unused)) signed int *const *_X10_retval_f9PKPi_1;
    4444}
    45 signed int (*_X3f10FPA0i___1())[]{
     45signed int (*_X3f10FPA0i___1(void))[]{
    4646    __attribute__ ((unused)) signed int (*_X11_retval_f10PA0i_1)[];
    4747}
    48 signed int (*_X3f11FPA0A0i___1())[][((unsigned int )3)]{
     48signed int (*_X3f11FPA0A0i___1(void))[][((unsigned int )3)]{
    4949    __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned int )3)];
    5050}
    51 signed int (*_X3f12FPA0A0i___1())[][((unsigned int )3)]{
     51signed int (*_X3f12FPA0A0i___1(void))[][((unsigned int )3)]{
    5252    __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned int )3)];
    5353}
     
    6464    __attribute__ ((unused)) const signed int _X12_retval_fII4Ki_1;
    6565}
    66 signed int *_X4fII5FPi___1(){
     66signed int *_X4fII5FPi___1(void){
    6767    __attribute__ ((unused)) signed int *_X12_retval_fII5Pi_1;
    6868}
    69 signed int *const _X4fII6FPi___1(){
     69signed int *const _X4fII6FPi___1(void){
    7070    __attribute__ ((unused)) signed int *const _X12_retval_fII6KPi_1;
    7171}
    72 const signed long int *_X4fII7FPKl___1(){
     72const signed long int *_X4fII7FPKl___1(void){
    7373    __attribute__ ((unused)) const signed long int *_X12_retval_fII7PKl_1;
    7474}
    75 static const signed long int *_X4fII8FPKl___1(){
     75static const signed long int *_X4fII8FPKl___1(void){
    7676    __attribute__ ((unused)) const signed long int *_X12_retval_fII8PKl_1;
    7777}
    78 static const signed long int *_X4fII9FPKl___1(){
     78static const signed long int *_X4fII9FPKl___1(void){
    7979    __attribute__ ((unused)) const signed long int *_X12_retval_fII9PKl_1;
    8080}
     
    224224signed int _X3f11Fi_i__1(signed int __anonymous_object34);
    225225signed int _X3f12Fi___1(void);
    226 const double _X4bar1Fd___1();
     226const double _X4bar1Fd___1(void);
    227227const double _X4bar2Fd_i__1(signed int __anonymous_object35);
    228228const double _X4bar3Fd_d__1(double __anonymous_object36);
     
    290290    signed int (*(*_X1pPA0Fi_i__2)[])(signed int __param_0);
    291291}
    292 static const signed int *_X2f1FPKi___1(){
     292static const signed int *_X2f1FPKi___1(void){
    293293    __attribute__ ((unused)) const signed int *_X10_retval_f1PKi_1;
    294294}
     
    310310    __attribute__ ((unused)) const struct _conc__tuple2_3 _X10_retval_f5KT2PiKi_1;
    311311}
    312 signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(signed int (*__anonymous_object42)(), signed int *(*__anonymous_object43)(), signed int **(*__anonymous_object44)(), signed int *const *(*__anonymous_object45)(), signed int *const *const (*__anonymous_object46)(), signed int *__anonymous_object47, signed int __anonymous_object48[10], signed int **__anonymous_object49, signed int *__anonymous_object50[10], signed int ***__anonymous_object51, signed int **__anonymous_object52[10], signed int *const **__anonymous_object53, signed int *const *__anonymous_object54[10], signed int *const *const *__anonymous_object55, signed int *const *const __anonymous_object56[10]);
    313 signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object57)(), __attribute__ ((unused)) signed int *(*__anonymous_object58)(), __attribute__ ((unused)) signed int **(*__anonymous_object59)(), __attribute__ ((unused)) signed int *const *(*__anonymous_object60)(), __attribute__ ((unused)) signed int *const *const (*__anonymous_object61)(), __attribute__ ((unused)) signed int *__anonymous_object62, __attribute__ ((unused)) signed int __anonymous_object63[10], __attribute__ ((unused)) signed int **__anonymous_object64, __attribute__ ((unused)) signed int *__anonymous_object65[10], __attribute__ ((unused)) signed int ***__anonymous_object66, __attribute__ ((unused)) signed int **__anonymous_object67[10], __attribute__ ((unused)) signed int *const **__anonymous_object68, __attribute__ ((unused)) signed int *const *__anonymous_object69[10], __attribute__ ((unused)) signed int *const *const *__anonymous_object70, __attribute__ ((unused)) signed int *const *const __anonymous_object71[10]){
     312signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(signed int (*__anonymous_object42)(void), signed int *(*__anonymous_object43)(void), signed int **(*__anonymous_object44)(void), signed int *const *(*__anonymous_object45)(void), signed int *const *const (*__anonymous_object46)(void), signed int *__anonymous_object47, signed int __anonymous_object48[10], signed int **__anonymous_object49, signed int *__anonymous_object50[10], signed int ***__anonymous_object51, signed int **__anonymous_object52[10], signed int *const **__anonymous_object53, signed int *const *__anonymous_object54[10], signed int *const *const *__anonymous_object55, signed int *const *const __anonymous_object56[10]);
     313signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object57)(void), __attribute__ ((unused)) signed int *(*__anonymous_object58)(void), __attribute__ ((unused)) signed int **(*__anonymous_object59)(void), __attribute__ ((unused)) signed int *const *(*__anonymous_object60)(void), __attribute__ ((unused)) signed int *const *const (*__anonymous_object61)(void), __attribute__ ((unused)) signed int *__anonymous_object62, __attribute__ ((unused)) signed int __anonymous_object63[10], __attribute__ ((unused)) signed int **__anonymous_object64, __attribute__ ((unused)) signed int *__anonymous_object65[10], __attribute__ ((unused)) signed int ***__anonymous_object66, __attribute__ ((unused)) signed int **__anonymous_object67[10], __attribute__ ((unused)) signed int *const **__anonymous_object68, __attribute__ ((unused)) signed int *const *__anonymous_object69[10], __attribute__ ((unused)) signed int *const *const *__anonymous_object70, __attribute__ ((unused)) signed int *const *const __anonymous_object71[10]){
    314314    __attribute__ ((unused)) signed int _X9_retval_fi_1;
    315315}
  • tests/.expect/gccExtensions.arm64.txt

    rad47ec4 r9bb6c5f  
    1919    const signed int _X2i2Ki_2;
    2020    const signed int _X2i3Ki_2;
    21     inline signed int _X2f1Fi___2(){
     21    inline signed int _X2f1Fi___2(void){
    2222        __attribute__ ((unused)) signed int _X10_retval_f1i_2;
    2323    }
    24     inline signed int _X2f2Fi___2(){
     24    inline signed int _X2f2Fi___2(void){
    2525        __attribute__ ((unused)) signed int _X10_retval_f2i_2;
    2626    }
  • tests/.expect/gccExtensions.x64.txt

    rad47ec4 r9bb6c5f  
    1919    const signed int _X2i2Ki_2;
    2020    const signed int _X2i3Ki_2;
    21     inline signed int _X2f1Fi___2(){
     21    inline signed int _X2f1Fi___2(void){
    2222        __attribute__ ((unused)) signed int _X10_retval_f1i_2;
    2323    }
    24     inline signed int _X2f2Fi___2(){
     24    inline signed int _X2f2Fi___2(void){
    2525        __attribute__ ((unused)) signed int _X10_retval_f2i_2;
    2626    }
  • tests/.expect/gccExtensions.x86.txt

    rad47ec4 r9bb6c5f  
    1919    const signed int _X2i2Ki_2;
    2020    const signed int _X2i3Ki_2;
    21     inline signed int _X2f1Fi___2(){
     21    inline signed int _X2f1Fi___2(void){
    2222        __attribute__ ((unused)) signed int _X10_retval_f1i_2;
    2323    }
    24     inline signed int _X2f2Fi___2(){
     24    inline signed int _X2f2Fi___2(void){
    2525        __attribute__ ((unused)) signed int _X10_retval_f2i_2;
    2626    }
  • tests/castError.cfa

    rad47ec4 r9bb6c5f  
    1 // 
     1//
    22// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
    33//
    44// The contents of this file are covered under the licence agreement in the
    55// file "LICENCE" distributed with Cforall.
    6 // 
     6//
    77// castError.cfa -- test invalid casts
    8 // 
     8//
    99// Author           : Peter A. Buhr
    1010// Created On       : Tue Feb 19 21:15:39 2019
     
    1212// Last Modified On : Tue Feb 19 21:16:44 2019
    1313// Update Count     : 1
    14 // 
     14//
    1515
    1616forall(T) struct S { T p; };
  • tests/errors/.expect/declaration.txt

    rad47ec4 r9bb6c5f  
    2020
    2121errors/declaration.cfa:24:1 error: duplicate const qualifier(s) in declaration of f01: static inline function
    22   with no parameters
     22  with parameters
     23    void
    2324  returning const volatile int
    2425
    2526
    2627errors/declaration.cfa:25:1 error: duplicate volatile qualifier(s) in declaration of f02: static inline function
    27   with no parameters
     28  with parameters
     29    void
    2830  returning const volatile int
    2931
    3032
    3133errors/declaration.cfa:26:1 error: duplicate const qualifier(s) in declaration of f03: static inline function
    32   with no parameters
     34  with parameters
     35    void
    3336  returning const volatile int
    3437
    3538
    3639errors/declaration.cfa:27:1 error: duplicate volatile qualifier(s) in declaration of f04: static inline function
    37   with no parameters
     40  with parameters
     41    void
    3842  returning const volatile int
    3943
    4044
    4145errors/declaration.cfa:28:1 error: duplicate const qualifier(s) in declaration of f05: static inline function
    42   with no parameters
     46  with parameters
     47    void
    4348  returning const volatile int
    4449
    4550
    4651errors/declaration.cfa:29:1 error: duplicate volatile qualifier(s) in declaration of f06: static inline function
    47   with no parameters
     52  with parameters
     53    void
    4854  returning const volatile int
    4955
    5056
    5157errors/declaration.cfa:30:1 error: duplicate const qualifier(s) in declaration of f07: static inline function
    52   with no parameters
     58  with parameters
     59    void
    5360  returning const volatile int
    5461
    5562
    5663errors/declaration.cfa:31:1 error: duplicate const volatile qualifier(s) in declaration of f08: static inline function
    57   with no parameters
     64  with parameters
     65    void
    5866  returning const volatile int
    5967
    6068
    6169errors/declaration.cfa:33:1 error: duplicate const volatile qualifier(s) in declaration of f09: static inline function
    62   with no parameters
     70  with parameters
     71    void
    6372  returning const volatile int
    6473
    6574
    6675errors/declaration.cfa:34:1 error: duplicate const qualifier(s), duplicate _Atomic qualifier(s), duplicate _Atomic qualifier(s), duplicate const restrict volatile qualifier(s) in declaration of f09: static inline function
    67   with no parameters
     76  with parameters
     77    void
    6878  returning const restrict volatile _Atomic int
    6979
  • tests/errors/.expect/signature.txt

    rad47ec4 r9bb6c5f  
    22errors/signature.cfa:3:1 error: Constructors, destructors, and assignment functions require at least one parameter.
    33errors/signature.cfa:4:1 error: Constructors, destructors, and assignment functions require at least one parameter.
    4 errors/signature.cfa:5:1 error: First parameter of a constructor, destructor, or assignment function must be a reference.
    5 errors/signature.cfa:6:1 error: First parameter of a constructor, destructor, or assignment function must be a reference.
    6 errors/signature.cfa:7:1 error: First parameter of a constructor, destructor, or assignment function must be a reference.
     4errors/signature.cfa:5:1 error: Constructors, destructors, and assignment functions require at least one parameter.
     5errors/signature.cfa:6:1 error: Constructors, destructors, and assignment functions require at least one parameter.
     6errors/signature.cfa:7:1 error: Constructors, destructors, and assignment functions require at least one parameter.
    77errors/signature.cfa:10:1 error: First parameter of a constructor, destructor, or assignment function must be a reference.
    88errors/signature.cfa:11:1 error: First parameter of a constructor, destructor, or assignment function must be a reference.
  • tests/errors/declaration.cfa

    rad47ec4 r9bb6c5f  
    1 // 
     1//
    22// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
    33//
    44// The contents of this file are covered under the licence agreement in the
    55// file "LICENCE" distributed with Cforall.
    6 // 
    7 // declarationErrors.cfa -- 
    8 // 
     6//
     7// declarationErrors.cfa --
     8//
    99// Author           : Peter A. Buhr
    1010// Created On       : Wed Aug 17 08:23:43 2016
     
    1212// Last Modified On : Tue Nov  6 17:52:47 2018
    1313// Update Count     : 32
    14 // 
     14//
    1515
    1616static short int volatile static const x1;                              // duplicate static
  • tests/gccExtensions.cfa

    rad47ec4 r9bb6c5f  
    1 // 
     1//
    22// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
    33//
    44// The contents of this file are covered under the licence agreement in the
    55// file "LICENCE" distributed with Cforall.
    6 // 
    7 // gccExtensions.cfa -- 
    8 // 
     6//
     7// gccExtensions.cfa --
     8//
    99// Author           : Peter A. Buhr
    1010// Created On       : Sun Aug 14 17:28:17 2016
     
    1212// Last Modified On : Mon Aug  5 18:04:37 2019
    1313// Update Count     : 28
    14 // 
     14//
    1515
    1616extern int x asm( "xx" );
  • tests/meta/.expect/arch.arm64.txt

    rad47ec4 r9bb6c5f  
    2121Cost ( 1, 0, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
    2222      Variable Expression: FA64: function
    23         accepting unspecified arguments
    2423      ... returning nothing
    2524
    2625      ... with resolved type:
    2726        pointer to function
    28           accepting unspecified arguments
    2927        ... returning nothing
    3028
  • tests/meta/.expect/arch.x64.txt

    rad47ec4 r9bb6c5f  
    2121Cost ( 1, 0, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
    2222      Variable Expression: FX64: function
    23         accepting unspecified arguments
    2423      ... returning nothing
    2524
    2625      ... with resolved type:
    2726        pointer to function
    28           accepting unspecified arguments
    2927        ... returning nothing
    3028
  • tests/meta/.expect/arch.x86.txt

    rad47ec4 r9bb6c5f  
    2121Cost ( 1, 0, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
    2222      Variable Expression: FX86: function
    23         accepting unspecified arguments
    2423      ... returning nothing
    2524
    2625      ... with resolved type:
    2726        pointer to function
    28           accepting unspecified arguments
    2927        ... returning nothing
    3028
Note: See TracChangeset for help on using the changeset viewer.