Changes in / [9bb6c5f:ad47ec4]


Ignore:
Files:
40 edited

Legend:

Unmodified
Added
Removed
  • doc/bibliography/pl.bib

    r9bb6c5f rad47ec4  
    1 
    21% Conventions: uncross-referenced entries appear first, then
    32%    cross-referenced entries.  In both groups, entries are sorted by their
     
    58515850    contributer = {pabuhr@plg},
    58525851    author      = {Leslie Lamport},
    5853     title       = {A New Solution of {D}ijkstra's Concurrent Programming Problem},
     5852    title       = {A New Solution of Dijkstra's Concurrent Programming Problem},
    58545853    journal     = cacm,
    58555854    month       = aug,
     
    68106809    year        = 1981,
    68116810    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},
    68256811}
    68266812
  • doc/theses/fangren_yu_MMath/intro.tex

    r9bb6c5f rad47ec4  
    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 \emph{naming things}. --- Phil Karlton
     8There are only two hard things in Computer Science: cache invalidation and 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 \section{Types}
     17\subsection{Operator Overloading}
    1818
    19 \begin{quote}
    20 Some 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 
    23 All 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.
    24 A programming language and its compiler present ways to declare types that ultimately map into those provided by the underlying hardware.
    25 These language types are thrust upon programmers, with their syntactic and semantic rules, and resulting restrictions.
    26 A language type-system defines these rules and uses them to understand how an expression is to be evaluated by the hardware.
    27 Modern programming-languages allow user-defined types and generalize across multiple types using polymorphism.
    28 Type 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.
    29 Expressibility, 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 
    34 Virtually all programming languages overload the arithmetic operators across the basic computational types using the number and type of parameters and returns.
     19Virtually all programming languages overload the arithmetic operators across the basic types using the number and type of parameters and returns.
    3520Like \CC, \CFA also allows these operators to be overloaded with user-defined types.
    36 The syntax for operator names uses the @'?'@ character to denote a function parameter, \eg prefix, postfix, and infix increment operators: @++?@, @?++@, and @?+?@.
    37 Here, a user-defined type is extended with an addition operation with the same syntax as builtin types.
     21The syntax for operator names uses the @'?'@ character to denote a parameter, \eg prefix and infix increment operators: @?++@, @++?@, and @?+?@.
    3822\begin{cfa}
    3923struct S { int i, j };
     
    4125S s1, s2;
    4226s1 = s1 @+@ s2;                 $\C[1.75in]{// infix call}$
    43 s1 = @?+?@( s1, s2 );   $\C{// direct call using operator name}\CRT$
     27s1 = @?+?@( s1, s2 );   $\C{// direct call}\CRT$
    4428\end{cfa}
    4529The type system examines each call size and selects the best matching overloaded function based on the number and types of the arguments.
    46 If 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).
    47 Conversions are necessary because the hardware rarely supports mix-mode operations, so both operands must be the same type.
    48 Note, without implicit conversions, programmers must write an exponential number of functions covering all possible exact-match cases among all possible types.
    49 This approach does not match with programmer intuition and expectation, regardless of any \emph{safety} issues resulting from converted values.
     30If 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).
    5031
    5132
    52 \section{Function Overloading}
     33\subsection{Function Overloading}
    5334
    5435Both \CFA and \CC allow function names to be overloaded, as long as their prototypes differ in the number and type of parameters and returns.
    5536\begin{cfa}
    56 void f( void );                 $\C[2in]{// (1): no parameter}$
     37void f( void );                 $\C[1.75in]{// (1): no parameter}$
    5738void f( char );                 $\C{// (2): overloaded on the number and parameter type}$
    5839void f( int, int );             $\C{// (3): overloaded on the number and parameter type}$
     
    6445
    6546Ada, Scala, and \CFA type-systems also use the return type in resolving a call, to pinpoint the best overloaded name.
    66 For example, in many programming languages with overloading, the following functions are ambiguous without using the return type.
    6747\begin{cfa}
    68 int f( int );                   $\C[2in]{// (1); overloaded on return type and parameter}$
    69 double f( int );                $\C{// (2); overloaded on return type and parameter}$
    70 int i = f( 3 );                 $\C{// select (1)}$
    71 double d = f( 3 );              $\C{// select (2)}\CRT$
     48int f( void );                  $\C[1.75in]{// (4); overloaded on return type}$
     49double f( void );               $\C{// (5); overloaded on return type}$
     50int i = f();                    $\C{// select (4)}$
     51double d = f();                 $\C{// select (5)}\CRT$
    7252\end{cfa}
    73 However, if the type system looks at the return type, there is an exact match for each call, which matches with programmer intuition and expectation.
    74 This capability can be taken to the extreme, where there are no function parameters.
    75 \begin{cfa}
    76 int random( void );             $\C[2in]{// (1); overloaded on return type}$
    77 double random( void );  $\C{// (2); overloaded on return type}$
    78 int i = random();               $\C{// select (1)}$
    79 double d = random();    $\C{// select (2)}\CRT$
    80 \end{cfa}
    81 Again, there is an exact match for each call.
    82 If there is no exact match, a set of minimal conversions can be added to find a best match, as for operator overloading.
    8353
    8454
    85 \section{Variable Overloading}
    86 
    87 Unlike 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.)
     55\subsection{Variable Overloading}
     56Unlike almost all programming languages, \CFA has variable overloading within a scope, along with shadow overloading in nested scopes.
    8957\begin{cfa}
    9058void foo( double d );
    91 int v;                              $\C[2in]{// (1)}$
     59int v;                              $\C[1.75in]{// (1)}$
    9260double v;                               $\C{// (2) variable overloading}$
    9361foo( v );                               $\C{// select (2)}$
     
    9866}
    9967\end{cfa}
    100 It 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 
    102 In \CFA, the type system simply treats overloaded variables as an overloaded function returning a value with no parameters.
     68The \CFA type system simply treats overloaded variables as an overloaded function returning a value with no parameters.
    10369Hence, no significant effort is required to support this feature.
    104 Leveraging the return type to disambiguate is essential because variables have no parameters.
    105 \begin{cfa}
    106 int MAX = 2147483647;   $\C[2in]{// (1); overloaded on return type}$
    107 double MAX = ...;               $\C{// (2); overloaded on return type}$
    108 int i = MAX;                    $\C{// select (1)}$
    109 double d = MAX;                 $\C{// select (2)}\CRT$
    110 \end{cfa}
    111 
    112 
    113 \section{Type Inferencing}
    114 
    115 One of the first and powerful type-inferencing system is Hindley--Milner~\cite{Damas82}.
    116 Here, 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}
    118 auto 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 }
    124 auto w = f();                   $\C{// typing flows outwards}$
    125 
    126 void 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 }
    130 s = 1;   t = 3.5;               $\C{// set types from constants}$
    131 f( s, t );                              $\C{// typing flows inwards}$
    132 \end{cfa}
    133 In 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.
    134 Note, 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@.
    135 Inferring type constraints, by analysing the body of @f@ is possible, and these constraints must be satisfied at each call site by the argument types;
    136 in this case, parametric polymorphism can allow separate compilation.
    137 In languages with type inferencing, there is often limited overloading to reduce the search space, which introduces the naming problem.
    138 Return-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 
    140 In 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
    147 typeof(expr) x = expr;
    148 int y;
    149 typeof(y) z = y;
    150 \end{cfa}
    151 &
    152 \begin{cfa}
    153 
    154 auto x = 3.0 * 4;
    155 int y;
    156 auto 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}
    167 The two important capabilities are:
    168 \begin{itemize}[topsep=0pt]
    169 \item
    170 Not determining or writing long generic types, \eg, given deeply nested generic types.
    171 \begin{cfa}
    172 typedef T1(int).T2(float).T3(char).T ST;  $\C{// \CFA nested type declaration}$
    173 ST x, y, x;
    174 \end{cfa}
    175 This issue is exaggerated with \CC templates, where type names are 100s of characters long, resulting in unreadable error messages.
    176 \item
    177 Ensuring the type of secondary variables, always matches a primary variable.
    178 \begin{cfa}
    179 int x; $\C{// primary variable}$
    180 typeof(x) y, z, w; $\C{// secondary variables match x's type}$
    181 \end{cfa}
    182 If the type of @x@ changes, the types of the secondary variables correspondingly update.
    183 \end{itemize}
    184 Note, the use of @typeof@ is more restrictive, and possibly safer, than general type-inferencing.
    185 \begin{cfa}
    186 int x;
    187 type(x) y = ... // complex expression
    188 type(x) z = ... // complex expression
    189 \end{cfa}
    190 Here, 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 
    195 Each 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
    198 There can be large blocks of code where all declarations are @auto@.
    199 As a result, understanding and changing the code becomes almost impossible.
    200 Types provide important clues as to the behaviour of the code, and correspondingly to correctly change or add new code.
    201 In 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
    203 The problem of unknown types becomes acute when the concrete type must be used, \eg, given:
    204 \begin{cfa}
    205 auto x = @...@
    206 \end{cfa}
    207 and the need to write a routine to compute using @x@
    208 \begin{cfa}
    209 void rtn( @...@ parm );
    210 rtn( x );
    211 \end{cfa}
    212 A programmer must re-engineer the type of @x@'s initialization expression, reconstructing the possibly long generic type-name.
    213 In this situation, having the type name or its short alias is essential.
    214 \item
    215 There is the conundrum in type inferencing of when to \emph{brand} a type.
    216 That is, when is the type of the variable/function more important than the type of its initialization expression.
    217 For example, if a change is made in an initialization expression, it can cause cascading type changes and/or errors.
    218 At some point, a variable's type needs to remain constant and the expression needs to be modified or in error when it changes.
    219 Often type-inferencing systems allow \newterm{branding} a variable or function type;
    220 now the complier can report a mismatch on the constant.
    221 \begin{cfa}
    222 void 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 }
    226 s = 1;   t = 3.5;
    227 f( s, @t@ ); // type mismatch
    228 \end{cfa}
    229 In 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.
    233 Type inferencing defeats this goal because there is no left-hand type.
    234 Fundamentally, type inferencing tries to magic away types from the programmer.
    235 However, this results in lazy programming with the potential for poor performance and safety concerns.
    236 Types are as important as control-flow, and should not be masked, even if it requires the programmer to think!
    237 A similar example is garbage collection, where storage management is masked, resulting in poor program design and performance.
    238 The entire area of Computer-Science data-structures is obsessed with time and space, and that obsession should continue into regular programming.
    239 Understanding space and time issues are an essential part of the programming craft.
    240 Given @typedef@ and @typeof@ in \CFA, and the strong need to use the left-hand type in resolution, implicit type-inferencing is unsupported.
    241 Should 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

    r9bb6c5f rad47ec4  
    8787\end{cfa}
    8888
    89 Note, \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]
     89Note, \CC has the same safe restriction~\cite[C.1.5.7.2]{C++} and provides the same workaround cast.
     90\begin{description}[parsep=0pt]
    9291\item[Change:] \CC objects of enumeration type can only be assigned values of the same enumeration type.
    9392In C, objects of enumeration type can be assigned values of any integral type.
     
    103102\item[How widely used:] Common.
    104103\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

    r9bb6c5f rad47ec4  
    353353whereas C @const@ declarations without @static@ are marked @R@.
    354354
    355 The 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]
     355The 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]
    358357\item[Change:] In \CC, the type of an enumerator is its enumeration.
    359358In C, the type of an enumerator is @int@.
     
    371370Taking the size of an enumerator is not a common C coding practice.
    372371\end{description}
    373 \hfill ISO/IEC 14882:1998 (\CC Programming Language Standard)~\cite[C.1.5.7.2.6]{ANSI98:C++}
    374 \end{cquote}
    375372Hence, the values in a \CC enumeration can only be its enumerators (without a cast).
    376373
  • libcfa/prelude/prototypes.awk

    r9bb6c5f rad47ec4  
    103103
    104104        for ( prototype in prototypes ) {
     105                # printf( "//\"%s\"\n", prototype )
    105106                if ( index( "BT_LAST", prototype ) == 1 ) {
    106107                        continue
     
    125126
    126127                # generate function parameter types as macro
    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;
     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
    137144                                } # if
    138145                        } # for
    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
     146                } # if
    144147                printf( ")\n" )
    145148        } # for
  • libcfa/src/concurrency/future.hfa

    r9bb6c5f rad47ec4  
    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

    r9bb6c5f rad47ec4  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Sep  4 11:30:12 2024
    13 // Update Count     : 2040
     12// Last Modified On : Sat Aug 17 12:31:47 2024
     13// Update Count     : 2038
    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 
    10701066                        if ( check && len >= rwd && ! eof( is ) ) {     // might not fit
    10711067                                char peek;
     
    10911087                                else args = fmt( is, fmtstr, s, &len );
    10921088
    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 
    10961089                                if ( check && len == rwd && ! eof( is ) ) {     // might not fit
    10971090                                        char peek;
     
    11131106                                else args = fmt( is, fmtstr, s, &len );
    11141107                                // 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 
    11191108                                if ( check && len == rwd && ! eof( is ) ) {     // might not fit
    11201109                                        // fprintf( stderr, "overflow\n" );
  • src/CodeGen/CodeGenerator.cpp

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

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

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

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

    r9bb6c5f rad47ec4  
    15411541
    15421542// The argument flag (is/is not var-args) of a computed property.
    1543 static ast::ArgumentFlag buildArgumentFlag( const TypeData * td ) {
     1543static ast::ArgumentFlag argumentFlag( const TypeData * td ) {
    15441544        assert( td->kind == TypeData::Function );
    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.
    1551 static 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 }
     1545        bool isVaArgs = !td->function.params || td->function.params->hasEllipsis;
     1546        return (isVaArgs) ? ast::VariableArgs : ast::FixedArgs;
     1547} // argumentFlag
    15581548
    15591549
     
    15721562        std::vector<ast::ptr<ast::DeclWithType>> params;
    15731563        std::vector<ast::ptr<ast::DeclWithType>> returns;
    1574         buildParamList( td->function.params, params );
     1564        buildList( td->function.params, params );
    15751565        buildForall( td->forall, forall );
    15761566        // Functions do not store their assertions there anymore.
     
    16201610                std::move( attributes ),
    16211611                funcSpec,
    1622                 buildArgumentFlag( td )
     1612                argumentFlag( td )
    16231613        );
    16241614        buildList( td->function.withExprs, decl->withExprs );
     
    16721662        assert( td->kind == TypeData::Function );
    16731663        ast::FunctionType * ft = new ast::FunctionType(
    1674                 buildArgumentFlag( td ),
     1664                argumentFlag( td ),
    16751665                buildQualifiers( td )
    16761666        );
  • src/Parser/parser.yy

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

    r9bb6c5f rad47ec4  
    9898    __attribute__ ((unused)) signed int _X11_retval_f15i_1;
    9999}
    100 const signed int _X4fredFi___1(void){
     100const signed int _X4fredFi___1(){
    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

    r9bb6c5f rad47ec4  
    9898    __attribute__ ((unused)) signed int _X11_retval_f15i_1;
    9999}
    100 const signed int _X4fredFi___1(void){
     100const signed int _X4fredFi___1(){
    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

    r9bb6c5f rad47ec4  
    9898    __attribute__ ((unused)) signed int _X11_retval_f15i_1;
    9999}
    100 const signed int _X4fredFi___1(void){
     100const signed int _X4fredFi___1(){
    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

    r9bb6c5f rad47ec4  
    1 signed int _X2laFi___1(void){
     1signed int _X2laFi___1(){
    22    __attribute__ ((unused)) signed int _X10_retval_lai_1;
    33    {
     
    11791179
    11801180}
    1181 __attribute__ ((unused)) signed int _X1fFi___1(void) asm ( "xyz" );
     1181__attribute__ ((unused)) signed int _X1fFi___1() 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)(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){
     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(){
    11941194    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
    11951195}
    1196 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1(void);
    1197 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(void){
     1196__attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1();
     1197__attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(){
    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(void))(signed int __param_0);
    1209 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1(void))(signed int __param_0){
     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){
    12101210    __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0);
    12111211}
    1212 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1(void))(signed int __param_0){
     1212__attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1())(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(void))(signed int __param_0){
     1215__attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1())(signed int __param_0){
    12161216    __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0);
    12171217}
    1218 signed int _X3vtrFi___1(void){
     1218signed int _X3vtrFi___1(){
    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(void);
    1226     __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2(void);
     1225    __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___2();
     1226    __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2();
    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)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void));
    1241 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){
     1240signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)());
     1241signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)()){
    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)(void));
    1249 signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)(void));
     1248signed int _X4tpr5Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
     1249signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
    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(void){
     1251signed int _X2adFi___1(){
    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(void);
     1258    __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2();
    12591259    {
    12601260        ((void)sizeof(__attribute__ ((unused,unused)) signed int ));
     
    12741274
    12751275    {
    1276         ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (void)));
     1276        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ()));
    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)(void), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)(void));
     1350signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)());
    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)(void), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)(void));
     1352signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)());
    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

    r9bb6c5f rad47ec4  
    1 signed int _X2laFi___1(void){
     1signed int _X2laFi___1(){
    22    __attribute__ ((unused)) signed int _X10_retval_lai_1;
    33    {
     
    11791179
    11801180}
    1181 __attribute__ ((unused)) signed int _X1fFi___1(void) asm ( "xyz" );
     1181__attribute__ ((unused)) signed int _X1fFi___1() 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)(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){
     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(){
    11941194    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
    11951195}
    1196 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1(void);
    1197 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(void){
     1196__attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1();
     1197__attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(){
    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(void))(signed int __param_0);
    1209 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1(void))(signed int __param_0){
     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){
    12101210    __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0);
    12111211}
    1212 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1(void))(signed int __param_0){
     1212__attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1())(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(void))(signed int __param_0){
     1215__attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1())(signed int __param_0){
    12161216    __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0);
    12171217}
    1218 signed int _X3vtrFi___1(void){
     1218signed int _X3vtrFi___1(){
    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(void);
    1226     __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2(void);
     1225    __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___2();
     1226    __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2();
    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)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void));
    1241 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){
     1240signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)());
     1241signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)()){
    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)(void));
    1249 signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)(void));
     1248signed int _X4tpr5Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
     1249signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
    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(void){
     1251signed int _X2adFi___1(){
    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(void);
     1258    __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2();
    12591259    {
    12601260        ((void)sizeof(__attribute__ ((unused,unused)) signed int ));
     
    12741274
    12751275    {
    1276         ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (void)));
     1276        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ()));
    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)(void), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)(void));
     1350signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)());
    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)(void), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)(void));
     1352signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)());
    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

    r9bb6c5f rad47ec4  
    1 signed int _X2laFi___1(void){
     1signed int _X2laFi___1(){
    22    __attribute__ ((unused)) signed int _X10_retval_lai_1;
    33    {
     
    11791179
    11801180}
    1181 __attribute__ ((unused)) signed int _X1fFi___1(void) asm ( "xyz" );
     1181__attribute__ ((unused)) signed int _X1fFi___1() 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)(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){
     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(){
    11941194    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
    11951195}
    1196 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1(void);
    1197 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(void){
     1196__attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1();
     1197__attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(){
    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(void))(signed int __param_0);
    1209 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1(void))(signed int __param_0){
     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){
    12101210    __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0);
    12111211}
    1212 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1(void))(signed int __param_0){
     1212__attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1())(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(void))(signed int __param_0){
     1215__attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1())(signed int __param_0){
    12161216    __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0);
    12171217}
    1218 signed int _X3vtrFi___1(void){
     1218signed int _X3vtrFi___1(){
    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(void);
    1226     __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2(void);
     1225    __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___2();
     1226    __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2();
    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)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void));
    1241 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(void), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)(void)){
     1240signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)());
     1241signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)()){
    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)(void));
    1249 signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)(void));
     1248signed int _X4tpr5Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
     1249signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
    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(void){
     1251signed int _X2adFi___1(){
    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(void);
     1258    __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2();
    12591259    {
    12601260        ((void)sizeof(__attribute__ ((unused,unused)) signed int ));
     
    12741274
    12751275    {
    1276         ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (void)));
     1276        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ()));
    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)(void), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)(void));
     1350signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)());
    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)(void), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)(void));
     1352signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)());
    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

    r9bb6c5f rad47ec4  
    2121Cost ( 1, 0, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
    2222      Variable Expression: f: function
     23        accepting unspecified arguments
    2324      ... returning nothing
    2425
    2526      ... with resolved type:
    2627        pointer to function
     28          accepting unspecified arguments
    2729        ... returning nothing
    2830
  • tests/.expect/declarationSpecifier.arm64.txt

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

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

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

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

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

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

    r9bb6c5f rad47ec4  
    1616
    1717}
    18 signed int _X2f1Fi___1(void){
     18signed int _X2f1Fi___1(){
    1919    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
    2020}
    21 signed int _X2f2Fi___1(void){
     21signed int _X2f2Fi___1(){
    2222    __attribute__ ((unused)) signed int _X10_retval_f2i_1;
    2323}
    24 signed int (*_X2f3FFi_____1(void))(void){
    25     __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)(void);
    26 }
    27 signed int *_X2f4FPi___1(void){
     24signed int (*_X2f3FFi_____1())(){
     25    __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)();
     26}
     27signed int *_X2f4FPi___1(){
    2828    __attribute__ ((unused)) signed int *_X10_retval_f4Pi_1;
    2929}
    30 signed int (*_X2f5FFi_____1(void))(void){
    31     __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)(void);
    32 }
    33 signed int *_X2f6FPi___1(void){
     30signed int (*_X2f5FFi_____1())(){
     31    __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)();
     32}
     33signed int *_X2f6FPi___1(){
    3434    __attribute__ ((unused)) signed int *_X10_retval_f6Pi_1;
    3535}
    36 signed int *_X2f7FPi___1(void){
     36signed int *_X2f7FPi___1(){
    3737    __attribute__ ((unused)) signed int *_X10_retval_f7Pi_1;
    3838}
    39 signed int **_X2f8FPPi___1(void){
     39signed int **_X2f8FPPi___1(){
    4040    __attribute__ ((unused)) signed int **_X10_retval_f8PPi_1;
    4141}
    42 signed int *const *_X2f9FPKPi___1(void){
     42signed int *const *_X2f9FPKPi___1(){
    4343    __attribute__ ((unused)) signed int *const *_X10_retval_f9PKPi_1;
    4444}
    45 signed int (*_X3f10FPA0i___1(void))[]{
     45signed int (*_X3f10FPA0i___1())[]{
    4646    __attribute__ ((unused)) signed int (*_X11_retval_f10PA0i_1)[];
    4747}
    48 signed int (*_X3f11FPA0A0i___1(void))[][((unsigned long int )3)]{
     48signed int (*_X3f11FPA0A0i___1())[][((unsigned long int )3)]{
    4949    __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned long int )3)];
    5050}
    51 signed int (*_X3f12FPA0A0i___1(void))[][((unsigned long int )3)]{
     51signed int (*_X3f12FPA0A0i___1())[][((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(void){
     66signed int *_X4fII5FPi___1(){
    6767    __attribute__ ((unused)) signed int *_X12_retval_fII5Pi_1;
    6868}
    69 signed int *const _X4fII6FPi___1(void){
     69signed int *const _X4fII6FPi___1(){
    7070    __attribute__ ((unused)) signed int *const _X12_retval_fII6KPi_1;
    7171}
    72 const signed long int *_X4fII7FPKl___1(void){
     72const signed long int *_X4fII7FPKl___1(){
    7373    __attribute__ ((unused)) const signed long int *_X12_retval_fII7PKl_1;
    7474}
    75 static const signed long int *_X4fII8FPKl___1(void){
     75static const signed long int *_X4fII8FPKl___1(){
    7676    __attribute__ ((unused)) const signed long int *_X12_retval_fII8PKl_1;
    7777}
    78 static const signed long int *_X4fII9FPKl___1(void){
     78static const signed long int *_X4fII9FPKl___1(){
    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(void);
     226const double _X4bar1Fd___1();
    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(void){
     292static const signed int *_X2f1FPKi___1(){
    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)(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]);
    313 signed 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]){
     312signed 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]);
     313signed 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]){
    314314    __attribute__ ((unused)) signed int _X9_retval_fi_1;
    315315}
  • tests/.expect/functions.x64.txt

    r9bb6c5f rad47ec4  
    1616
    1717}
    18 signed int _X2f1Fi___1(void){
     18signed int _X2f1Fi___1(){
    1919    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
    2020}
    21 signed int _X2f2Fi___1(void){
     21signed int _X2f2Fi___1(){
    2222    __attribute__ ((unused)) signed int _X10_retval_f2i_1;
    2323}
    24 signed int (*_X2f3FFi_____1(void))(void){
    25     __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)(void);
    26 }
    27 signed int *_X2f4FPi___1(void){
     24signed int (*_X2f3FFi_____1())(){
     25    __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)();
     26}
     27signed int *_X2f4FPi___1(){
    2828    __attribute__ ((unused)) signed int *_X10_retval_f4Pi_1;
    2929}
    30 signed int (*_X2f5FFi_____1(void))(void){
    31     __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)(void);
    32 }
    33 signed int *_X2f6FPi___1(void){
     30signed int (*_X2f5FFi_____1())(){
     31    __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)();
     32}
     33signed int *_X2f6FPi___1(){
    3434    __attribute__ ((unused)) signed int *_X10_retval_f6Pi_1;
    3535}
    36 signed int *_X2f7FPi___1(void){
     36signed int *_X2f7FPi___1(){
    3737    __attribute__ ((unused)) signed int *_X10_retval_f7Pi_1;
    3838}
    39 signed int **_X2f8FPPi___1(void){
     39signed int **_X2f8FPPi___1(){
    4040    __attribute__ ((unused)) signed int **_X10_retval_f8PPi_1;
    4141}
    42 signed int *const *_X2f9FPKPi___1(void){
     42signed int *const *_X2f9FPKPi___1(){
    4343    __attribute__ ((unused)) signed int *const *_X10_retval_f9PKPi_1;
    4444}
    45 signed int (*_X3f10FPA0i___1(void))[]{
     45signed int (*_X3f10FPA0i___1())[]{
    4646    __attribute__ ((unused)) signed int (*_X11_retval_f10PA0i_1)[];
    4747}
    48 signed int (*_X3f11FPA0A0i___1(void))[][((unsigned long int )3)]{
     48signed int (*_X3f11FPA0A0i___1())[][((unsigned long int )3)]{
    4949    __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned long int )3)];
    5050}
    51 signed int (*_X3f12FPA0A0i___1(void))[][((unsigned long int )3)]{
     51signed int (*_X3f12FPA0A0i___1())[][((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(void){
     66signed int *_X4fII5FPi___1(){
    6767    __attribute__ ((unused)) signed int *_X12_retval_fII5Pi_1;
    6868}
    69 signed int *const _X4fII6FPi___1(void){
     69signed int *const _X4fII6FPi___1(){
    7070    __attribute__ ((unused)) signed int *const _X12_retval_fII6KPi_1;
    7171}
    72 const signed long int *_X4fII7FPKl___1(void){
     72const signed long int *_X4fII7FPKl___1(){
    7373    __attribute__ ((unused)) const signed long int *_X12_retval_fII7PKl_1;
    7474}
    75 static const signed long int *_X4fII8FPKl___1(void){
     75static const signed long int *_X4fII8FPKl___1(){
    7676    __attribute__ ((unused)) const signed long int *_X12_retval_fII8PKl_1;
    7777}
    78 static const signed long int *_X4fII9FPKl___1(void){
     78static const signed long int *_X4fII9FPKl___1(){
    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(void);
     226const double _X4bar1Fd___1();
    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(void){
     292static const signed int *_X2f1FPKi___1(){
    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)(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]);
    313 signed 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]){
     312signed 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]);
     313signed 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]){
    314314    __attribute__ ((unused)) signed int _X9_retval_fi_1;
    315315}
  • tests/.expect/functions.x86.txt

    r9bb6c5f rad47ec4  
    1616
    1717}
    18 signed int _X2f1Fi___1(void){
     18signed int _X2f1Fi___1(){
    1919    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
    2020}
    21 signed int _X2f2Fi___1(void){
     21signed int _X2f2Fi___1(){
    2222    __attribute__ ((unused)) signed int _X10_retval_f2i_1;
    2323}
    24 signed int (*_X2f3FFi_____1(void))(void){
    25     __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)(void);
    26 }
    27 signed int *_X2f4FPi___1(void){
     24signed int (*_X2f3FFi_____1())(){
     25    __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)();
     26}
     27signed int *_X2f4FPi___1(){
    2828    __attribute__ ((unused)) signed int *_X10_retval_f4Pi_1;
    2929}
    30 signed int (*_X2f5FFi_____1(void))(void){
    31     __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)(void);
    32 }
    33 signed int *_X2f6FPi___1(void){
     30signed int (*_X2f5FFi_____1())(){
     31    __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)();
     32}
     33signed int *_X2f6FPi___1(){
    3434    __attribute__ ((unused)) signed int *_X10_retval_f6Pi_1;
    3535}
    36 signed int *_X2f7FPi___1(void){
     36signed int *_X2f7FPi___1(){
    3737    __attribute__ ((unused)) signed int *_X10_retval_f7Pi_1;
    3838}
    39 signed int **_X2f8FPPi___1(void){
     39signed int **_X2f8FPPi___1(){
    4040    __attribute__ ((unused)) signed int **_X10_retval_f8PPi_1;
    4141}
    42 signed int *const *_X2f9FPKPi___1(void){
     42signed int *const *_X2f9FPKPi___1(){
    4343    __attribute__ ((unused)) signed int *const *_X10_retval_f9PKPi_1;
    4444}
    45 signed int (*_X3f10FPA0i___1(void))[]{
     45signed int (*_X3f10FPA0i___1())[]{
    4646    __attribute__ ((unused)) signed int (*_X11_retval_f10PA0i_1)[];
    4747}
    48 signed int (*_X3f11FPA0A0i___1(void))[][((unsigned int )3)]{
     48signed int (*_X3f11FPA0A0i___1())[][((unsigned int )3)]{
    4949    __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned int )3)];
    5050}
    51 signed int (*_X3f12FPA0A0i___1(void))[][((unsigned int )3)]{
     51signed int (*_X3f12FPA0A0i___1())[][((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(void){
     66signed int *_X4fII5FPi___1(){
    6767    __attribute__ ((unused)) signed int *_X12_retval_fII5Pi_1;
    6868}
    69 signed int *const _X4fII6FPi___1(void){
     69signed int *const _X4fII6FPi___1(){
    7070    __attribute__ ((unused)) signed int *const _X12_retval_fII6KPi_1;
    7171}
    72 const signed long int *_X4fII7FPKl___1(void){
     72const signed long int *_X4fII7FPKl___1(){
    7373    __attribute__ ((unused)) const signed long int *_X12_retval_fII7PKl_1;
    7474}
    75 static const signed long int *_X4fII8FPKl___1(void){
     75static const signed long int *_X4fII8FPKl___1(){
    7676    __attribute__ ((unused)) const signed long int *_X12_retval_fII8PKl_1;
    7777}
    78 static const signed long int *_X4fII9FPKl___1(void){
     78static const signed long int *_X4fII9FPKl___1(){
    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(void);
     226const double _X4bar1Fd___1();
    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(void){
     292static const signed int *_X2f1FPKi___1(){
    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)(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]);
    313 signed 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]){
     312signed 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]);
     313signed 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]){
    314314    __attribute__ ((unused)) signed int _X9_retval_fi_1;
    315315}
  • tests/.expect/gccExtensions.arm64.txt

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

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

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

    r9bb6c5f rad47ec4  
    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

    r9bb6c5f rad47ec4  
    2020
    2121errors/declaration.cfa:24:1 error: duplicate const qualifier(s) in declaration of f01: static inline function
    22   with parameters
    23     void
     22  with no parameters
    2423  returning const volatile int
    2524
    2625
    2726errors/declaration.cfa:25:1 error: duplicate volatile qualifier(s) in declaration of f02: static inline function
    28   with parameters
    29     void
     27  with no parameters
    3028  returning const volatile int
    3129
    3230
    3331errors/declaration.cfa:26:1 error: duplicate const qualifier(s) in declaration of f03: static inline function
    34   with parameters
    35     void
     32  with no parameters
    3633  returning const volatile int
    3734
    3835
    3936errors/declaration.cfa:27:1 error: duplicate volatile qualifier(s) in declaration of f04: static inline function
    40   with parameters
    41     void
     37  with no parameters
    4238  returning const volatile int
    4339
    4440
    4541errors/declaration.cfa:28:1 error: duplicate const qualifier(s) in declaration of f05: static inline function
    46   with parameters
    47     void
     42  with no parameters
    4843  returning const volatile int
    4944
    5045
    5146errors/declaration.cfa:29:1 error: duplicate volatile qualifier(s) in declaration of f06: static inline function
    52   with parameters
    53     void
     47  with no parameters
    5448  returning const volatile int
    5549
    5650
    5751errors/declaration.cfa:30:1 error: duplicate const qualifier(s) in declaration of f07: static inline function
    58   with parameters
    59     void
     52  with no parameters
    6053  returning const volatile int
    6154
    6255
    6356errors/declaration.cfa:31:1 error: duplicate const volatile qualifier(s) in declaration of f08: static inline function
    64   with parameters
    65     void
     57  with no parameters
    6658  returning const volatile int
    6759
    6860
    6961errors/declaration.cfa:33:1 error: duplicate const volatile qualifier(s) in declaration of f09: static inline function
    70   with parameters
    71     void
     62  with no parameters
    7263  returning const volatile int
    7364
    7465
    7566errors/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
    76   with parameters
    77     void
     67  with no parameters
    7868  returning const restrict volatile _Atomic int
    7969
  • tests/errors/.expect/signature.txt

    r9bb6c5f rad47ec4  
    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: Constructors, destructors, and assignment functions require at least one parameter.
    5 errors/signature.cfa:6:1 error: Constructors, destructors, and assignment functions require at least one parameter.
    6 errors/signature.cfa:7:1 error: Constructors, destructors, and assignment functions require at least one parameter.
     4errors/signature.cfa:5:1 error: First parameter of a constructor, destructor, or assignment function must be a reference.
     5errors/signature.cfa:6:1 error: First parameter of a constructor, destructor, or assignment function must be a reference.
     6errors/signature.cfa:7:1 error: First parameter of a constructor, destructor, or assignment function must be a reference.
    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

    r9bb6c5f rad47ec4  
    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

    r9bb6c5f rad47ec4  
    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

    r9bb6c5f rad47ec4  
    2121Cost ( 1, 0, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
    2222      Variable Expression: FA64: function
     23        accepting unspecified arguments
    2324      ... returning nothing
    2425
    2526      ... with resolved type:
    2627        pointer to function
     28          accepting unspecified arguments
    2729        ... returning nothing
    2830
  • tests/meta/.expect/arch.x64.txt

    r9bb6c5f rad47ec4  
    2121Cost ( 1, 0, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
    2222      Variable Expression: FX64: function
     23        accepting unspecified arguments
    2324      ... returning nothing
    2425
    2526      ... with resolved type:
    2627        pointer to function
     28          accepting unspecified arguments
    2729        ... returning nothing
    2830
  • tests/meta/.expect/arch.x86.txt

    r9bb6c5f rad47ec4  
    2121Cost ( 1, 0, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
    2222      Variable Expression: FX86: function
     23        accepting unspecified arguments
    2324      ... returning nothing
    2425
    2526      ... with resolved type:
    2627        pointer to function
     28          accepting unspecified arguments
    2729        ... returning nothing
    2830
Note: See TracChangeset for help on using the changeset viewer.