Changes in / [ad47ec4:9bb6c5f]
- Files:
-
- 40 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/bibliography/pl.bib
rad47ec4 r9bb6c5f 1 1 2 % Conventions: uncross-referenced entries appear first, then 2 3 % cross-referenced entries. In both groups, entries are sorted by their … … 5850 5851 contributer = {pabuhr@plg}, 5851 5852 author = {Leslie Lamport}, 5852 title = {A New Solution of Dijkstra's Concurrent Programming Problem},5853 title = {A New Solution of {D}ijkstra's Concurrent Programming Problem}, 5853 5854 journal = cacm, 5854 5855 month = aug, … … 6809 6810 year = 1981, 6810 6811 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}, 6811 6825 } 6812 6826 -
doc/theses/fangren_yu_MMath/intro.tex
rad47ec4 r9bb6c5f 6 6 Overloading allows programmers to use the most meaningful names without fear of name clashes within a program or from external sources, like include files. 7 7 \begin{quote} 8 There are only two hard things in Computer Science: cache invalidation and naming things. --- Phil Karlton8 There are only two hard things in Computer Science: cache invalidation and \emph{naming things}. --- Phil Karlton 9 9 \end{quote} 10 10 Experience 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. … … 15 15 16 16 17 \subsection{Operator Overloading} 18 19 Virtually all programming languages overload the arithmetic operators across the basic types using the number and type of parameters and returns. 17 \section{Types} 18 19 \begin{quote} 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. 20 35 Like \CC, \CFA also allows these operators to be overloaded with user-defined types. 21 The syntax for operator names uses the @'?'@ character to denote a parameter, \eg prefix and infix increment operators: @?++@, @++?@, and @?+?@. 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. 22 38 \begin{cfa} 23 39 struct S { int i, j }; … … 25 41 S s1, s2; 26 42 s1 = s1 @+@ s2; $\C[1.75in]{// infix call}$ 27 s1 = @?+?@( s1, s2 ); $\C{// direct call }\CRT$43 s1 = @?+?@( s1, s2 ); $\C{// direct call using operator name}\CRT$ 28 44 \end{cfa} 29 45 The type system examines each call size and selects the best matching overloaded function based on the number and types of the arguments. 30 If there are mixed-mode operands, @2 + 3.5@, the type system, like in C/\CC, attempts (safe) conversions, converting the argument type(s) to the parameter type(s). 31 32 33 \subsection{Function Overloading} 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. 50 51 52 \section{Function Overloading} 34 53 35 54 Both \CFA and \CC allow function names to be overloaded, as long as their prototypes differ in the number and type of parameters and returns. 36 55 \begin{cfa} 37 void f( void ); $\C[ 1.75in]{// (1): no parameter}$56 void f( void ); $\C[2in]{// (1): no parameter}$ 38 57 void f( char ); $\C{// (2): overloaded on the number and parameter type}$ 39 58 void f( int, int ); $\C{// (3): overloaded on the number and parameter type}$ … … 45 64 46 65 Ada, Scala, and \CFA type-systems also use the return type in resolving a call, to pinpoint the best overloaded name. 47 \begin{cfa} 48 int f( void ); $\C[1.75in]{// (4); overloaded on return type}$ 49 double f( void ); $\C{// (5); overloaded on return type}$ 50 int i = f(); $\C{// select (4)}$ 51 double d = f(); $\C{// select (5)}\CRT$ 52 \end{cfa} 53 54 55 \subsection{Variable Overloading} 56 Unlike almost all programming languages, \CFA has variable overloading within a scope, along with shadow overloading in nested scopes. 66 For example, in many programming languages with overloading, the following functions are ambiguous without using the return type. 67 \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$ 72 \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. 83 84 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.) 57 89 \begin{cfa} 58 90 void foo( double d ); 59 int v; $\C[ 1.75in]{// (1)}$91 int v; $\C[2in]{// (1)}$ 60 92 double v; $\C{// (2) variable overloading}$ 61 93 foo( v ); $\C{// select (2)}$ … … 66 98 } 67 99 \end{cfa} 68 The \CFA type system simply treats overloaded variables as an overloaded function returning a value with no parameters. 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. 69 103 Hence, 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
rad47ec4 r9bb6c5f 87 87 \end{cfa} 88 88 89 Note, \CC has the same safe restriction~\cite[C.1.5.7.2]{C++} and provides the same workaround cast. 90 \begin{description}[parsep=0pt] 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] 91 92 \item[Change:] \CC objects of enumeration type can only be assigned values of the same enumeration type. 92 93 In C, objects of enumeration type can be assigned values of any integral type. … … 102 103 \item[How widely used:] Common. 103 104 \end{description} 105 \hfill ISO/IEC 14882:1998 (\CC Programming Language Standard)~\cite[C.1.5.7.2.5]{ANSI98:C++} 106 \end{cquote} -
doc/theses/jiada_liang_MMath/relatedwork.tex
rad47ec4 r9bb6c5f 353 353 whereas C @const@ declarations without @static@ are marked @R@. 354 354 355 The following \CC non-backward compatible change is made~\cite[C.1.5.7.2]{C++}, plus the safe-assignment change shown in~\VRef{s:TypeSafety}. 356 \begin{description}[parsep=0pt] 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] 357 358 \item[Change:] In \CC, the type of an enumerator is its enumeration. 358 359 In C, the type of an enumerator is @int@. … … 370 371 Taking the size of an enumerator is not a common C coding practice. 371 372 \end{description} 373 \hfill ISO/IEC 14882:1998 (\CC Programming Language Standard)~\cite[C.1.5.7.2.6]{ANSI98:C++} 374 \end{cquote} 372 375 Hence, the values in a \CC enumeration can only be its enumerators (without a cast). 373 376 -
libcfa/prelude/prototypes.awk
rad47ec4 r9bb6c5f 103 103 104 104 for ( prototype in prototypes ) { 105 # printf( "//\"%s\"\n", prototype )106 105 if ( index( "BT_LAST", prototype ) == 1 ) { 107 106 continue … … 126 125 127 126 # generate function parameter types as macro 128 if ( index( prototype, "VAR" ) != 2 ) { # C-style empty parameters ? 129 for ( p = 0; length( prototype ) > 0; p += 1 ) { # until all parameters types are removed 130 sub( "_", "", prototype) # remove "_" 131 printf( ", ", type ) 132 temp = prototype 133 for ( t = 0; t < N; t += 1 ) { # find longest match 134 type = types[t]; 135 if ( index( prototype, type ) == 1 ) { # found match 136 printf( "BT_%s", type ) 137 sub( type, "", prototype ) 138 break; 139 } # if 140 } # for 141 if ( temp == prototype ) { # no match found for parameter in macro table 142 printf( "\n********** MISSING TYPE \"%s\" **********\n", prototype ) 143 exit 0 127 for ( p = 0; length( prototype ) > 0; p += 1 ) { # until all parameters types are removed 128 sub( "_", "", prototype) # remove "_" 129 printf( ", ", type ) 130 temp = prototype 131 for ( t = 0; t < N; t += 1 ) { # find longest match 132 type = types[t]; 133 if ( index( prototype, type ) == 1 ) { # found match 134 printf( "BT_%s", type ) 135 sub( type, "", prototype ) 136 break; 144 137 } # if 145 138 } # for 146 } # if 139 if ( temp == prototype ) { # no match found for parameter in macro table 140 printf( "\n********** MISSING TYPE \"%s\" **********\n", prototype ) 141 exit 0 142 } # if 143 } # for 147 144 printf( ")\n" ) 148 145 } # for -
libcfa/src/concurrency/future.hfa
rad47ec4 r9bb6c5f 88 88 if ( s.clause_status == 0p ) // poke in result so that woken threads do not need to reacquire any locks 89 89 copy_T( result, *(((future_node(T) &)s).my_result) ); 90 90 91 91 wake_one( waiters, s ); 92 92 } … … 146 146 } 147 147 unlock( lock ); 148 148 149 149 return [ret_val, false]; 150 150 } … … 154 154 155 155 // 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 ) { 157 157 if ( !__make_select_node_available( s ) ) { // we didn't win the race so give up on registering 158 158 unlock( lock ); … … 180 180 return false; 181 181 } 182 182 183 183 bool on_selected( future(T) & this, select_node & node ) { return true; } 184 184 } -
libcfa/src/iostream.cfa
rad47ec4 r9bb6c5f 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Aug 17 12:31:47202413 // Update Count : 20 3812 // Last Modified On : Wed Sep 4 11:30:12 2024 13 // Update Count : 2040 14 14 // 15 15 … … 512 512 if ( cnt == 1 && f.flags.left ) { wd = f.wd; f.wd = maxdig; } // copy f.wd and reset for printing middle chunk 513 513 // 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 ); 515 515 (ostype &)(os | f); 516 516 if ( cnt == 1 ) { … … 554 554 if ( f.flags.neg ) f.val = -f.val; 555 555 // 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 ); 557 557 (ostype &)(os | f); 558 558 … … 597 597 "y", "z", "a", "f", "p", "n", "u", "m", "", 598 598 "K", "M", "G", "T", "P", "E", "Z", "Y" 599 }; 599 }; 600 600 #define SUFFIXES_START (-24) /* Smallest power for which there is a suffix defined. */ 601 601 #define SUFFIXES_END (SUFFIXES_START + (int)((sizeof(suffixes) / sizeof(char *) - 1) * 3)) … … 1064 1064 else args = fmt( is, fmtstr, s, &len ); 1065 1065 // 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 1066 1070 if ( check && len >= rwd && ! eof( is ) ) { // might not fit 1067 1071 char peek; … … 1087 1091 else args = fmt( is, fmtstr, s, &len ); 1088 1092 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 1089 1096 if ( check && len == rwd && ! eof( is ) ) { // might not fit 1090 1097 char peek; … … 1106 1113 else args = fmt( is, fmtstr, s, &len ); 1107 1114 // 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 1108 1119 if ( check && len == rwd && ! eof( is ) ) { // might not fit 1109 1120 // fprintf( stderr, "overflow\n" ); -
src/CodeGen/CodeGenerator.cpp
rad47ec4 r9bb6c5f 180 180 181 181 if ( 0 == decl->params.size() ) { 182 if ( decl->type->isVarArgs ) { 182 if ( !decl->type->isVarArgs ) { 183 acc << "(void)"; 184 } else if ( options.genC ) { 183 185 acc << "()"; 184 186 } else { 185 acc << "( void)";187 acc << "(...)"; 186 188 } 187 189 } else { -
src/CodeGen/GenType.cpp
rad47ec4 r9bb6c5f 168 168 169 169 if ( type->params.empty() ) { 170 if ( type->isVarArgs ) { 170 if ( !type->isVarArgs ) { 171 os << "(void)"; 172 } else if ( options.genC ) { 171 173 os << "()"; 172 174 } else { 173 os << "( void)";175 os << "(...)"; 174 176 } 175 177 } else { -
src/Concurrency/Keywords.cpp
rad47ec4 r9bb6c5f 1510 1510 1511 1511 ast::ptr<ast::Type> MutexKeyword::generic_func = 1512 new ast::FunctionType( ast:: VariableArgs );1512 new ast::FunctionType( ast::FixedArgs ); 1513 1513 1514 1514 // -------------------------------------------------------------------------- -
src/Concurrency/Waitfor.cpp
rad47ec4 r9bb6c5f 302 302 const ast::ObjectDecl * monitors = declMonitors( out, clause ); 303 303 ast::Type * fptr_t = new ast::PointerType( 304 new ast::FunctionType( ast:: VariableArgs ) );304 new ast::FunctionType( ast::FixedArgs ) ); 305 305 306 306 const ast::VariableExpr * variableExpr = -
src/Parser/TypeData.cpp
rad47ec4 r9bb6c5f 1541 1541 1542 1542 // The argument flag (is/is not var-args) of a computed property. 1543 static ast::ArgumentFlag argumentFlag( const TypeData * td ) {1543 static ast::ArgumentFlag buildArgumentFlag( const TypeData * td ) { 1544 1544 assert( td->kind == TypeData::Function ); 1545 bool isVaArgs = !td->function.params || td->function.params->hasEllipsis; 1546 return (isVaArgs) ? ast::VariableArgs : ast::FixedArgs; 1547 } // argumentFlag 1545 bool isVarArgs = !td->function.params || td->function.params->hasEllipsis; 1546 return (isVarArgs) ? ast::VariableArgs : ast::FixedArgs; 1547 } 1548 1549 1550 // Wrapper to convert the void parameter into the empty explicit list. 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 } 1548 1558 1549 1559 … … 1562 1572 std::vector<ast::ptr<ast::DeclWithType>> params; 1563 1573 std::vector<ast::ptr<ast::DeclWithType>> returns; 1564 build List( td->function.params, params );1574 buildParamList( td->function.params, params ); 1565 1575 buildForall( td->forall, forall ); 1566 1576 // Functions do not store their assertions there anymore. … … 1610 1620 std::move( attributes ), 1611 1621 funcSpec, 1612 argumentFlag( td )1622 buildArgumentFlag( td ) 1613 1623 ); 1614 1624 buildList( td->function.withExprs, decl->withExprs ); … … 1662 1672 assert( td->kind == TypeData::Function ); 1663 1673 ast::FunctionType * ft = new ast::FunctionType( 1664 argumentFlag( td ),1674 buildArgumentFlag( td ), 1665 1675 buildQualifiers( td ) 1666 1676 ); -
src/Parser/parser.yy
rad47ec4 r9bb6c5f 2889 2889 parameter_list_ellipsis_opt: 2890 2890 // empty 2891 { $$ = nullptr; }2891 { $$ = DeclarationNode::newFromTypeData( build_basic_type( TypeData::Void ) ); } 2892 2892 | ELLIPSIS 2893 2893 { $$ = nullptr; } -
tests/.expect/KRfunctions.arm64.txt
rad47ec4 r9bb6c5f 98 98 __attribute__ ((unused)) signed int _X11_retval_f15i_1; 99 99 } 100 const signed int _X4fredFi___1( ){100 const signed int _X4fredFi___1(void){ 101 101 __attribute__ ((unused)) const signed int _X12_retval_fredKi_1; 102 102 signed int *(*_X1xFPi_ii__2)(signed int __param_0, signed int __param_1); -
tests/.expect/KRfunctions.x64.txt
rad47ec4 r9bb6c5f 98 98 __attribute__ ((unused)) signed int _X11_retval_f15i_1; 99 99 } 100 const signed int _X4fredFi___1( ){100 const signed int _X4fredFi___1(void){ 101 101 __attribute__ ((unused)) const signed int _X12_retval_fredKi_1; 102 102 signed int *(*_X1xFPi_ii__2)(signed int __param_0, signed int __param_1); -
tests/.expect/KRfunctions.x86.txt
rad47ec4 r9bb6c5f 98 98 __attribute__ ((unused)) signed int _X11_retval_f15i_1; 99 99 } 100 const signed int _X4fredFi___1( ){100 const signed int _X4fredFi___1(void){ 101 101 __attribute__ ((unused)) const signed int _X12_retval_fredKi_1; 102 102 signed int *(*_X1xFPi_ii__2)(signed int __param_0, signed int __param_1); -
tests/.expect/attributes.arm64.txt
rad47ec4 r9bb6c5f 1 signed int _X2laFi___1( ){1 signed int _X2laFi___1(void){ 2 2 __attribute__ ((unused)) signed int _X10_retval_lai_1; 3 3 { … … 1179 1179 1180 1180 } 1181 __attribute__ ((unused)) signed int _X1fFi___1( ) asm ( "xyz" );1181 __attribute__ ((unused)) signed int _X1fFi___1(void) asm ( "xyz" ); 1182 1182 __attribute__ ((used,used)) const signed int _X3vd1Ki_1; 1183 1183 __attribute__ ((used,unused)) const signed int _X3vd2Ki_1; … … 1186 1186 __attribute__ ((used,used,used)) const signed int _X3vd5A0Ki_1[((unsigned long int )5)]; 1187 1187 __attribute__ ((used,used,unused,used)) const signed int _X3vd6A0Ki_1[((unsigned long int )5)]; 1188 __attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)( );1189 __attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)( );1190 __attribute__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)( );1191 __attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___1)( );1192 __attribute__ ((unused,used)) signed int _X2f1Fi___1( );1193 __attribute__ ((unused)) signed int _X2f1Fi___1( ){1188 __attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)(void); 1189 __attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)(void); 1190 __attribute__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)(void); 1191 __attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___1)(void); 1192 __attribute__ ((unused,used)) signed int _X2f1Fi___1(void); 1193 __attribute__ ((unused)) signed int _X2f1Fi___1(void){ 1194 1194 __attribute__ ((unused)) signed int _X10_retval_f1i_1; 1195 1195 } 1196 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1( );1197 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1( ){1196 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1(void); 1197 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(void){ 1198 1198 __attribute__ ((unused)) signed int **const _X10_retval_f2KPPi_1; 1199 1199 } … … 1206 1206 __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[]; 1207 1207 } 1208 __attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1( ))(signed int __param_0);1209 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1( ))(signed int __param_0){1208 __attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1(void))(signed int __param_0); 1209 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1(void))(signed int __param_0){ 1210 1210 __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0); 1211 1211 } 1212 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1( ))(signed int __param_0){1212 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1(void))(signed int __param_0){ 1213 1213 __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0); 1214 1214 } 1215 __attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1( ))(signed int __param_0){1215 __attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1(void))(signed int __param_0){ 1216 1216 __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0); 1217 1217 } 1218 signed int _X3vtrFi___1( ){1218 signed int _X3vtrFi___1(void){ 1219 1219 __attribute__ ((unused)) signed int _X11_retval_vtri_1; 1220 1220 __attribute__ ((unused,unused,used)) signed int _X2t1i_2; … … 1223 1223 __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned long int )5)]; 1224 1224 __attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X2t5A0PPi_2[((unsigned long int )5)]; 1225 __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___2( );1226 __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2( );1225 __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___2(void); 1226 __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2(void); 1227 1227 } 1228 1228 signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1); … … 1238 1238 __attribute__ ((unused)) signed int _X12_retval_ipd3i_1; 1239 1239 } 1240 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)( ), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)());1241 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)( ), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)()){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)){ 1242 1242 __attribute__ ((unused)) signed int _X12_retval_ipd4i_1; 1243 1243 } … … 1246 1246 signed int _X4tpr3Fi_Pi__1(__attribute__ ((unused,unused,unused)) signed int *_X3FooPi_1); 1247 1247 signed int _X4tpr4Fi_Fi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object2)(signed int __param_0[((unsigned long int )5)])); 1248 signed int _X4tpr5Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)( ));1249 signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)( ));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)); 1250 1250 signed 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( ){1251 signed int _X2adFi___1(void){ 1252 1252 __attribute__ ((unused)) signed int _X10_retval_adi_1; 1253 1253 __attribute__ ((used,unused)) signed int _X3ad1i_2; … … 1256 1256 __attribute__ ((unused,unused,unused,unused,unused)) signed int (*_X3ad4PA0i_2)[((unsigned long int )10)]; 1257 1257 __attribute__ ((unused,unused,unused,unused,used)) signed int _X3ad5i_2; 1258 __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2( );1258 __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2(void); 1259 1259 { 1260 1260 ((void)sizeof(__attribute__ ((unused,unused)) signed int )); … … 1274 1274 1275 1275 { 1276 ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ( )));1276 ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (void))); 1277 1277 } 1278 1278 … … 1348 1348 signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object6, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object7); 1349 1349 signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object8, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object9); 1350 signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)( ), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)());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)); 1351 1351 signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object12)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object13)(signed int __param_0)); 1352 signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)( ), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)());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)); 1353 1353 signed 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)); 1354 1354 struct Vad { -
tests/.expect/attributes.x64.txt
rad47ec4 r9bb6c5f 1 signed int _X2laFi___1( ){1 signed int _X2laFi___1(void){ 2 2 __attribute__ ((unused)) signed int _X10_retval_lai_1; 3 3 { … … 1179 1179 1180 1180 } 1181 __attribute__ ((unused)) signed int _X1fFi___1( ) asm ( "xyz" );1181 __attribute__ ((unused)) signed int _X1fFi___1(void) asm ( "xyz" ); 1182 1182 __attribute__ ((used,used)) const signed int _X3vd1Ki_1; 1183 1183 __attribute__ ((used,unused)) const signed int _X3vd2Ki_1; … … 1186 1186 __attribute__ ((used,used,used)) const signed int _X3vd5A0Ki_1[((unsigned long int )5)]; 1187 1187 __attribute__ ((used,used,unused,used)) const signed int _X3vd6A0Ki_1[((unsigned long int )5)]; 1188 __attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)( );1189 __attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)( );1190 __attribute__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)( );1191 __attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___1)( );1192 __attribute__ ((unused,used)) signed int _X2f1Fi___1( );1193 __attribute__ ((unused)) signed int _X2f1Fi___1( ){1188 __attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)(void); 1189 __attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)(void); 1190 __attribute__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)(void); 1191 __attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___1)(void); 1192 __attribute__ ((unused,used)) signed int _X2f1Fi___1(void); 1193 __attribute__ ((unused)) signed int _X2f1Fi___1(void){ 1194 1194 __attribute__ ((unused)) signed int _X10_retval_f1i_1; 1195 1195 } 1196 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1( );1197 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1( ){1196 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1(void); 1197 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(void){ 1198 1198 __attribute__ ((unused)) signed int **const _X10_retval_f2KPPi_1; 1199 1199 } … … 1206 1206 __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[]; 1207 1207 } 1208 __attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1( ))(signed int __param_0);1209 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1( ))(signed int __param_0){1208 __attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1(void))(signed int __param_0); 1209 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1(void))(signed int __param_0){ 1210 1210 __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0); 1211 1211 } 1212 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1( ))(signed int __param_0){1212 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1(void))(signed int __param_0){ 1213 1213 __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0); 1214 1214 } 1215 __attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1( ))(signed int __param_0){1215 __attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1(void))(signed int __param_0){ 1216 1216 __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0); 1217 1217 } 1218 signed int _X3vtrFi___1( ){1218 signed int _X3vtrFi___1(void){ 1219 1219 __attribute__ ((unused)) signed int _X11_retval_vtri_1; 1220 1220 __attribute__ ((unused,unused,used)) signed int _X2t1i_2; … … 1223 1223 __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned long int )5)]; 1224 1224 __attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X2t5A0PPi_2[((unsigned long int )5)]; 1225 __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___2( );1226 __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2( );1225 __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___2(void); 1226 __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2(void); 1227 1227 } 1228 1228 signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1); … … 1238 1238 __attribute__ ((unused)) signed int _X12_retval_ipd3i_1; 1239 1239 } 1240 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)( ), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)());1241 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)( ), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)()){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)){ 1242 1242 __attribute__ ((unused)) signed int _X12_retval_ipd4i_1; 1243 1243 } … … 1246 1246 signed int _X4tpr3Fi_Pi__1(__attribute__ ((unused,unused,unused)) signed int *_X3FooPi_1); 1247 1247 signed int _X4tpr4Fi_Fi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object2)(signed int __param_0[((unsigned long int )5)])); 1248 signed int _X4tpr5Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)( ));1249 signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)( ));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)); 1250 1250 signed 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( ){1251 signed int _X2adFi___1(void){ 1252 1252 __attribute__ ((unused)) signed int _X10_retval_adi_1; 1253 1253 __attribute__ ((used,unused)) signed int _X3ad1i_2; … … 1256 1256 __attribute__ ((unused,unused,unused,unused,unused)) signed int (*_X3ad4PA0i_2)[((unsigned long int )10)]; 1257 1257 __attribute__ ((unused,unused,unused,unused,used)) signed int _X3ad5i_2; 1258 __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2( );1258 __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2(void); 1259 1259 { 1260 1260 ((void)sizeof(__attribute__ ((unused,unused)) signed int )); … … 1274 1274 1275 1275 { 1276 ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ( )));1276 ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (void))); 1277 1277 } 1278 1278 … … 1348 1348 signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object6, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object7); 1349 1349 signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object8, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object9); 1350 signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)( ), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)());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)); 1351 1351 signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object12)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object13)(signed int __param_0)); 1352 signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)( ), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)());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)); 1353 1353 signed 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)); 1354 1354 struct Vad { -
tests/.expect/attributes.x86.txt
rad47ec4 r9bb6c5f 1 signed int _X2laFi___1( ){1 signed int _X2laFi___1(void){ 2 2 __attribute__ ((unused)) signed int _X10_retval_lai_1; 3 3 { … … 1179 1179 1180 1180 } 1181 __attribute__ ((unused)) signed int _X1fFi___1( ) asm ( "xyz" );1181 __attribute__ ((unused)) signed int _X1fFi___1(void) asm ( "xyz" ); 1182 1182 __attribute__ ((used,used)) const signed int _X3vd1Ki_1; 1183 1183 __attribute__ ((used,unused)) const signed int _X3vd2Ki_1; … … 1186 1186 __attribute__ ((used,used,used)) const signed int _X3vd5A0Ki_1[((unsigned int )5)]; 1187 1187 __attribute__ ((used,used,unused,used)) const signed int _X3vd6A0Ki_1[((unsigned int )5)]; 1188 __attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)( );1189 __attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)( );1190 __attribute__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)( );1191 __attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___1)( );1192 __attribute__ ((unused,used)) signed int _X2f1Fi___1( );1193 __attribute__ ((unused)) signed int _X2f1Fi___1( ){1188 __attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)(void); 1189 __attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)(void); 1190 __attribute__ ((used,used,used,used)) const signed int (*_X3vd9Fi___1)(void); 1191 __attribute__ ((used,used,unused,used,used)) const signed int (*_X4vd10Fi___1)(void); 1192 __attribute__ ((unused,used)) signed int _X2f1Fi___1(void); 1193 __attribute__ ((unused)) signed int _X2f1Fi___1(void){ 1194 1194 __attribute__ ((unused)) signed int _X10_retval_f1i_1; 1195 1195 } 1196 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1( );1197 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1( ){1196 __attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1(void); 1197 __attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(void){ 1198 1198 __attribute__ ((unused)) signed int **const _X10_retval_f2KPPi_1; 1199 1199 } … … 1206 1206 __attribute__ ((unused)) signed int (*_X10_retval_f6PA0i_1)[]; 1207 1207 } 1208 __attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1( ))(signed int __param_0);1209 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1( ))(signed int __param_0){1208 __attribute__ ((unused,used,unused)) signed int (*_X2f7FFi_i____1(void))(signed int __param_0); 1209 __attribute__ ((unused,unused)) signed int (*_X2f8FFi_i____1(void))(signed int __param_0){ 1210 1210 __attribute__ ((unused)) signed int (*_X10_retval_f8Fi_i__1)(signed int __param_0); 1211 1211 } 1212 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1( ))(signed int __param_0){1212 __attribute__ ((unused,unused)) signed int (*_X2f9FFi_i____1(void))(signed int __param_0){ 1213 1213 __attribute__ ((unused)) signed int (*_X10_retval_f9Fi_i__1)(signed int __param_0); 1214 1214 } 1215 __attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1( ))(signed int __param_0){1215 __attribute__ ((unused,unused)) signed int (*_X3f10FFi_i____1(void))(signed int __param_0){ 1216 1216 __attribute__ ((unused)) signed int (*_X11_retval_f10Fi_i__1)(signed int __param_0); 1217 1217 } 1218 signed int _X3vtrFi___1( ){1218 signed int _X3vtrFi___1(void){ 1219 1219 __attribute__ ((unused)) signed int _X11_retval_vtri_1; 1220 1220 __attribute__ ((unused,unused,used)) signed int _X2t1i_2; … … 1223 1223 __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned int )5)]; 1224 1224 __attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X2t5A0PPi_2[((unsigned int )5)]; 1225 __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___2( );1226 __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2( );1225 __attribute__ ((unused,unused,unused)) signed int _X2t6Fi___2(void); 1226 __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2(void); 1227 1227 } 1228 1228 signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1); … … 1238 1238 __attribute__ ((unused)) signed int _X12_retval_ipd3i_1; 1239 1239 } 1240 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)( ), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)());1241 signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)( ), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)()){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)){ 1242 1242 __attribute__ ((unused)) signed int _X12_retval_ipd4i_1; 1243 1243 } … … 1246 1246 signed int _X4tpr3Fi_Pi__1(__attribute__ ((unused,unused,unused)) signed int *_X3FooPi_1); 1247 1247 signed int _X4tpr4Fi_Fi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object2)(signed int __param_0[((unsigned int )5)])); 1248 signed int _X4tpr5Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)( ));1249 signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)( ));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)); 1250 1250 signed 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( ){1251 signed int _X2adFi___1(void){ 1252 1252 __attribute__ ((unused)) signed int _X10_retval_adi_1; 1253 1253 __attribute__ ((used,unused)) signed int _X3ad1i_2; … … 1256 1256 __attribute__ ((unused,unused,unused,unused,unused)) signed int (*_X3ad4PA0i_2)[((unsigned int )10)]; 1257 1257 __attribute__ ((unused,unused,unused,unused,used)) signed int _X3ad5i_2; 1258 __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2( );1258 __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2(void); 1259 1259 { 1260 1260 ((void)sizeof(__attribute__ ((unused,unused)) signed int )); … … 1274 1274 1275 1275 { 1276 ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ( )));1276 ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (void))); 1277 1277 } 1278 1278 … … 1348 1348 signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object6, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object7); 1349 1349 signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object8, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object9); 1350 signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)( ), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)());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)); 1351 1351 signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object12)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object13)(signed int __param_0)); 1352 signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)( ), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)());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)); 1353 1353 signed 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)); 1354 1354 struct Vad { -
tests/.expect/castError.txt
rad47ec4 r9bb6c5f 21 21 Cost ( 1, 0, 0, 0, 0, 0, 0, 0 ): Explicit Cast of: 22 22 Variable Expression: f: function 23 accepting unspecified arguments24 23 ... returning nothing 25 24 26 25 ... with resolved type: 27 26 pointer to function 28 accepting unspecified arguments29 27 ... returning nothing 30 28 -
tests/.expect/declarationSpecifier.arm64.txt
rad47ec4 r9bb6c5f 647 647 _Thread_local signed int _X3x37i_1; 648 648 __thread signed int _X3x38i_1; 649 static inline volatile const signed int _X3f11Fi___1( );650 static inline volatile const signed int _X3f12Fi___1( );651 static inline volatile const signed int _X3f13Fi___1( );652 static inline volatile const signed int _X3f14Fi___1( );653 static inline volatile const signed int _X3f15Fi___1( );654 static inline volatile const signed int _X3f16Fi___1( );655 static inline volatile const signed int _X3f17Fi___1( );656 static inline volatile const signed int _X3f18Fi___1( );657 static inline volatile const signed short int _X3f21Fs___1( );658 static inline volatile const signed short int _X3f22Fs___1( );659 static inline volatile const signed short int _X3f23Fs___1( );660 static inline volatile const signed short int _X3f24Fs___1( );661 static inline volatile const signed short int _X3f25Fs___1( );662 static inline volatile const signed short int _X3f26Fs___1( );663 static inline volatile const signed short int _X3f27Fs___1( );664 static inline volatile const signed short int _X3f28Fs___1( );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); 665 665 struct __anonymous14 { 666 666 signed int _X1ii_1; … … 707 707 708 708 } 709 static inline volatile const struct __anonymous14 _X3f31FS13__anonymous14___1( );709 static inline volatile const struct __anonymous14 _X3f31FS13__anonymous14___1(void); 710 710 struct __anonymous15 { 711 711 signed int _X1ii_1; … … 752 752 753 753 } 754 static inline volatile const struct __anonymous15 _X3f32FS13__anonymous15___1( );754 static inline volatile const struct __anonymous15 _X3f32FS13__anonymous15___1(void); 755 755 struct __anonymous16 { 756 756 signed int _X1ii_1; … … 797 797 798 798 } 799 static inline volatile const struct __anonymous16 _X3f33FS13__anonymous16___1( );799 static inline volatile const struct __anonymous16 _X3f33FS13__anonymous16___1(void); 800 800 struct __anonymous17 { 801 801 signed int _X1ii_1; … … 842 842 843 843 } 844 static inline volatile const struct __anonymous17 _X3f34FS13__anonymous17___1( );844 static inline volatile const struct __anonymous17 _X3f34FS13__anonymous17___1(void); 845 845 struct __anonymous18 { 846 846 signed int _X1ii_1; … … 887 887 888 888 } 889 static inline volatile const struct __anonymous18 _X3f35FS13__anonymous18___1( );889 static inline volatile const struct __anonymous18 _X3f35FS13__anonymous18___1(void); 890 890 struct __anonymous19 { 891 891 signed int _X1ii_1; … … 932 932 933 933 } 934 static inline volatile const struct __anonymous19 _X3f36FS13__anonymous19___1( );934 static inline volatile const struct __anonymous19 _X3f36FS13__anonymous19___1(void); 935 935 struct __anonymous20 { 936 936 signed int _X1ii_1; … … 977 977 978 978 } 979 static inline volatile const struct __anonymous20 _X3f37FS13__anonymous20___1( );979 static inline volatile const struct __anonymous20 _X3f37FS13__anonymous20___1(void); 980 980 struct __anonymous21 { 981 981 signed int _X1ii_1; … … 1022 1022 1023 1023 } 1024 static inline volatile const struct __anonymous21 _X3f38FS13__anonymous21___1( );1025 static inline volatile const signed short int _X3f41Fs___1( );1026 static inline volatile const signed short int _X3f42Fs___1( );1027 static inline volatile const signed short int _X3f43Fs___1( );1028 static inline volatile const signed short int _X3f44Fs___1( );1029 static inline volatile const signed short int _X3f45Fs___1( );1030 static inline volatile const signed short int _X3f46Fs___1( );1031 static inline volatile const signed short int _X3f47Fs___1( );1032 static inline volatile const signed short int _X3f48Fs___1( );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); 1033 1033 signed int _X4mainFi_iPPKc__1(signed int _X4argci_1, const char **_X4argvPPKc_1){ 1034 1034 __attribute__ ((unused)) signed int _X12_retval_maini_1; -
tests/.expect/declarationSpecifier.x64.txt
rad47ec4 r9bb6c5f 647 647 _Thread_local signed int _X3x37i_1; 648 648 __thread signed int _X3x38i_1; 649 static inline volatile const signed int _X3f11Fi___1( );650 static inline volatile const signed int _X3f12Fi___1( );651 static inline volatile const signed int _X3f13Fi___1( );652 static inline volatile const signed int _X3f14Fi___1( );653 static inline volatile const signed int _X3f15Fi___1( );654 static inline volatile const signed int _X3f16Fi___1( );655 static inline volatile const signed int _X3f17Fi___1( );656 static inline volatile const signed int _X3f18Fi___1( );657 static inline volatile const signed short int _X3f21Fs___1( );658 static inline volatile const signed short int _X3f22Fs___1( );659 static inline volatile const signed short int _X3f23Fs___1( );660 static inline volatile const signed short int _X3f24Fs___1( );661 static inline volatile const signed short int _X3f25Fs___1( );662 static inline volatile const signed short int _X3f26Fs___1( );663 static inline volatile const signed short int _X3f27Fs___1( );664 static inline volatile const signed short int _X3f28Fs___1( );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); 665 665 struct __anonymous14 { 666 666 signed int _X1ii_1; … … 707 707 708 708 } 709 static inline volatile const struct __anonymous14 _X3f31FS13__anonymous14___1( );709 static inline volatile const struct __anonymous14 _X3f31FS13__anonymous14___1(void); 710 710 struct __anonymous15 { 711 711 signed int _X1ii_1; … … 752 752 753 753 } 754 static inline volatile const struct __anonymous15 _X3f32FS13__anonymous15___1( );754 static inline volatile const struct __anonymous15 _X3f32FS13__anonymous15___1(void); 755 755 struct __anonymous16 { 756 756 signed int _X1ii_1; … … 797 797 798 798 } 799 static inline volatile const struct __anonymous16 _X3f33FS13__anonymous16___1( );799 static inline volatile const struct __anonymous16 _X3f33FS13__anonymous16___1(void); 800 800 struct __anonymous17 { 801 801 signed int _X1ii_1; … … 842 842 843 843 } 844 static inline volatile const struct __anonymous17 _X3f34FS13__anonymous17___1( );844 static inline volatile const struct __anonymous17 _X3f34FS13__anonymous17___1(void); 845 845 struct __anonymous18 { 846 846 signed int _X1ii_1; … … 887 887 888 888 } 889 static inline volatile const struct __anonymous18 _X3f35FS13__anonymous18___1( );889 static inline volatile const struct __anonymous18 _X3f35FS13__anonymous18___1(void); 890 890 struct __anonymous19 { 891 891 signed int _X1ii_1; … … 932 932 933 933 } 934 static inline volatile const struct __anonymous19 _X3f36FS13__anonymous19___1( );934 static inline volatile const struct __anonymous19 _X3f36FS13__anonymous19___1(void); 935 935 struct __anonymous20 { 936 936 signed int _X1ii_1; … … 977 977 978 978 } 979 static inline volatile const struct __anonymous20 _X3f37FS13__anonymous20___1( );979 static inline volatile const struct __anonymous20 _X3f37FS13__anonymous20___1(void); 980 980 struct __anonymous21 { 981 981 signed int _X1ii_1; … … 1022 1022 1023 1023 } 1024 static inline volatile const struct __anonymous21 _X3f38FS13__anonymous21___1( );1025 static inline volatile const signed short int _X3f41Fs___1( );1026 static inline volatile const signed short int _X3f42Fs___1( );1027 static inline volatile const signed short int _X3f43Fs___1( );1028 static inline volatile const signed short int _X3f44Fs___1( );1029 static inline volatile const signed short int _X3f45Fs___1( );1030 static inline volatile const signed short int _X3f46Fs___1( );1031 static inline volatile const signed short int _X3f47Fs___1( );1032 static inline volatile const signed short int _X3f48Fs___1( );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); 1033 1033 signed int _X4mainFi_iPPKc__1(signed int _X4argci_1, const char **_X4argvPPKc_1){ 1034 1034 __attribute__ ((unused)) signed int _X12_retval_maini_1; -
tests/.expect/declarationSpecifier.x86.txt
rad47ec4 r9bb6c5f 647 647 _Thread_local signed int _X3x37i_1; 648 648 __thread signed int _X3x38i_1; 649 static inline volatile const signed int _X3f11Fi___1( );650 static inline volatile const signed int _X3f12Fi___1( );651 static inline volatile const signed int _X3f13Fi___1( );652 static inline volatile const signed int _X3f14Fi___1( );653 static inline volatile const signed int _X3f15Fi___1( );654 static inline volatile const signed int _X3f16Fi___1( );655 static inline volatile const signed int _X3f17Fi___1( );656 static inline volatile const signed int _X3f18Fi___1( );657 static inline volatile const signed short int _X3f21Fs___1( );658 static inline volatile const signed short int _X3f22Fs___1( );659 static inline volatile const signed short int _X3f23Fs___1( );660 static inline volatile const signed short int _X3f24Fs___1( );661 static inline volatile const signed short int _X3f25Fs___1( );662 static inline volatile const signed short int _X3f26Fs___1( );663 static inline volatile const signed short int _X3f27Fs___1( );664 static inline volatile const signed short int _X3f28Fs___1( );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); 665 665 struct __anonymous14 { 666 666 signed int _X1ii_1; … … 707 707 708 708 } 709 static inline volatile const struct __anonymous14 _X3f31FS13__anonymous14___1( );709 static inline volatile const struct __anonymous14 _X3f31FS13__anonymous14___1(void); 710 710 struct __anonymous15 { 711 711 signed int _X1ii_1; … … 752 752 753 753 } 754 static inline volatile const struct __anonymous15 _X3f32FS13__anonymous15___1( );754 static inline volatile const struct __anonymous15 _X3f32FS13__anonymous15___1(void); 755 755 struct __anonymous16 { 756 756 signed int _X1ii_1; … … 797 797 798 798 } 799 static inline volatile const struct __anonymous16 _X3f33FS13__anonymous16___1( );799 static inline volatile const struct __anonymous16 _X3f33FS13__anonymous16___1(void); 800 800 struct __anonymous17 { 801 801 signed int _X1ii_1; … … 842 842 843 843 } 844 static inline volatile const struct __anonymous17 _X3f34FS13__anonymous17___1( );844 static inline volatile const struct __anonymous17 _X3f34FS13__anonymous17___1(void); 845 845 struct __anonymous18 { 846 846 signed int _X1ii_1; … … 887 887 888 888 } 889 static inline volatile const struct __anonymous18 _X3f35FS13__anonymous18___1( );889 static inline volatile const struct __anonymous18 _X3f35FS13__anonymous18___1(void); 890 890 struct __anonymous19 { 891 891 signed int _X1ii_1; … … 932 932 933 933 } 934 static inline volatile const struct __anonymous19 _X3f36FS13__anonymous19___1( );934 static inline volatile const struct __anonymous19 _X3f36FS13__anonymous19___1(void); 935 935 struct __anonymous20 { 936 936 signed int _X1ii_1; … … 977 977 978 978 } 979 static inline volatile const struct __anonymous20 _X3f37FS13__anonymous20___1( );979 static inline volatile const struct __anonymous20 _X3f37FS13__anonymous20___1(void); 980 980 struct __anonymous21 { 981 981 signed int _X1ii_1; … … 1022 1022 1023 1023 } 1024 static inline volatile const struct __anonymous21 _X3f38FS13__anonymous21___1( );1025 static inline volatile const signed short int _X3f41Fs___1( );1026 static inline volatile const signed short int _X3f42Fs___1( );1027 static inline volatile const signed short int _X3f43Fs___1( );1028 static inline volatile const signed short int _X3f44Fs___1( );1029 static inline volatile const signed short int _X3f45Fs___1( );1030 static inline volatile const signed short int _X3f46Fs___1( );1031 static inline volatile const signed short int _X3f47Fs___1( );1032 static inline volatile const signed short int _X3f48Fs___1( );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); 1033 1033 signed int _X4mainFi_iPPKc__1(signed int _X4argci_1, const char **_X4argvPPKc_1){ 1034 1034 __attribute__ ((unused)) signed int _X12_retval_maini_1; -
tests/.expect/extension.arm64.txt
rad47ec4 r9bb6c5f 161 161 _X1BKM1E_1, 162 162 }; 163 __extension__ signed int _X1fFi___1( );163 __extension__ signed int _X1fFi___1(void); 164 164 __extension__ signed int i; 165 165 __extension__ signed int j; -
tests/.expect/extension.x64.txt
rad47ec4 r9bb6c5f 161 161 _X1BKM1E_1, 162 162 }; 163 __extension__ signed int _X1fFi___1( );163 __extension__ signed int _X1fFi___1(void); 164 164 __extension__ signed int i; 165 165 __extension__ signed int j; -
tests/.expect/extension.x86.txt
rad47ec4 r9bb6c5f 161 161 _X1BKM1E_1, 162 162 }; 163 __extension__ signed int _X1fFi___1( );163 __extension__ signed int _X1fFi___1(void); 164 164 __extension__ signed int i; 165 165 __extension__ signed int j; -
tests/.expect/functions.arm64.txt
rad47ec4 r9bb6c5f 16 16 17 17 } 18 signed int _X2f1Fi___1( ){18 signed int _X2f1Fi___1(void){ 19 19 __attribute__ ((unused)) signed int _X10_retval_f1i_1; 20 20 } 21 signed int _X2f2Fi___1( ){21 signed int _X2f2Fi___1(void){ 22 22 __attribute__ ((unused)) signed int _X10_retval_f2i_1; 23 23 } 24 signed int (*_X2f3FFi_____1( ))(){25 __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)( );26 } 27 signed int *_X2f4FPi___1( ){24 signed int (*_X2f3FFi_____1(void))(void){ 25 __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)(void); 26 } 27 signed int *_X2f4FPi___1(void){ 28 28 __attribute__ ((unused)) signed int *_X10_retval_f4Pi_1; 29 29 } 30 signed int (*_X2f5FFi_____1( ))(){31 __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)( );32 } 33 signed int *_X2f6FPi___1( ){30 signed int (*_X2f5FFi_____1(void))(void){ 31 __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)(void); 32 } 33 signed int *_X2f6FPi___1(void){ 34 34 __attribute__ ((unused)) signed int *_X10_retval_f6Pi_1; 35 35 } 36 signed int *_X2f7FPi___1( ){36 signed int *_X2f7FPi___1(void){ 37 37 __attribute__ ((unused)) signed int *_X10_retval_f7Pi_1; 38 38 } 39 signed int **_X2f8FPPi___1( ){39 signed int **_X2f8FPPi___1(void){ 40 40 __attribute__ ((unused)) signed int **_X10_retval_f8PPi_1; 41 41 } 42 signed int *const *_X2f9FPKPi___1( ){42 signed int *const *_X2f9FPKPi___1(void){ 43 43 __attribute__ ((unused)) signed int *const *_X10_retval_f9PKPi_1; 44 44 } 45 signed int (*_X3f10FPA0i___1( ))[]{45 signed int (*_X3f10FPA0i___1(void))[]{ 46 46 __attribute__ ((unused)) signed int (*_X11_retval_f10PA0i_1)[]; 47 47 } 48 signed int (*_X3f11FPA0A0i___1( ))[][((unsigned long int )3)]{48 signed int (*_X3f11FPA0A0i___1(void))[][((unsigned long int )3)]{ 49 49 __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned long int )3)]; 50 50 } 51 signed int (*_X3f12FPA0A0i___1( ))[][((unsigned long int )3)]{51 signed int (*_X3f12FPA0A0i___1(void))[][((unsigned long int )3)]{ 52 52 __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned long int )3)]; 53 53 } … … 64 64 __attribute__ ((unused)) const signed int _X12_retval_fII4Ki_1; 65 65 } 66 signed int *_X4fII5FPi___1( ){66 signed int *_X4fII5FPi___1(void){ 67 67 __attribute__ ((unused)) signed int *_X12_retval_fII5Pi_1; 68 68 } 69 signed int *const _X4fII6FPi___1( ){69 signed int *const _X4fII6FPi___1(void){ 70 70 __attribute__ ((unused)) signed int *const _X12_retval_fII6KPi_1; 71 71 } 72 const signed long int *_X4fII7FPKl___1( ){72 const signed long int *_X4fII7FPKl___1(void){ 73 73 __attribute__ ((unused)) const signed long int *_X12_retval_fII7PKl_1; 74 74 } 75 static const signed long int *_X4fII8FPKl___1( ){75 static const signed long int *_X4fII8FPKl___1(void){ 76 76 __attribute__ ((unused)) const signed long int *_X12_retval_fII8PKl_1; 77 77 } 78 static const signed long int *_X4fII9FPKl___1( ){78 static const signed long int *_X4fII9FPKl___1(void){ 79 79 __attribute__ ((unused)) const signed long int *_X12_retval_fII9PKl_1; 80 80 } … … 224 224 signed int _X3f11Fi_i__1(signed int __anonymous_object34); 225 225 signed int _X3f12Fi___1(void); 226 const double _X4bar1Fd___1( );226 const double _X4bar1Fd___1(void); 227 227 const double _X4bar2Fd_i__1(signed int __anonymous_object35); 228 228 const double _X4bar3Fd_d__1(double __anonymous_object36); … … 290 290 signed int (*(*_X1pPA0Fi_i__2)[])(signed int __param_0); 291 291 } 292 static const signed int *_X2f1FPKi___1( ){292 static const signed int *_X2f1FPKi___1(void){ 293 293 __attribute__ ((unused)) const signed int *_X10_retval_f1PKi_1; 294 294 } … … 310 310 __attribute__ ((unused)) const struct _conc__tuple2_3 _X10_retval_f5KT2PiKi_1; 311 311 } 312 signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(signed int (*__anonymous_object42)( ), signed int *(*__anonymous_object43)(), signed int **(*__anonymous_object44)(), signed int *const *(*__anonymous_object45)(), signed int *const *const (*__anonymous_object46)(), signed int *__anonymous_object47, signed int __anonymous_object48[10], signed int **__anonymous_object49, signed int *__anonymous_object50[10], signed int ***__anonymous_object51, signed int **__anonymous_object52[10], signed int *const **__anonymous_object53, signed int *const *__anonymous_object54[10], signed int *const *const *__anonymous_object55, signed int *const *const __anonymous_object56[10]);313 signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object57)( ), __attribute__ ((unused)) signed int *(*__anonymous_object58)(), __attribute__ ((unused)) signed int **(*__anonymous_object59)(), __attribute__ ((unused)) signed int *const *(*__anonymous_object60)(), __attribute__ ((unused)) signed int *const *const (*__anonymous_object61)(), __attribute__ ((unused)) signed int *__anonymous_object62, __attribute__ ((unused)) signed int __anonymous_object63[10], __attribute__ ((unused)) signed int **__anonymous_object64, __attribute__ ((unused)) signed int *__anonymous_object65[10], __attribute__ ((unused)) signed int ***__anonymous_object66, __attribute__ ((unused)) signed int **__anonymous_object67[10], __attribute__ ((unused)) signed int *const **__anonymous_object68, __attribute__ ((unused)) signed int *const *__anonymous_object69[10], __attribute__ ((unused)) signed int *const *const *__anonymous_object70, __attribute__ ((unused)) signed int *const *const __anonymous_object71[10]){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]){ 314 314 __attribute__ ((unused)) signed int _X9_retval_fi_1; 315 315 } -
tests/.expect/functions.x64.txt
rad47ec4 r9bb6c5f 16 16 17 17 } 18 signed int _X2f1Fi___1( ){18 signed int _X2f1Fi___1(void){ 19 19 __attribute__ ((unused)) signed int _X10_retval_f1i_1; 20 20 } 21 signed int _X2f2Fi___1( ){21 signed int _X2f2Fi___1(void){ 22 22 __attribute__ ((unused)) signed int _X10_retval_f2i_1; 23 23 } 24 signed int (*_X2f3FFi_____1( ))(){25 __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)( );26 } 27 signed int *_X2f4FPi___1( ){24 signed int (*_X2f3FFi_____1(void))(void){ 25 __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)(void); 26 } 27 signed int *_X2f4FPi___1(void){ 28 28 __attribute__ ((unused)) signed int *_X10_retval_f4Pi_1; 29 29 } 30 signed int (*_X2f5FFi_____1( ))(){31 __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)( );32 } 33 signed int *_X2f6FPi___1( ){30 signed int (*_X2f5FFi_____1(void))(void){ 31 __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)(void); 32 } 33 signed int *_X2f6FPi___1(void){ 34 34 __attribute__ ((unused)) signed int *_X10_retval_f6Pi_1; 35 35 } 36 signed int *_X2f7FPi___1( ){36 signed int *_X2f7FPi___1(void){ 37 37 __attribute__ ((unused)) signed int *_X10_retval_f7Pi_1; 38 38 } 39 signed int **_X2f8FPPi___1( ){39 signed int **_X2f8FPPi___1(void){ 40 40 __attribute__ ((unused)) signed int **_X10_retval_f8PPi_1; 41 41 } 42 signed int *const *_X2f9FPKPi___1( ){42 signed int *const *_X2f9FPKPi___1(void){ 43 43 __attribute__ ((unused)) signed int *const *_X10_retval_f9PKPi_1; 44 44 } 45 signed int (*_X3f10FPA0i___1( ))[]{45 signed int (*_X3f10FPA0i___1(void))[]{ 46 46 __attribute__ ((unused)) signed int (*_X11_retval_f10PA0i_1)[]; 47 47 } 48 signed int (*_X3f11FPA0A0i___1( ))[][((unsigned long int )3)]{48 signed int (*_X3f11FPA0A0i___1(void))[][((unsigned long int )3)]{ 49 49 __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned long int )3)]; 50 50 } 51 signed int (*_X3f12FPA0A0i___1( ))[][((unsigned long int )3)]{51 signed int (*_X3f12FPA0A0i___1(void))[][((unsigned long int )3)]{ 52 52 __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned long int )3)]; 53 53 } … … 64 64 __attribute__ ((unused)) const signed int _X12_retval_fII4Ki_1; 65 65 } 66 signed int *_X4fII5FPi___1( ){66 signed int *_X4fII5FPi___1(void){ 67 67 __attribute__ ((unused)) signed int *_X12_retval_fII5Pi_1; 68 68 } 69 signed int *const _X4fII6FPi___1( ){69 signed int *const _X4fII6FPi___1(void){ 70 70 __attribute__ ((unused)) signed int *const _X12_retval_fII6KPi_1; 71 71 } 72 const signed long int *_X4fII7FPKl___1( ){72 const signed long int *_X4fII7FPKl___1(void){ 73 73 __attribute__ ((unused)) const signed long int *_X12_retval_fII7PKl_1; 74 74 } 75 static const signed long int *_X4fII8FPKl___1( ){75 static const signed long int *_X4fII8FPKl___1(void){ 76 76 __attribute__ ((unused)) const signed long int *_X12_retval_fII8PKl_1; 77 77 } 78 static const signed long int *_X4fII9FPKl___1( ){78 static const signed long int *_X4fII9FPKl___1(void){ 79 79 __attribute__ ((unused)) const signed long int *_X12_retval_fII9PKl_1; 80 80 } … … 224 224 signed int _X3f11Fi_i__1(signed int __anonymous_object34); 225 225 signed int _X3f12Fi___1(void); 226 const double _X4bar1Fd___1( );226 const double _X4bar1Fd___1(void); 227 227 const double _X4bar2Fd_i__1(signed int __anonymous_object35); 228 228 const double _X4bar3Fd_d__1(double __anonymous_object36); … … 290 290 signed int (*(*_X1pPA0Fi_i__2)[])(signed int __param_0); 291 291 } 292 static const signed int *_X2f1FPKi___1( ){292 static const signed int *_X2f1FPKi___1(void){ 293 293 __attribute__ ((unused)) const signed int *_X10_retval_f1PKi_1; 294 294 } … … 310 310 __attribute__ ((unused)) const struct _conc__tuple2_3 _X10_retval_f5KT2PiKi_1; 311 311 } 312 signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(signed int (*__anonymous_object42)( ), signed int *(*__anonymous_object43)(), signed int **(*__anonymous_object44)(), signed int *const *(*__anonymous_object45)(), signed int *const *const (*__anonymous_object46)(), signed int *__anonymous_object47, signed int __anonymous_object48[10], signed int **__anonymous_object49, signed int *__anonymous_object50[10], signed int ***__anonymous_object51, signed int **__anonymous_object52[10], signed int *const **__anonymous_object53, signed int *const *__anonymous_object54[10], signed int *const *const *__anonymous_object55, signed int *const *const __anonymous_object56[10]);313 signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object57)( ), __attribute__ ((unused)) signed int *(*__anonymous_object58)(), __attribute__ ((unused)) signed int **(*__anonymous_object59)(), __attribute__ ((unused)) signed int *const *(*__anonymous_object60)(), __attribute__ ((unused)) signed int *const *const (*__anonymous_object61)(), __attribute__ ((unused)) signed int *__anonymous_object62, __attribute__ ((unused)) signed int __anonymous_object63[10], __attribute__ ((unused)) signed int **__anonymous_object64, __attribute__ ((unused)) signed int *__anonymous_object65[10], __attribute__ ((unused)) signed int ***__anonymous_object66, __attribute__ ((unused)) signed int **__anonymous_object67[10], __attribute__ ((unused)) signed int *const **__anonymous_object68, __attribute__ ((unused)) signed int *const *__anonymous_object69[10], __attribute__ ((unused)) signed int *const *const *__anonymous_object70, __attribute__ ((unused)) signed int *const *const __anonymous_object71[10]){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]){ 314 314 __attribute__ ((unused)) signed int _X9_retval_fi_1; 315 315 } -
tests/.expect/functions.x86.txt
rad47ec4 r9bb6c5f 16 16 17 17 } 18 signed int _X2f1Fi___1( ){18 signed int _X2f1Fi___1(void){ 19 19 __attribute__ ((unused)) signed int _X10_retval_f1i_1; 20 20 } 21 signed int _X2f2Fi___1( ){21 signed int _X2f2Fi___1(void){ 22 22 __attribute__ ((unused)) signed int _X10_retval_f2i_1; 23 23 } 24 signed int (*_X2f3FFi_____1( ))(){25 __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)( );26 } 27 signed int *_X2f4FPi___1( ){24 signed int (*_X2f3FFi_____1(void))(void){ 25 __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)(void); 26 } 27 signed int *_X2f4FPi___1(void){ 28 28 __attribute__ ((unused)) signed int *_X10_retval_f4Pi_1; 29 29 } 30 signed int (*_X2f5FFi_____1( ))(){31 __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)( );32 } 33 signed int *_X2f6FPi___1( ){30 signed int (*_X2f5FFi_____1(void))(void){ 31 __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)(void); 32 } 33 signed int *_X2f6FPi___1(void){ 34 34 __attribute__ ((unused)) signed int *_X10_retval_f6Pi_1; 35 35 } 36 signed int *_X2f7FPi___1( ){36 signed int *_X2f7FPi___1(void){ 37 37 __attribute__ ((unused)) signed int *_X10_retval_f7Pi_1; 38 38 } 39 signed int **_X2f8FPPi___1( ){39 signed int **_X2f8FPPi___1(void){ 40 40 __attribute__ ((unused)) signed int **_X10_retval_f8PPi_1; 41 41 } 42 signed int *const *_X2f9FPKPi___1( ){42 signed int *const *_X2f9FPKPi___1(void){ 43 43 __attribute__ ((unused)) signed int *const *_X10_retval_f9PKPi_1; 44 44 } 45 signed int (*_X3f10FPA0i___1( ))[]{45 signed int (*_X3f10FPA0i___1(void))[]{ 46 46 __attribute__ ((unused)) signed int (*_X11_retval_f10PA0i_1)[]; 47 47 } 48 signed int (*_X3f11FPA0A0i___1( ))[][((unsigned int )3)]{48 signed int (*_X3f11FPA0A0i___1(void))[][((unsigned int )3)]{ 49 49 __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned int )3)]; 50 50 } 51 signed int (*_X3f12FPA0A0i___1( ))[][((unsigned int )3)]{51 signed int (*_X3f12FPA0A0i___1(void))[][((unsigned int )3)]{ 52 52 __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned int )3)]; 53 53 } … … 64 64 __attribute__ ((unused)) const signed int _X12_retval_fII4Ki_1; 65 65 } 66 signed int *_X4fII5FPi___1( ){66 signed int *_X4fII5FPi___1(void){ 67 67 __attribute__ ((unused)) signed int *_X12_retval_fII5Pi_1; 68 68 } 69 signed int *const _X4fII6FPi___1( ){69 signed int *const _X4fII6FPi___1(void){ 70 70 __attribute__ ((unused)) signed int *const _X12_retval_fII6KPi_1; 71 71 } 72 const signed long int *_X4fII7FPKl___1( ){72 const signed long int *_X4fII7FPKl___1(void){ 73 73 __attribute__ ((unused)) const signed long int *_X12_retval_fII7PKl_1; 74 74 } 75 static const signed long int *_X4fII8FPKl___1( ){75 static const signed long int *_X4fII8FPKl___1(void){ 76 76 __attribute__ ((unused)) const signed long int *_X12_retval_fII8PKl_1; 77 77 } 78 static const signed long int *_X4fII9FPKl___1( ){78 static const signed long int *_X4fII9FPKl___1(void){ 79 79 __attribute__ ((unused)) const signed long int *_X12_retval_fII9PKl_1; 80 80 } … … 224 224 signed int _X3f11Fi_i__1(signed int __anonymous_object34); 225 225 signed int _X3f12Fi___1(void); 226 const double _X4bar1Fd___1( );226 const double _X4bar1Fd___1(void); 227 227 const double _X4bar2Fd_i__1(signed int __anonymous_object35); 228 228 const double _X4bar3Fd_d__1(double __anonymous_object36); … … 290 290 signed int (*(*_X1pPA0Fi_i__2)[])(signed int __param_0); 291 291 } 292 static const signed int *_X2f1FPKi___1( ){292 static const signed int *_X2f1FPKi___1(void){ 293 293 __attribute__ ((unused)) const signed int *_X10_retval_f1PKi_1; 294 294 } … … 310 310 __attribute__ ((unused)) const struct _conc__tuple2_3 _X10_retval_f5KT2PiKi_1; 311 311 } 312 signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(signed int (*__anonymous_object42)( ), signed int *(*__anonymous_object43)(), signed int **(*__anonymous_object44)(), signed int *const *(*__anonymous_object45)(), signed int *const *const (*__anonymous_object46)(), signed int *__anonymous_object47, signed int __anonymous_object48[10], signed int **__anonymous_object49, signed int *__anonymous_object50[10], signed int ***__anonymous_object51, signed int **__anonymous_object52[10], signed int *const **__anonymous_object53, signed int *const *__anonymous_object54[10], signed int *const *const *__anonymous_object55, signed int *const *const __anonymous_object56[10]);313 signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object57)( ), __attribute__ ((unused)) signed int *(*__anonymous_object58)(), __attribute__ ((unused)) signed int **(*__anonymous_object59)(), __attribute__ ((unused)) signed int *const *(*__anonymous_object60)(), __attribute__ ((unused)) signed int *const *const (*__anonymous_object61)(), __attribute__ ((unused)) signed int *__anonymous_object62, __attribute__ ((unused)) signed int __anonymous_object63[10], __attribute__ ((unused)) signed int **__anonymous_object64, __attribute__ ((unused)) signed int *__anonymous_object65[10], __attribute__ ((unused)) signed int ***__anonymous_object66, __attribute__ ((unused)) signed int **__anonymous_object67[10], __attribute__ ((unused)) signed int *const **__anonymous_object68, __attribute__ ((unused)) signed int *const *__anonymous_object69[10], __attribute__ ((unused)) signed int *const *const *__anonymous_object70, __attribute__ ((unused)) signed int *const *const __anonymous_object71[10]){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]){ 314 314 __attribute__ ((unused)) signed int _X9_retval_fi_1; 315 315 } -
tests/.expect/gccExtensions.arm64.txt
rad47ec4 r9bb6c5f 19 19 const signed int _X2i2Ki_2; 20 20 const signed int _X2i3Ki_2; 21 inline signed int _X2f1Fi___2( ){21 inline signed int _X2f1Fi___2(void){ 22 22 __attribute__ ((unused)) signed int _X10_retval_f1i_2; 23 23 } 24 inline signed int _X2f2Fi___2( ){24 inline signed int _X2f2Fi___2(void){ 25 25 __attribute__ ((unused)) signed int _X10_retval_f2i_2; 26 26 } -
tests/.expect/gccExtensions.x64.txt
rad47ec4 r9bb6c5f 19 19 const signed int _X2i2Ki_2; 20 20 const signed int _X2i3Ki_2; 21 inline signed int _X2f1Fi___2( ){21 inline signed int _X2f1Fi___2(void){ 22 22 __attribute__ ((unused)) signed int _X10_retval_f1i_2; 23 23 } 24 inline signed int _X2f2Fi___2( ){24 inline signed int _X2f2Fi___2(void){ 25 25 __attribute__ ((unused)) signed int _X10_retval_f2i_2; 26 26 } -
tests/.expect/gccExtensions.x86.txt
rad47ec4 r9bb6c5f 19 19 const signed int _X2i2Ki_2; 20 20 const signed int _X2i3Ki_2; 21 inline signed int _X2f1Fi___2( ){21 inline signed int _X2f1Fi___2(void){ 22 22 __attribute__ ((unused)) signed int _X10_retval_f1i_2; 23 23 } 24 inline signed int _X2f2Fi___2( ){24 inline signed int _X2f2Fi___2(void){ 25 25 __attribute__ ((unused)) signed int _X10_retval_f2i_2; 26 26 } -
tests/castError.cfa
rad47ec4 r9bb6c5f 1 // 1 // 2 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo 3 3 // 4 4 // The contents of this file are covered under the licence agreement in the 5 5 // file "LICENCE" distributed with Cforall. 6 // 6 // 7 7 // castError.cfa -- test invalid casts 8 // 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Tue Feb 19 21:15:39 2019 … … 12 12 // Last Modified On : Tue Feb 19 21:16:44 2019 13 13 // Update Count : 1 14 // 14 // 15 15 16 16 forall(T) struct S { T p; }; -
tests/errors/.expect/declaration.txt
rad47ec4 r9bb6c5f 20 20 21 21 errors/declaration.cfa:24:1 error: duplicate const qualifier(s) in declaration of f01: static inline function 22 with no parameters 22 with parameters 23 void 23 24 returning const volatile int 24 25 25 26 26 27 errors/declaration.cfa:25:1 error: duplicate volatile qualifier(s) in declaration of f02: static inline function 27 with no parameters 28 with parameters 29 void 28 30 returning const volatile int 29 31 30 32 31 33 errors/declaration.cfa:26:1 error: duplicate const qualifier(s) in declaration of f03: static inline function 32 with no parameters 34 with parameters 35 void 33 36 returning const volatile int 34 37 35 38 36 39 errors/declaration.cfa:27:1 error: duplicate volatile qualifier(s) in declaration of f04: static inline function 37 with no parameters 40 with parameters 41 void 38 42 returning const volatile int 39 43 40 44 41 45 errors/declaration.cfa:28:1 error: duplicate const qualifier(s) in declaration of f05: static inline function 42 with no parameters 46 with parameters 47 void 43 48 returning const volatile int 44 49 45 50 46 51 errors/declaration.cfa:29:1 error: duplicate volatile qualifier(s) in declaration of f06: static inline function 47 with no parameters 52 with parameters 53 void 48 54 returning const volatile int 49 55 50 56 51 57 errors/declaration.cfa:30:1 error: duplicate const qualifier(s) in declaration of f07: static inline function 52 with no parameters 58 with parameters 59 void 53 60 returning const volatile int 54 61 55 62 56 63 errors/declaration.cfa:31:1 error: duplicate const volatile qualifier(s) in declaration of f08: static inline function 57 with no parameters 64 with parameters 65 void 58 66 returning const volatile int 59 67 60 68 61 69 errors/declaration.cfa:33:1 error: duplicate const volatile qualifier(s) in declaration of f09: static inline function 62 with no parameters 70 with parameters 71 void 63 72 returning const volatile int 64 73 65 74 66 75 errors/declaration.cfa:34:1 error: duplicate const qualifier(s), duplicate _Atomic qualifier(s), duplicate _Atomic qualifier(s), duplicate const restrict volatile qualifier(s) in declaration of f09: static inline function 67 with no parameters 76 with parameters 77 void 68 78 returning const restrict volatile _Atomic int 69 79 -
tests/errors/.expect/signature.txt
rad47ec4 r9bb6c5f 2 2 errors/signature.cfa:3:1 error: Constructors, destructors, and assignment functions require at least one parameter. 3 3 errors/signature.cfa:4:1 error: Constructors, destructors, and assignment functions require at least one parameter. 4 errors/signature.cfa:5:1 error: First parameter of a constructor, destructor, or assignment function must be a reference.5 errors/signature.cfa:6:1 error: First parameter of a constructor, destructor, or assignment function must be a reference.6 errors/signature.cfa:7:1 error: First parameter of a constructor, destructor, or assignment function must be a reference.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. 7 7 errors/signature.cfa:10:1 error: First parameter of a constructor, destructor, or assignment function must be a reference. 8 8 errors/signature.cfa:11:1 error: First parameter of a constructor, destructor, or assignment function must be a reference. -
tests/errors/declaration.cfa
rad47ec4 r9bb6c5f 1 // 1 // 2 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo 3 3 // 4 4 // The contents of this file are covered under the licence agreement in the 5 5 // file "LICENCE" distributed with Cforall. 6 // 7 // declarationErrors.cfa -- 8 // 6 // 7 // declarationErrors.cfa -- 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Wed Aug 17 08:23:43 2016 … … 12 12 // Last Modified On : Tue Nov 6 17:52:47 2018 13 13 // Update Count : 32 14 // 14 // 15 15 16 16 static short int volatile static const x1; // duplicate static -
tests/gccExtensions.cfa
rad47ec4 r9bb6c5f 1 // 1 // 2 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo 3 3 // 4 4 // The contents of this file are covered under the licence agreement in the 5 5 // file "LICENCE" distributed with Cforall. 6 // 7 // gccExtensions.cfa -- 8 // 6 // 7 // gccExtensions.cfa -- 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Sun Aug 14 17:28:17 2016 … … 12 12 // Last Modified On : Mon Aug 5 18:04:37 2019 13 13 // Update Count : 28 14 // 14 // 15 15 16 16 extern int x asm( "xx" ); -
tests/meta/.expect/arch.arm64.txt
rad47ec4 r9bb6c5f 21 21 Cost ( 1, 0, 0, 0, 0, 0, 0, 0 ): Explicit Cast of: 22 22 Variable Expression: FA64: function 23 accepting unspecified arguments24 23 ... returning nothing 25 24 26 25 ... with resolved type: 27 26 pointer to function 28 accepting unspecified arguments29 27 ... returning nothing 30 28 -
tests/meta/.expect/arch.x64.txt
rad47ec4 r9bb6c5f 21 21 Cost ( 1, 0, 0, 0, 0, 0, 0, 0 ): Explicit Cast of: 22 22 Variable Expression: FX64: function 23 accepting unspecified arguments24 23 ... returning nothing 25 24 26 25 ... with resolved type: 27 26 pointer to function 28 accepting unspecified arguments29 27 ... returning nothing 30 28 -
tests/meta/.expect/arch.x86.txt
rad47ec4 r9bb6c5f 21 21 Cost ( 1, 0, 0, 0, 0, 0, 0, 0 ): Explicit Cast of: 22 22 Variable Expression: FX86: function 23 accepting unspecified arguments24 23 ... returning nothing 25 24 26 25 ... with resolved type: 27 26 pointer to function 28 accepting unspecified arguments29 27 ... returning nothing 30 28
Note: See TracChangeset
for help on using the changeset viewer.