Changes in / [2e94f3e7:c68f6e6]
- Files:
-
- 1 added
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/colby_parsons_MMAth/Makefile
r2e94f3e7 rc68f6e6 85 85 diagrams/cyclic_swap \ 86 86 diagrams/steal \ 87 diagrams/uCpp_select_tree \ 87 88 } 88 89 -
doc/theses/colby_parsons_MMAth/glossary.tex
r2e94f3e7 rc68f6e6 41 41 \newabbreviation{dwcas}{DWCAS}{\Newterm{double-wide (width) compare-and-set (swap)}} 42 42 \newabbreviation{dcas}{DCAS}{\Newterm{double compare-and-set (swap)}} 43 \newabbreviation{ dcasw}{DCASW}{\Newterm{weak doublecompare-and-set (swap)}}43 \newabbreviation{qpcas}{QPCAS}{\Newterm{queue pointer compare-and-set (swap)}} 44 44 \newabbreviation{ll}{LL}{\Newterm{load linked}} 45 45 \newabbreviation{sc}{SC}{\Newterm{store conditional}} -
doc/theses/colby_parsons_MMAth/text/actors.tex
r2e94f3e7 rc68f6e6 578 578 579 579 In more detail, the \CFA work-stealing algorithm begins by iterating over its message queues twice without finding any work before it tries to steal a queue from another worker. 580 Stealing a queue is done wait-free (\ie no busy waiting)with a few atomic instructions that only create contention with other stealing workers not the victim.580 Stealing a queue is done atomically with a few atomic instructions that only create contention with other stealing workers not the victim. 581 581 The complexity in the implementation is that victim gulping does not take the mailbox queue; 582 582 rather it atomically transfers the mailbox nodes to another queue leaving the mailbox empty, as discussed in Section~\ref{s:executor}. … … 700 700 \subsection{Queue Pointer Swap}\label{s:swap} 701 701 702 To atomically swap the two @worker_queues@ pointers during work stealing, a novel wait-freeswap-algorithm is needed.702 To atomically swap the two @worker_queues@ pointers during work stealing, a novel atomic swap-algorithm is needed. 703 703 The \gls{cas} is a read-modify-write instruction available on most modern architectures. 704 704 It atomically compares two memory locations, and if the values are equal, it writes a new value into the first memory location. … … 737 737 } 738 738 \end{cfa} 739 and can swap two values, where the comparisons are superfluous.739 \gls{dcas} can be used to swap two values; for this use case the comparisons are superfluous. 740 740 \begin{cfa} 741 741 DCAS( x, y, x, y, y, x ); 742 742 \end{cfa} 743 743 A restrictive form of \gls{dcas} can be simulated using \gls{ll}/\gls{sc}~\cite{Brown13} or more expensive transactional memory with the same progress property problems as LL/SC. 744 (There is waning interest in transactional memory and it seems to be fading away.)744 % (There is waning interest in transactional memory and it seems to be fading away.) 745 745 746 746 Similarly, very few architectures have a true memory/memory swap instruction (Motorola M68K, SPARC 32-bit). … … 749 749 750 750 Either a true memory/memory swap instruction or a \gls{dcas} would provide the ability to atomically swap two memory locations, but unfortunately neither of these instructions are supported on the architectures used in this work. 751 Hence, a novel atomic swap for this use case is simulated, called \gls{dcasw}.752 The \gls{ dcasw} is effectively a \gls{dcas} special cased in twoways:751 Hence, a novel atomic swap specific to the actor use case is simulated, called \gls{qpcas}. 752 The \gls{qpcas} is effectively a \gls{dcas} special cased in a few ways: 753 753 \begin{enumerate} 754 754 \item 755 755 It works on two separate memory locations, and hence, is logically the same as. 756 756 \begin{cfa} 757 bool DCASW( T * dst, T * src ) {757 bool QPCAS( T * dst, T * src ) { 758 758 return DCAS( dest, src, *dest, *src, *src, *dest ); 759 759 } … … 762 762 The values swapped are never null pointers, so a null pointer can be used as an intermediate value during the swap. 763 763 \end{enumerate} 764 Figure~\ref{f: dcaswImpl} shows the \CFA pseudocode for the \gls{dcasw}.764 Figure~\ref{f:qpcasImpl} shows the \CFA pseudocode for the \gls{qpcas}. 765 765 In detail, a thief performs the following steps to swap two pointers: 766 766 \begin{enumerate}[start=0] … … 770 770 verifies the stored copy of the victim queue pointer, @vic_queue@, is valid. 771 771 If @vic_queue@ is null, then the victim queue is part of another swap so the operation fails. 772 No state has changed at this point so no fixup is needed. 773 Note, @my_queue@ can never be equal to null at this point since thieves only set their own queues pointers to null when stealing. 774 At no other point is a queue pointer set to null. 775 Since each worker owns a disjoint range of the queue array, it is impossible for @my_queue@ to be null. 776 Note, this algorithm is simplified due to each worker owning a disjoint range, allowing only the @vic_queue@ to be checked for null. 777 This was not listed as a special case of this algorithm, since this requirement can be avoided by modifying Step 1 of Figure~\ref{f:dcaswImpl} to also check @my_queue@ for null. 778 Further discussion of this generalization is omitted since it is not needed for the presented application. 772 No state has changed at this point so the thief just returns. 773 Note, thieves only set their own queues pointers to null when stealing, and queue pointers are not set to null anywhere else. 774 As such, it is impossible for @my_queue@ to be null since each worker owns a disjoint range of the queue array. 775 Hence, only @vic_queue@ is checked for null. 779 776 \item 780 777 attempts to atomically set the thief's queue pointer to null. … … 782 779 At this point, the thief-turned-victim fails, and since it has not changed any state, it just returns false. 783 780 If the @CAS@ succeeds, the thief's queue pointer is now null. 784 Nulling the pointer is safe since only thieves look at other worker's queue ranges, and whenever thieves need to dereference a queue pointer, it is checked for null. 781 Only thieves look at other worker's queue ranges, and whenever thieves need to dereference a queue pointer, it is checked for null. 782 A thief can only see the null queue pointer when looking for queues to steal or attempting a queue swap. 783 If looking for queues, the thief will skip the null pointer, thus only the queue swap case needs to be considered for correctness. 784 785 785 \item 786 786 attempts to atomically set the victim's queue pointer to @my_queue@. … … 788 788 If the @CAS@ fails, the thief's queue pointer must be restored to its previous value before returning. 789 789 \item 790 set the thief's queue pointer to @vic_queue@ completing the swap.790 sets the thief's queue pointer to @vic_queue@ completing the swap. 791 791 \end{enumerate} 792 792 … … 820 820 } 821 821 \end{cfa} 822 \caption{ DCASWConcurrent}823 \label{f: dcaswImpl}822 \caption{QPCAS Concurrent} 823 \label{f:qpcasImpl} 824 824 \end{figure} 825 825 826 826 \begin{theorem} 827 \gls{ dcasw} is correct in both the success and failure cases.827 \gls{qpcas} is correct in both the success and failure cases. 828 828 \end{theorem} 829 To verify sequential correctness, Figure~\ref{f:seqSwap} shows a simplified \gls{ dcasw}.829 To verify sequential correctness, Figure~\ref{f:seqSwap} shows a simplified \gls{qpcas}. 830 830 Step 1 is missing in the sequential example since it only matters in the concurrent context. 831 831 By inspection, the sequential swap copies each pointer being swapped, and then the original values of each pointer are reset using the copy of the other pointer. … … 845 845 } 846 846 \end{cfa} 847 \caption{ DCASWSequential}847 \caption{QPCAS Sequential} 848 848 \label{f:seqSwap} 849 849 \end{figure} 850 850 851 To verify concurrent correctness, it is necessary to show \gls{dcasw} is wait-free, \ie all thieves fail or succeed in swapping the queues in a finite number of steps.852 This propertyis straightforward, because there are no locks or looping.853 As well, there is no retry mechanism in the case of a failed swap, since a failed swap either means the work is already stolen or that work is stolen from the thief.854 In both cases, it is apropos for a thief to give up stealing.855 856 The proof of correctness is shown through the existence of an invariant.851 % All thieves fail or succeed in swapping the queues in a finite number of steps. 852 % This is straightforward, because there are no locks or looping. 853 % As well, there is no retry mechanism in the case of a failed swap, since a failed swap either means the work is already stolen or that work is stolen from the thief. 854 % In both cases, it is apropos for a thief to give up stealing. 855 856 The concurrent proof of correctness is shown through the existence of an invariant. 857 857 The invariant states when a queue pointer is set to @0p@ by a thief, then the next write to the pointer can only be performed by the same thief. 858 858 To show that this invariant holds, it is shown that it is true at each step of the swap. … … 877 877 Once a thief atomically sets their queue pointer to be @0p@ in step 2, the invariant guarantees that that pointer does not change. 878 878 In the success case of step 3, it is known the value of the victim's queue-pointer, which is not overwritten, must be @vic_queue@ due to the use of @CAS@. 879 Given that the pointers all have unique memory locations , this first write of the successful swap is correct since it can only occur when the pointer has not changed.879 Given that the pointers all have unique memory locations (a pointer is never swapped with itself), this first write of the successful swap is correct since it can only occur when the pointer has not changed. 880 880 By the invariant, the write back in the successful case is correct since no other worker can write to the @0p@ pointer. 881 881 In the failed case of step 3, the outcome is correct in steps 1 and 2 since no writes have occurred so the program state is unchanged. 882 882 Therefore, the program state is safely restored to the state it had prior to the @0p@ write in step 2, because the invariant makes the write back to the @0p@ pointer safe. 883 Note that the assumption of the pointers having unique memory locations prevents the ABA problem in this usage of \gls{dcasw}, but it is not needed for correctness of the general \gls{dcasw} operation.883 Note that the pointers having unique memory locations prevents the ABA problem. 884 884 885 885 \begin{comment} … … 905 905 First it is important to state that a thief does not attempt to steal from themselves. 906 906 As such, the victim here is not also a thief. 907 Stepping through the code in \ref{f: dcaswImpl}, for all thieves, steps 0-1 succeed since the victim is not stealing and has no queue pointers set to be @0p@.907 Stepping through the code in \ref{f:qpcasImpl}, for all thieves, steps 0-1 succeed since the victim is not stealing and has no queue pointers set to be @0p@. 908 908 Similarly, for all thieves, step 2 succeed since no one is stealing from any of the thieves. 909 909 In step 3, the first thief to @CAS@ wins the race and successfully swaps the queue pointer. -
doc/theses/colby_parsons_MMAth/text/conclusion.tex
r2e94f3e7 rc68f6e6 10 10 The @waituntil@ statement aids in writing concurrent programs in both the message passing and shared memory paradigms of concurrency. 11 11 Furthermore, no other language provides a synchronous multiplexing tool polymorphic over resources like \CFA's @waituntil@. 12 From the novel copy-queue data structure in the actor system and the plethora of user-supporting safety features, all these utilities build upon existing tools with value added. 12 13 On overview of the contributions in this thesis include the following: 14 \begin{enumerate} 15 \item The mutex statement, which provides performant and deadlock-free multiple lock acquisition. 16 \item Channels with comparable performance to Go, that have safety and productivity features including deadlock detection and an easy-to-use exception-based channel @close@ routine. 17 \item An in-memory actor system that achieved the lowest latency message send of systems tested due to the novel copy-queue data structure. The actor system presented has built-in detection of six common actor errors, and it has good performance compared to other systems on all benchmarks. 18 \item A @waituntil@ statement which tackles the hard problem of allowing a thread to safely synchronously wait for some set of concurrent resources. 19 \end{enumerate} 20 21 From the novel copy-queue data structure in the actor system and the plethora of user-supporting safety features, all these utilities build upon existing concurrent tooling with value added. 13 22 Performance results verify that each new feature is comparable or better than similar features in other programming languages. 14 15 \PAB{This part seems a little short.} 23 All in all, this suite of concurrent tools expands users' ability to easily write safe and performant multi-threaded programs in \CFA. 16 24 17 25 \section{Future Work} -
doc/theses/colby_parsons_MMAth/text/waituntil.tex
r2e94f3e7 rc68f6e6 382 382 More detail on channels and their interaction with @waituntil@ appear in Section~\ref{s:wu_chans}. 383 383 384 The trait is used by having a blocking object return a type that supports the @is_selectable@ trait. 384 The trait can be used directly by having a blocking object support the @is_selectable@ trait, or it can be used indirectly through routines that take the object as an argument. 385 When used indirectly, the object's routine returns a type that supports the @is_selectable@ trait. 385 386 This feature leverages \CFA's ability to overload on return type to select the correct overloaded routine for the @waituntil@ context. 386 A selectable typeis needed for types that want to support multiple operations such as channels that allow both reading and writing.387 Indirect support through routines is needed for types that want to support multiple operations such as channels that allow both reading and writing. 387 388 388 389 \section{\lstinline{waituntil} Implementation} … … 520 521 This work incurs a high cost for signalling threads and heavily increase contention on internal channel locks. 521 522 Furthermore, the @waituntil@ statement is polymorphic and can support resources that do not have internal locks, which also makes this approach infeasible. 522 As such, the exclusive-or semantics islost when using both @and@ and @or@ operators since it cannot be supported without significant complexity and significantly affects @waituntil@ performance.523 As such, the exclusive-or semantics are lost when using both @and@ and @or@ operators since it cannot be supported without significant complexity and significantly affects @waituntil@ performance. 523 524 524 525 It was deemed important that exclusive-or semantics are maintained when only @or@ operators are used, so this situation has been special-cased, and is handled by having all clauses race to set a value \emph{before} operating on the channel. … … 591 592 If any other threads attempt to set a WUT's race pointer and see a pending value, they wait until the value changes before proceeding to ensure that, in the case the WUT fails, the signal is not lost. 592 593 This protocol ensures that signals cannot be lost and that the two races can be resolved in a safe manner. 593 \PAB{I bet one of the readers is going to ask you to write the pseudo code for this algorithm.} 594 The implementation of this protocol is shown in Figure~\ref{f:WU_DeadlockAvoidance}. 595 596 \begin{figure} 597 \begin{cfa} 598 bool pending_set_other( select_node & other, select_node & mine ) { 599 unsigned long int cmp_status = UNSAT; 600 601 // Try to set other status, if we succeed break and return true 602 while( !CAS( other.clause_status, &cmp_status, SAT ) ) { 603 if ( cmp_status == SAT ) 604 return false; // If other status is SAT we lost so return false 605 606 // Toggle own status flag to allow other thread to potentially win 607 mine.status = UNSAT; 608 609 // Reset compare flag 610 cmp_status = UNSAT; 611 612 // Attempt to set own status flag back to PENDING to retry 613 if ( !CAS( mine.clause_status, &cmp_status, PENDING ) ) 614 return false; // If we fail then we lost so return false 615 616 // Reset compare flag 617 cmp_status = UNSAT; 618 } 619 return true; 620 } 621 \end{cfa} 622 \caption{Exclusive-or \lstinline{waituntil} channel deadlock avoidance protocol} 623 \label{f:WU_DeadlockAvoidance} 624 \end{figure} 594 625 595 626 Channels in \CFA have exception-based shutdown mechanisms that the @waituntil@ statement needs to support. … … 600 631 601 632 It is trivial to check when a synchronous multiplexing utility is done for the or/xor relationship, since any resource becoming available means that the blocked thread can proceed and the @waituntil@ statement is finished. 602 In \uC and \CFA, the \gls{synch_multiplex} mechanism have both an and/or relationship, which make the problem of checking for completion of the statement difficult. 603 \PAB{Show an example of why this is difficult.} 633 In \uC and \CFA, the \gls{synch_multiplex} mechanism have both an and/or relationship, which along with guards, make the problem of checking for completion of the statement difficult. 634 Consider the @waituntil@ in Figure~\ref{f:WU_ComplexPredicate}. 635 When the @waituntil@ thread wakes up, checking if the statement is complete is non-trivial. 636 The predicate that will return if the statement in Figure~\ref{f:WU_ComplexPredicate} is satisfied is the following. 637 \begin{cfa} 638 A && B || C || !GA && B || !GB && A || !GA && !GB && !GC 639 \end{cfa} 640 Which simplifies to: 641 \begin{cfa} 642 ( A || !GA ) && ( B || !GB ) || C || !GA && !GB && !GC 643 \end{cfa} 644 Checking a predicate this large with each iteration is expensive so \uC and \CFA both take steps to simplify checking statement completion. 645 646 \begin{figure} 647 \begin{cfa} 648 when( GA ) waituntil( A ) {} 649 and when( GB ) waituntil( B ) {} 650 or when( GC ) waituntil( C ) {} 651 \end{cfa} 652 \caption{\lstinline{waituntil} with a non-trivial predicate} 653 \label{f:WU_ComplexPredicate} 654 \end{figure} 604 655 605 656 In the \uC @_Select@ statement, this problem is solved by constructing a tree of the resources, where the internal nodes are operators and the leaves are booleans storing the state of each resource. … … 608 659 Once the root of the tree has both subtrees marked as @true@ then the statement is complete. 609 660 As an optimization, when the internal nodes are updated, the subtrees marked as @true@ are pruned and not examined again. 610 To support statement guards in \uC, the tree prunes a branch if the corresponding guard is false. 611 \PAB{Show an example.} 661 To support statement guards in \uC, the tree is modified to remove an internal node if a guard is false to maintain the appropriate predicate representation. 662 An diagram of the tree for the statement in Figure~\ref{f:WU_ComplexPredicate} is shown in Figure~\ref{f:uC_select_tree}, alongside the modification of the tree that occurs when @GA@ is @false@. 663 664 \begin{figure} 665 \begin{center} 666 \input{diagrams/uCpp_select_tree.tikz} 667 \end{center} 668 \caption{\uC select tree modification} 669 \label{f:uC_select_tree} 670 \end{figure} 612 671 613 672 The \CFA @waituntil@ statement blocks a thread until a set of resources have become available that satisfy the underlying predicate. … … 616 675 Leveraging the compiler, a predicate routine is generated per @waituntil@ that when passes the statuses of the resources, returns @true@ when the @waituntil@ is done, and false otherwise. 617 676 To support guards on the \CFA @waituntil@ statement, the status of a resource disabled by a guard is set to a boolean value that ensures that the predicate function behaves as if that resource is no longer part of the predicate. 618 \PAB{Show an example.} 677 The generated code allows the predicate that is checked with each iteration to be simplified to not check guard values. 678 For example, the following would be generated for the @waituntil@ shown in Figure~\ref{f:WU_ComplexPredicate}. 679 \begin{cfa} 680 // statement completion predicate 681 bool check_completion( select_node * nodes ) { 682 return nodes[0].status && nodes[1].status || nodes[2].status; 683 } 684 685 // skip statement if all guards false 686 if ( GA || GB || GC ) { 687 select_node nodes[3]; 688 nodes[0].status = !GA && GB; // A's status 689 nodes[1].status = !GB && GA; // B's status 690 nodes[2].status = !GC; // C's status 691 692 // ... rest of waituntil codegen ... 693 694 } 695 \end{cfa} 619 696 620 697 \uC's @_Select@, supports operators both inside and outside of the \lstinline[language=uC++]{_Select} clauses. 621 698 In the following example, the code blocks run once their corresponding predicate inside the round braces is satisfied. 622 % C_TODO put this is uC++ code style not cfa-style 699 623 700 \begin{lstlisting}[language=uC++,{moredelim=**[is][\color{red}]{@}{@}}] 624 701 Future_ISM<int> A, B, C, D; … … 640 717 however, that opens the potential for livelock. 641 718 Another possibility is to use resource ordering similar to \CFA's @mutex@ statement, but that alone is insufficient, if the resource ordering is not used universally. 642 Additionally, using resource ordering could conflict with other semantics of the @waituntil@ statement.643 For example, consider if the locks in the example must be acquired in the order @D@, @B@, @C@, @A@ because of other @waituntil@ statements.644 \PAB{I don't understand: If all the locks are available, it becomes complex to both respect the ordering of the \lstinline{waituntil} when choosing which code block to run and also respect the lock ordering of \lstinline{D}, \lstinline{B}, \lstinline{C}, \lstinline{A} at the same time.}645 719 One other way this could be implemented is to wait until all resources for a given clause are available before proceeding to acquire them, but this also quickly becomes a poor approach. 646 720 This approach does not work due to \gls{toctou} issues; … … 661 735 \begin{cfa} 662 736 bool when_conditions[N]; 663 for ( node in s ) $\C[3.75in]{// evaluate guards}$737 for ( node in nodes ) $\C[3.75in]{// evaluate guards}$ 664 738 if ( node has guard ) 665 739 when_conditions[node] = node_guard; … … 667 741 when_conditions[node] = true; 668 742 669 select_nodes s[N]; $\C{// declare N select nodes}$ 743 if ( any when_conditions[node] == true ) { 744 745 select_nodes nodes[N]; $\C{// declare N select nodes}$ 670 746 try { 671 for ( node in s ) $\C{// register nodes}$ 672 if ( when_conditions[node] ) 673 register_select( resource, node ); 674 675 // ... set statuses for nodes with when_conditions[node] == false ... 676 677 while ( statement predicate not satisfied) { $\C{// check predicate}$678 679 680 if ( statement predicate is satisfied) break;681 682 683 684 685 686 687 688 747 // ... set statuses for nodes with when_conditions[node] == false ... 748 749 for ( node in nodes ) $\C{// register nodes}$ 750 if ( when_conditions[node] ) 751 register_select( resource, node ); 752 753 while ( !check_completion( nodes ) ) { $\C{// check predicate}$ 754 // block 755 for ( resource in waituntil statement ) { $\C{// run true code blocks}$ 756 if ( check_completion( nodes ) ) break; 757 if ( resource is avail ) 758 try { 759 if( on_selected( resource ) ) $\C{// conditionally run block}$ 760 run code block 761 } finally $\C{// for exception safety}$ 762 unregister_select( resource, node ); $\C{// immediate unregister}$ 763 } 764 } 689 765 } finally { $\C{// for exception safety}$ 690 for ( registered nodes in s ) $\C{// deregister nodes}$766 for ( registered nodes in nodes ) $\C{// deregister nodes}$ 691 767 if ( when_conditions[node] && unregister_select( resource, node ) 692 768 && on_selected( resource ) ) 693 769 run code block $\C{// run code block upon unregister}\CRT$ 770 } 771 694 772 } 695 773 \end{cfa} -
src/AST/Create.cpp
r2e94f3e7 rc68f6e6 42 42 return nullptr; 43 43 } 44 return new ast::FunctionDecl( decl->location, 45 decl->name, 46 vectorCopy( decl->type_params ), 47 vectorCopy( decl->assertions ), 48 vectorCopy( decl->params ), 49 vectorCopy( decl->returns ), 50 nullptr, 51 decl->storage, 52 decl->linkage, 53 vectorCopy( decl->attributes ), 54 decl->funcSpec, 55 decl->type->isVarArgs 56 ); 44 // The cast and changing the original should be safe as long as the 45 // change is reverted before anything else sees it. It's also faster. 46 FunctionDecl * mutDecl = const_cast<FunctionDecl *>( decl ); 47 CompoundStmt const * stmts = mutDecl->stmts.release(); 48 FunctionDecl * copy = deepCopy( mutDecl ); 49 mutDecl->stmts = stmts; 50 return copy; 57 51 } 58 52 -
src/AST/Util.cpp
r2e94f3e7 rc68f6e6 20 20 #include "Pass.hpp" 21 21 #include "TranslationUnit.hpp" 22 #include "Common/utility.h" 23 #include "GenPoly/ScopedSet.h" 22 24 23 25 #include <vector> 26 27 using GenPoly::ScopedSet; 24 28 25 29 namespace ast { … … 173 177 }; 174 178 179 /// Checks that referred to nodes are in scope. 180 /// This checks many readonly pointers to see if the declaration they are 181 /// referring to is in scope by the structural rules of code. 182 // Any escapes marked with a bug should be removed once the bug is fixed. 183 struct InScopeCore : public ast::WithShortCircuiting { 184 ScopedSet<DeclWithType const *> typedDecls; 185 ScopedSet<TypeDecl const *> typeDecls; 186 // These 3 are really hard to check, because uses that originally ref. at 187 // a forward declaration can be rewired to point a later full definition. 188 ScopedSet<StructDecl const *> structDecls; 189 ScopedSet<UnionDecl const *> unionDecls; 190 ScopedSet<EnumDecl const *> enumDecls; 191 ScopedSet<TraitDecl const *> traitDecls; 192 193 bool isInGlobal = false; 194 195 void beginScope() { 196 typedDecls.beginScope(); 197 typeDecls.beginScope(); 198 structDecls.beginScope(); 199 unionDecls.beginScope(); 200 enumDecls.beginScope(); 201 traitDecls.beginScope(); 202 } 203 204 void endScope() { 205 typedDecls.endScope(); 206 typeDecls.endScope(); 207 structDecls.endScope(); 208 unionDecls.endScope(); 209 enumDecls.endScope(); 210 traitDecls.endScope(); 211 } 212 213 void previsit( ApplicationExpr const * expr ) { 214 // All isInGlobal manipulation is just to isolate this check. 215 // The invalid compound literals lead to bad ctor/dtors. [#280] 216 VariableExpr const * func = nullptr; 217 CastExpr const * cast = nullptr; 218 VariableExpr const * arg = nullptr; 219 if ( isInGlobal 220 && 1 == expr->args.size() 221 && ( func = expr->func.as<VariableExpr>() ) 222 && ( "?{}" == func->var->name || "^?{}" == func->var->name ) 223 && ( cast = expr->args[0].as<CastExpr>() ) 224 && ( arg = cast->arg.as<VariableExpr>() ) 225 && isPrefix( arg->var->name, "_compLit" ) ) { 226 visit_children = false; 227 } 228 } 229 230 void previsit( VariableExpr const * expr ) { 231 if ( !expr->var ) return; 232 // bitwise assignment escape [#281] 233 if ( expr->var->location.isUnset() ) return; 234 assert( typedDecls.contains( expr->var ) ); 235 } 236 237 void previsit( FunctionType const * type ) { 238 // This is to avoid checking the assertions, which can point at the 239 // function's declaration and not the enclosing function. 240 for ( auto type_param : type->forall ) { 241 if ( type_param->formal_usage ) { 242 visit_children = false; 243 // We could check non-assertion fields here. 244 } 245 } 246 } 247 248 void previsit( TypeInstType const * type ) { 249 if ( !type->base ) return; 250 assertf( type->base->isManaged(), "Floating Node" ); 251 252 // bitwise assignment escape [#281] 253 if ( type->base->location.isUnset() ) return; 254 // Formal types can actually look at out of scope variables. 255 if ( type->formal_usage ) return; 256 assert( typeDecls.contains( type->base ) ); 257 } 258 259 void previsit( TraitInstType const * type ) { 260 if ( !type->base ) return; 261 assert( traitDecls.contains( type->base ) ); 262 } 263 264 void previsit( ObjectDecl const * decl ) { 265 typedDecls.insert( decl ); 266 // There are some ill-formed compound literals. [#280] 267 // The only known problem cases are at the top level. 268 if ( isPrefix( decl->name, "_compLit" ) ) { 269 visit_children = false; 270 } 271 } 272 273 void previsit( FunctionDecl const * decl ) { 274 typedDecls.insert( decl ); 275 beginScope(); 276 for ( auto & type_param : decl->type_params ) { 277 typeDecls.insert( type_param ); 278 } 279 for ( auto & assertion : decl->assertions ) { 280 typedDecls.insert( assertion ); 281 } 282 for ( auto & param : decl->params ) { 283 typedDecls.insert( param ); 284 } 285 for ( auto & ret : decl->returns ) { 286 typedDecls.insert( ret ); 287 } 288 // No special handling of withExprs. 289 290 // Part of the compound literal escape. [#280] 291 if ( "__global_init__" == decl->name 292 || "__global_destroy__" == decl->name ) { 293 assert( !isInGlobal ); 294 isInGlobal = true; 295 } 296 } 297 298 void postvisit( FunctionDecl const * decl ) { 299 endScope(); 300 // Part of the compound literal escape. [#280] 301 if ( isInGlobal && ( "__global_init__" == decl->name 302 || "__global_destroy__" == decl->name ) ) { 303 isInGlobal = false; 304 } 305 } 306 307 void previsit( StructDecl const * decl ) { 308 structDecls.insert( decl ); 309 beginScope(); 310 for ( auto & type_param : decl->params ) { 311 typeDecls.insert( type_param ); 312 } 313 } 314 315 void postvisit( StructDecl const * ) { 316 endScope(); 317 } 318 319 void previsit( UnionDecl const * decl ) { 320 unionDecls.insert( decl ); 321 beginScope(); 322 for ( auto & type_param : decl->params ) { 323 typeDecls.insert( type_param ); 324 } 325 } 326 327 void postvisit( UnionDecl const * ) { 328 endScope(); 329 } 330 331 void previsit( EnumDecl const * decl ) { 332 enumDecls.insert( decl ); 333 if ( ast::EnumDecl::EnumHiding::Visible == decl->hide ) { 334 for ( auto & member : decl->members ) { 335 typedDecls.insert( member.strict_as<ast::DeclWithType>() ); 336 } 337 } 338 beginScope(); 339 for ( auto & type_param : decl->params ) { 340 typeDecls.insert( type_param ); 341 } 342 } 343 344 void postvisit( EnumDecl const * ) { 345 endScope(); 346 } 347 348 void previsit( TraitDecl const * decl ) { 349 traitDecls.insert( decl ); 350 beginScope(); 351 for ( auto & type_param : decl->params ) { 352 typeDecls.insert( type_param ); 353 } 354 } 355 356 void postvisit( TraitDecl const * ) { 357 endScope(); 358 } 359 360 void previsit( Designation const * ) { 361 visit_children = false; 362 } 363 }; 364 175 365 } // namespace 176 366 177 367 void checkInvariants( TranslationUnit & transUnit ) { 178 ast::Pass<InvariantCore>::run( transUnit ); 368 Pass<InvariantCore>::run( transUnit ); 369 Pass<InScopeCore>::run( transUnit ); 179 370 } 180 371 -
src/InitTweak/FixInitNew.cpp
r2e94f3e7 rc68f6e6 42 42 43 43 namespace InitTweak { 44 44 45 namespace { 45 46 46 // Shallow copy the pointer list for return. 47 std::vector<ast::ptr<ast::TypeDecl>> getGenericParams( const ast::Type * t ) { 48 if ( auto inst = dynamic_cast<const ast::StructInstType *>( t ) ) { 49 return inst->base->params; 50 } 51 if ( auto inst = dynamic_cast<const ast::UnionInstType *>( t ) ) { 52 return inst->base->params; 53 } 54 return {}; 55 } 56 57 /// Given type T, generate type of default ctor/dtor, i.e. function type void (*) (T &). 58 ast::FunctionDecl * genDefaultFunc( 59 const CodeLocation loc, 60 const std::string fname, 61 const ast::Type * paramType, 62 bool maybePolymorphic = true) { 63 std::vector<ast::ptr<ast::TypeDecl>> typeParams; 64 if ( maybePolymorphic ) typeParams = getGenericParams( paramType ); 65 auto dstParam = new ast::ObjectDecl( loc, 66 "_dst", 67 new ast::ReferenceType( paramType ), 68 nullptr, 69 {}, 70 ast::Linkage::Cforall 47 // Shallow copy the pointer list for return. 48 std::vector<ast::ptr<ast::TypeDecl>> getGenericParams( const ast::Type * t ) { 49 if ( auto inst = dynamic_cast<const ast::StructInstType *>( t ) ) { 50 return inst->base->params; 51 } 52 if ( auto inst = dynamic_cast<const ast::UnionInstType *>( t ) ) { 53 return inst->base->params; 54 } 55 return {}; 56 } 57 58 /// Given type T, generate type of default ctor/dtor, i.e. function type void (*) (T &). 59 ast::FunctionDecl * genDefaultFunc( 60 const CodeLocation loc, 61 const std::string fname, 62 const ast::Type * paramType, 63 bool maybePolymorphic = true) { 64 std::vector<ast::ptr<ast::TypeDecl>> typeParams; 65 if ( maybePolymorphic ) typeParams = getGenericParams( paramType ); 66 auto dstParam = new ast::ObjectDecl( loc, 67 "_dst", 68 new ast::ReferenceType( paramType ), 69 nullptr, 70 {}, 71 ast::Linkage::Cforall 72 ); 73 return new ast::FunctionDecl( loc, 74 fname, 75 std::move(typeParams), 76 {dstParam}, 77 {}, 78 new ast::CompoundStmt(loc), 79 {}, 80 ast::Linkage::Cforall 81 ); 82 } 83 84 struct SelfAssignChecker { 85 void previsit( const ast::ApplicationExpr * appExpr ); 86 }; 87 88 struct StmtExprResult { 89 const ast::StmtExpr * previsit( const ast::StmtExpr * stmtExpr ); 90 }; 91 92 /// wrap function application expressions as ImplicitCopyCtorExpr nodes so that it is easy to identify which 93 /// function calls need their parameters to be copy constructed 94 struct InsertImplicitCalls : public ast::WithShortCircuiting { 95 const ast::Expr * postvisit( const ast::ApplicationExpr * appExpr ); 96 97 // only handles each UniqueExpr once 98 // if order of visit does not change, this should be safe 99 void previsit (const ast::UniqueExpr *); 100 101 std::unordered_set<decltype(ast::UniqueExpr::id)> visitedIds; 102 }; 103 104 /// generate temporary ObjectDecls for each argument and return value of each ImplicitCopyCtorExpr, 105 /// generate/resolve copy construction expressions for each, and generate/resolve destructors for both 106 /// arguments and return value temporaries 107 struct ResolveCopyCtors final : public ast::WithGuards, public ast::WithStmtsToAdd<>, public ast::WithSymbolTable, public ast::WithShortCircuiting, public ast::WithVisitorRef<ResolveCopyCtors>, public ast::WithConstTranslationUnit { 108 const ast::Expr * postvisit( const ast::ImplicitCopyCtorExpr * impCpCtorExpr ); 109 const ast::StmtExpr * previsit( const ast::StmtExpr * stmtExpr ); 110 const ast::UniqueExpr * previsit( const ast::UniqueExpr * unqExpr ); 111 112 /// handles distant mutations of environment manually. 113 /// WithConstTypeSubstitution cannot remember where the environment is from 114 115 /// MUST be called at start of overload previsit 116 void previsit( const ast::Expr * expr); 117 /// MUST be called at return of overload postvisit 118 const ast::Expr * postvisit(const ast::Expr * expr); 119 120 /// create and resolve ctor/dtor expression: fname(var, [cpArg]) 121 const ast::Expr * makeCtorDtor( const std::string & fname, const ast::ObjectDecl * var, const ast::Expr * cpArg = nullptr ); 122 /// true if type does not need to be copy constructed to ensure correctness 123 bool skipCopyConstruct( const ast::Type * type ); 124 ast::ptr< ast::Expr > copyConstructArg( const ast::Expr * arg, const ast::ImplicitCopyCtorExpr * impCpCtorExpr, const ast::Type * formal ); 125 ast::Expr * destructRet( const ast::ObjectDecl * ret, const ast::Expr * arg ); 126 private: 127 /// hack to implement WithTypeSubstitution while conforming to mutation safety. 128 ast::TypeSubstitution * env = nullptr; 129 bool envModified = false; 130 }; 131 132 /// collects constructed object decls - used as a base class 133 struct ObjDeclCollector : public ast::WithGuards, public ast::WithShortCircuiting { 134 // use ordered data structure to maintain ordering for set_difference and for consistent error messages 135 typedef std::list< const ast::ObjectDecl * > ObjectSet; 136 void previsit( const ast::CompoundStmt *compoundStmt ); 137 void previsit( const ast::DeclStmt *stmt ); 138 139 // don't go into other functions 140 void previsit( const ast::FunctionDecl * ) { visit_children = false; } 141 142 protected: 143 ObjectSet curVars; 144 }; 145 146 // debug 147 template<typename ObjectSet> 148 struct PrintSet { 149 PrintSet( const ObjectSet & objs ) : objs( objs ) {} 150 const ObjectSet & objs; 151 }; 152 template<typename ObjectSet> 153 PrintSet<ObjectSet> printSet( const ObjectSet & objs ) { return PrintSet<ObjectSet>( objs ); } 154 template<typename ObjectSet> 155 std::ostream & operator<<( std::ostream & out, const PrintSet<ObjectSet> & set) { 156 out << "{ "; 157 for ( auto & obj : set.objs ) { 158 out << obj->name << ", " ; 159 } // for 160 out << " }"; 161 return out; 162 } 163 164 struct LabelFinder final : public ObjDeclCollector { 165 typedef std::map< std::string, ObjectSet > LabelMap; 166 // map of Label -> live variables at that label 167 LabelMap vars; 168 169 typedef ObjDeclCollector Parent; 170 using Parent::previsit; 171 void previsit( const ast::Stmt * stmt ); 172 173 void previsit( const ast::CompoundStmt *compoundStmt ); 174 void previsit( const ast::DeclStmt *stmt ); 175 }; 176 177 /// insert destructor calls at the appropriate places. must happen before CtorInit nodes are removed 178 /// (currently by FixInit) 179 struct InsertDtors final : public ObjDeclCollector, public ast::WithStmtsToAdd<> { 180 typedef std::list< ObjectDecl * > OrderedDecls; 181 typedef std::list< OrderedDecls > OrderedDeclsStack; 182 183 InsertDtors( ast::Pass<LabelFinder> & finder ) : finder( finder ), labelVars( finder.core.vars ) {} 184 185 typedef ObjDeclCollector Parent; 186 using Parent::previsit; 187 188 void previsit( const ast::FunctionDecl * funcDecl ); 189 190 void previsit( const ast::BranchStmt * stmt ); 191 private: 192 void handleGoto( const ast::BranchStmt * stmt ); 193 194 ast::Pass<LabelFinder> & finder; 195 LabelFinder::LabelMap & labelVars; 196 OrderedDeclsStack reverseDeclOrder; 197 }; 198 199 /// expand each object declaration to use its constructor after it is declared. 200 struct FixInit : public ast::WithStmtsToAdd<> { 201 static void fixInitializers( ast::TranslationUnit &translationUnit ); 202 203 const ast::DeclWithType * postvisit( const ast::ObjectDecl *objDecl ); 204 205 std::list< ast::ptr< ast::Decl > > staticDtorDecls; 206 }; 207 208 /// generate default/copy ctor and dtor calls for user-defined struct ctor/dtors 209 /// for any member that is missing a corresponding ctor/dtor call. 210 /// error if a member is used before constructed 211 struct GenStructMemberCalls final : public ast::WithGuards, public ast::WithShortCircuiting, public ast::WithSymbolTable, public ast::WithVisitorRef<GenStructMemberCalls>, public ast::WithConstTranslationUnit { 212 void previsit( const ast::FunctionDecl * funcDecl ); 213 const ast::DeclWithType * postvisit( const ast::FunctionDecl * funcDecl ); 214 215 void previsit( const ast::MemberExpr * memberExpr ); 216 void previsit( const ast::ApplicationExpr * appExpr ); 217 218 /// Note: this post mutate used to be in a separate visitor. If this pass breaks, one place to examine is whether it is 219 /// okay for this part of the recursion to occur alongside the rest. 220 const ast::Expr * postvisit( const ast::UntypedExpr * expr ); 221 222 SemanticErrorException errors; 223 private: 224 template< typename... Params > 225 void emit( CodeLocation, const Params &... params ); 226 227 ast::FunctionDecl * function = nullptr; 228 std::set< const ast::DeclWithType * > unhandled; 229 std::map< const ast::DeclWithType *, CodeLocation > usedUninit; 230 const ast::ObjectDecl * thisParam = nullptr; 231 bool isCtor = false; // true if current function is a constructor 232 const ast::StructDecl * structDecl = nullptr; 233 }; 234 235 /// expands ConstructorExpr nodes into comma expressions, using a temporary for the first argument 236 struct FixCtorExprs final : public ast::WithDeclsToAdd<>, public ast::WithSymbolTable, public ast::WithShortCircuiting, public ast::WithConstTranslationUnit { 237 const ast::Expr * postvisit( const ast::ConstructorExpr * ctorExpr ); 238 }; 239 240 /// add CompoundStmts around top-level expressions so that temporaries are destroyed in the correct places. 241 struct SplitExpressions : public ast::WithShortCircuiting { 242 ast::Stmt * postvisit( const ast::ExprStmt * stmt ); 243 void previsit( const ast::TupleAssignExpr * expr ); 244 }; 245 246 /// find and return the destructor used in `input`. If `input` is not a simple destructor call, generate a thunk 247 /// that wraps the destructor, insert it into `stmtsToAdd` and return the new function declaration 248 const ast::DeclWithType * getDtorFunc( const ast::ObjectDecl * objDecl, const ast::Stmt * input, std::list< ast::ptr<ast::Stmt> > & stmtsToAdd ) { 249 const CodeLocation loc = input->location; 250 // unwrap implicit statement wrapper 251 // Statement * dtor = input; 252 assert( input ); 253 // std::list< const ast::Expr * > matches; 254 auto matches = collectCtorDtorCalls( input ); 255 256 if ( dynamic_cast< const ast::ExprStmt * >( input ) ) { 257 // only one destructor call in the expression 258 if ( matches.size() == 1 ) { 259 auto func = getFunction( matches.front() ); 260 assertf( func, "getFunction failed to find function in %s", toString( matches.front() ).c_str() ); 261 262 // cleanup argument must be a function, not an object (including function pointer) 263 if ( auto dtorFunc = dynamic_cast< const ast::FunctionDecl * > ( func ) ) { 264 if ( dtorFunc->type->forall.empty() ) { 265 // simple case where the destructor is a monomorphic function call - can simply 266 // use that function as the cleanup function. 267 return func; 268 } 269 } 270 } 271 } 272 273 // otherwise the cleanup is more complicated - need to build a single argument cleanup function that 274 // wraps the more complicated code. 275 static UniqueName dtorNamer( "__cleanup_dtor" ); 276 std::string name = dtorNamer.newName(); 277 ast::FunctionDecl * dtorFunc = genDefaultFunc( loc, name, objDecl->type->stripReferences(), false ); 278 stmtsToAdd.push_back( new ast::DeclStmt(loc, dtorFunc ) ); 279 280 // the original code contains uses of objDecl - replace them with the newly generated 'this' parameter. 281 const ast::ObjectDecl * thisParam = getParamThis( dtorFunc ); 282 const ast::Expr * replacement = new ast::VariableExpr( loc, thisParam ); 283 284 auto base = replacement->result->stripReferences(); 285 if ( dynamic_cast< const ast::ArrayType * >( base ) || dynamic_cast< const ast::TupleType * > ( base ) ) { 286 // need to cast away reference for array types, since the destructor is generated without the reference type, 287 // and for tuple types since tuple indexing does not work directly on a reference 288 replacement = new ast::CastExpr( replacement, base ); 289 } 290 auto dtor = ast::DeclReplacer::replace( input, ast::DeclReplacer::ExprMap{ std::make_pair( objDecl, replacement ) } ); 291 auto mutStmts = dtorFunc->stmts.get_and_mutate(); 292 mutStmts->push_back(strict_dynamic_cast<const ast::Stmt *>( dtor )); 293 dtorFunc->stmts = mutStmts; 294 295 return dtorFunc; 296 } 297 298 void FixInit::fixInitializers( ast::TranslationUnit & translationUnit ) { 299 ast::Pass<FixInit> fixer; 300 301 // can't use mutateAll, because need to insert declarations at top-level 302 // can't use DeclMutator, because sometimes need to insert IfStmt, etc. 303 SemanticErrorException errors; 304 for ( auto i = translationUnit.decls.begin(); i != translationUnit.decls.end(); ++i ) { 305 try { 306 // maybeAccept( *i, fixer ); translationUnit should never contain null 307 *i = (*i)->accept(fixer); 308 translationUnit.decls.splice( i, fixer.core.staticDtorDecls ); 309 } catch( SemanticErrorException &e ) { 310 errors.append( e ); 311 } // try 312 } // for 313 if ( ! errors.isEmpty() ) { 314 throw errors; 315 } // if 316 } 317 318 const ast::StmtExpr * StmtExprResult::previsit( const ast::StmtExpr * stmtExpr ) { 319 // we might loose the result expression here so add a pointer to trace back 320 assert( stmtExpr->result ); 321 const ast::Type * result = stmtExpr->result; 322 if ( ! result->isVoid() ) { 323 auto mutExpr = mutate(stmtExpr); 324 const ast::CompoundStmt * body = mutExpr->stmts; 325 assert( ! body->kids.empty() ); 326 mutExpr->resultExpr = body->kids.back().strict_as<ast::ExprStmt>(); 327 return mutExpr; 328 } 329 return stmtExpr; 330 } 331 332 ast::Stmt * SplitExpressions::postvisit( const ast::ExprStmt * stmt ) { 333 // wrap each top-level ExprStmt in a block so that destructors for argument and return temporaries are destroyed 334 // in the correct places 335 ast::CompoundStmt * ret = new ast::CompoundStmt( stmt->location, { stmt } ); 336 return ret; 337 } 338 339 void SplitExpressions::previsit( const ast::TupleAssignExpr * ) { 340 // don't do this within TupleAssignExpr, since it is already broken up into multiple expressions 341 visit_children = false; 342 } 343 344 // Relatively simple structural comparison for expressions, needed to determine 345 // if two expressions are "the same" (used to determine if self assignment occurs) 346 struct StructuralChecker { 347 // Strip all casts and then dynamic_cast. 348 template<typename T> 349 static const T * cast( const ast::Expr * expr ) { 350 // this might be too permissive. It's possible that only particular casts are relevant. 351 while ( auto cast = dynamic_cast< const ast::CastExpr * >( expr ) ) { 352 expr = cast->arg; 353 } 354 return dynamic_cast< const T * >( expr ); 355 } 356 357 void previsit( const ast::Expr * ) { 358 // anything else does not qualify 359 result = false; 360 } 361 362 // ignore casts 363 void previsit( const ast::CastExpr * ) {} 364 365 void previsit( const ast::MemberExpr * memExpr ) { 366 if ( auto otherMember = cast< ast::MemberExpr >( other ) ) { 367 if ( otherMember->member == memExpr->member ) { 368 other = otherMember->aggregate; 369 return; 370 } 371 } 372 result = false; 373 } 374 375 void previsit( const ast::VariableExpr * varExpr ) { 376 if ( auto otherVar = cast< ast::VariableExpr >( other ) ) { 377 if ( otherVar->var == varExpr->var ) { 378 return; 379 } 380 } 381 result = false; 382 } 383 384 void previsit( const ast::AddressExpr * ) { 385 if ( auto addrExpr = cast< ast::AddressExpr >( other ) ) { 386 other = addrExpr->arg; 387 return; 388 } 389 result = false; 390 } 391 392 const ast::Expr * other; 393 bool result = true; 394 StructuralChecker( const ast::Expr * other ) : other(other) {} 395 }; 396 397 bool structurallySimilar( const ast::Expr * e1, const ast::Expr * e2 ) { 398 return ast::Pass<StructuralChecker>::read( e1, e2 ); 399 } 400 401 void SelfAssignChecker::previsit( const ast::ApplicationExpr * appExpr ) { 402 auto function = getFunction( appExpr ); 403 // Doesn't use isAssignment, because ?+=?, etc. should not count as self-assignment. 404 if ( function->name == "?=?" && appExpr->args.size() == 2 405 // Check for structural similarity (same variable use, ignore casts, etc. 406 // (but does not look too deeply, anything looking like a function is off limits). 407 && structurallySimilar( appExpr->args.front(), appExpr->args.back() ) ) { 408 SemanticWarning( appExpr->location, Warning::SelfAssignment, toCString( appExpr->args.front() ) ); 409 } 410 } 411 412 const ast::Expr * InsertImplicitCalls::postvisit( const ast::ApplicationExpr * appExpr ) { 413 if ( auto function = appExpr->func.as<ast::VariableExpr>() ) { 414 if ( function->var->linkage.is_builtin ) { 415 // optimization: don't need to copy construct in order to call intrinsic functions 416 return appExpr; 417 } else if ( auto funcDecl = function->var.as<ast::DeclWithType>() ) { 418 auto ftype = dynamic_cast< const ast::FunctionType * >( GenPoly::getFunctionType( funcDecl->get_type() ) ); 419 assertf( ftype, "Function call without function type: %s", toString( funcDecl ).c_str() ); 420 if ( CodeGen::isConstructor( funcDecl->name ) && ftype->params.size() == 2 ) { 421 auto t1 = getPointerBase( ftype->params.front() ); 422 auto t2 = ftype->params.back(); 423 assert( t1 ); 424 425 if ( ResolvExpr::typesCompatible( t1, t2 ) ) { 426 // optimization: don't need to copy construct in order to call a copy constructor 427 return appExpr; 428 } // if 429 } else if ( CodeGen::isDestructor( funcDecl->name ) ) { 430 // correctness: never copy construct arguments to a destructor 431 return appExpr; 432 } // if 433 } // if 434 } // if 435 CP_CTOR_PRINT( std::cerr << "InsertImplicitCalls: adding a wrapper " << appExpr << std::endl; ) 436 437 // wrap each function call so that it is easy to identify nodes that have to be copy constructed 438 ast::ptr<ast::TypeSubstitution> tmp = appExpr->env; 439 auto mutExpr = mutate(appExpr); 440 mutExpr->env = nullptr; 441 442 auto expr = new ast::ImplicitCopyCtorExpr( appExpr->location, mutExpr ); 443 // Move the type substitution to the new top-level. The substitution 444 // is needed to obtain the type of temporary variables so that copy 445 // constructor calls can be resolved. 446 expr->env = tmp; 447 return expr; 448 } 449 450 void ResolveCopyCtors::previsit(const ast::Expr * expr) { 451 if ( nullptr == expr->env ) { 452 return; 453 } 454 GuardValue( env ) = expr->env->clone(); 455 GuardValue( envModified ) = false; 456 } 457 458 const ast::Expr * ResolveCopyCtors::postvisit(const ast::Expr * expr) { 459 // No local environment, skip. 460 if ( nullptr == expr->env ) { 461 return expr; 462 // Environment was modified, mutate and replace. 463 } else if ( envModified ) { 464 auto mutExpr = mutate(expr); 465 mutExpr->env = env; 466 return mutExpr; 467 // Environment was not mutated, delete the shallow copy before guard. 468 } else { 469 delete env; 470 return expr; 471 } 472 } 473 474 bool ResolveCopyCtors::skipCopyConstruct( const ast::Type * type ) { return ! isConstructable( type ); } 475 476 const ast::Expr * ResolveCopyCtors::makeCtorDtor( const std::string & fname, const ast::ObjectDecl * var, const ast::Expr * cpArg ) { 477 assert( var ); 478 assert( var->isManaged() ); 479 assert( !cpArg || cpArg->isManaged() ); 480 // arrays are not copy constructed, so this should always be an ExprStmt 481 ast::ptr< ast::Stmt > stmt = genCtorDtor(var->location, fname, var, cpArg ); 482 assertf( stmt, "ResolveCopyCtors: genCtorDtor returned nullptr: %s / %s / %s", fname.c_str(), toString( var ).c_str(), toString( cpArg ).c_str() ); 483 auto exprStmt = stmt.strict_as<ast::ImplicitCtorDtorStmt>()->callStmt.strict_as<ast::ExprStmt>(); 484 ast::ptr<ast::Expr> untyped = exprStmt->expr; // take ownership of expr 485 486 // resolve copy constructor 487 // should only be one alternative for copy ctor and dtor expressions, since all arguments are fixed 488 // (VariableExpr and already resolved expression) 489 CP_CTOR_PRINT( std::cerr << "ResolvingCtorDtor " << untyped << std::endl; ) 490 ast::ptr<ast::Expr> resolved = ResolvExpr::findVoidExpression(untyped, { symtab, transUnit().global } ); 491 assert( resolved ); 492 if ( resolved->env ) { 493 // Extract useful information and discard new environments. Keeping them causes problems in PolyMutator passes. 494 env->add( *resolved->env ); 495 envModified = true; 496 auto mut = mutate(resolved.get()); 497 assertf(mut == resolved.get(), "newly resolved expression must be unique"); 498 mut->env = nullptr; 499 } // if 500 if ( auto assign = resolved.as<ast::TupleAssignExpr>() ) { 501 // fix newly generated StmtExpr 502 previsit( assign->stmtExpr ); 503 } 504 return resolved.release(); 505 } 506 507 ast::ptr<ast::Expr> ResolveCopyCtors::copyConstructArg( 508 const ast::Expr * arg, const ast::ImplicitCopyCtorExpr * impCpCtorExpr, const ast::Type * formal ) 509 { 510 static UniqueName tempNamer("_tmp_cp"); 511 const CodeLocation loc = impCpCtorExpr->location; 512 // CP_CTOR_PRINT( std::cerr << "Type Substitution: " << *env << std::endl; ) 513 assert( arg->result ); 514 ast::ptr<ast::Type> result = arg->result; 515 if ( skipCopyConstruct( result ) ) return arg; // skip certain non-copyable types 516 517 // type may involve type variables, so apply type substitution to get temporary variable's actual type, 518 // since result type may not be substituted (e.g., if the type does not appear in the parameter list) 519 // Use applyFree so that types bound in function pointers are not substituted, e.g. in forall(dtype T) void (*)(T). 520 521 // xxx - this originally mutates arg->result in place. is it correct? 522 assert( env ); 523 result = env->applyFree( result.get() ).node; 524 auto mutResult = result.get_and_mutate(); 525 mutResult->set_const(false); 526 527 auto mutArg = mutate(arg); 528 mutArg->result = mutResult; 529 530 ast::ptr<ast::Expr> guard = mutArg; 531 532 ast::ptr<ast::ObjectDecl> tmp = new ast::ObjectDecl(loc, "__tmp", mutResult, nullptr ); 533 534 // create and resolve copy constructor 535 CP_CTOR_PRINT( std::cerr << "makeCtorDtor for an argument" << std::endl; ) 536 auto cpCtor = makeCtorDtor( "?{}", tmp, mutArg ); 537 538 if ( auto appExpr = dynamic_cast< const ast::ApplicationExpr * >( cpCtor ) ) { 539 // if the chosen constructor is intrinsic, the copy is unnecessary, so 540 // don't create the temporary and don't call the copy constructor 541 auto function = appExpr->func.strict_as<ast::VariableExpr>(); 542 if ( function->var->linkage == ast::Linkage::Intrinsic ) { 543 // arguments that need to be boxed need a temporary regardless of whether the copy constructor is intrinsic, 544 // so that the object isn't changed inside of the polymorphic function 545 if ( ! GenPoly::needsBoxing( formal, result, impCpCtorExpr->callExpr, env ) ) { 546 // xxx - should arg->result be mutated? see comment above. 547 return guard; 548 } 549 } 550 } 551 552 // set a unique name for the temporary once it's certain the call is necessary 553 auto mut = tmp.get_and_mutate(); 554 assertf (mut == tmp, "newly created ObjectDecl must be unique"); 555 mut->name = tempNamer.newName(); 556 557 // replace argument to function call with temporary 558 stmtsToAddBefore.push_back( new ast::DeclStmt(loc, tmp ) ); 559 arg = cpCtor; 560 return destructRet( tmp, arg ); 561 562 // impCpCtorExpr->dtors.push_front( makeCtorDtor( "^?{}", tmp ) ); 563 } 564 565 ast::Expr * ResolveCopyCtors::destructRet( const ast::ObjectDecl * ret, const ast::Expr * arg ) { 566 auto global = transUnit().global; 567 // TODO: refactor code for generating cleanup attribute, since it's common and reused in ~3-4 places 568 // check for existing cleanup attribute before adding another(?) 569 // need to add __Destructor for _tmp_cp variables as well 570 571 assertf( global.dtorStruct, "Destructor generation requires __Destructor definition." ); 572 assertf( global.dtorStruct->members.size() == 2, "__Destructor definition does not have expected fields." ); 573 assertf( global.dtorDestroy, "Destructor generation requires __destroy_Destructor." ); 574 575 const CodeLocation loc = ret->location; 576 577 // generate a __Destructor for ret that calls the destructor 578 auto res = makeCtorDtor( "^?{}", ret ); 579 auto dtor = mutate(res); 580 581 // if the chosen destructor is intrinsic, elide the generated dtor handler 582 if ( arg && isIntrinsicCallExpr( dtor ) ) { 583 return new ast::CommaExpr(loc, arg, new ast::VariableExpr(loc, ret ) ); 584 } 585 586 if ( ! dtor->env ) dtor->env = maybeClone( env ); 587 auto dtorFunc = getDtorFunc( ret, new ast::ExprStmt(loc, dtor ), stmtsToAddBefore ); 588 589 auto dtorStructType = new ast::StructInstType( global.dtorStruct ); 590 591 // what does this do??? 592 dtorStructType->params.push_back( new ast::TypeExpr(loc, new ast::VoidType() ) ); 593 594 // cast destructor pointer to void (*)(void *), to silence GCC incompatible pointer warnings 595 auto dtorFtype = new ast::FunctionType(); 596 dtorFtype->params.push_back( new ast::PointerType(new ast::VoidType( ) ) ); 597 auto dtorType = new ast::PointerType( dtorFtype ); 598 599 static UniqueName namer( "_ret_dtor" ); 600 auto retDtor = new ast::ObjectDecl(loc, namer.newName(), dtorStructType, new ast::ListInit(loc, { new ast::SingleInit(loc, ast::ConstantExpr::null(loc) ), new ast::SingleInit(loc, new ast::CastExpr( new ast::VariableExpr(loc, dtorFunc ), dtorType ) ) } ) ); 601 retDtor->attributes.push_back( new ast::Attribute( "cleanup", { new ast::VariableExpr(loc, global.dtorDestroy ) } ) ); 602 stmtsToAddBefore.push_back( new ast::DeclStmt(loc, retDtor ) ); 603 604 if ( arg ) { 605 auto member = new ast::MemberExpr(loc, global.dtorStruct->members.front().strict_as<ast::DeclWithType>(), new ast::VariableExpr(loc, retDtor ) ); 606 auto object = new ast::CastExpr( new ast::AddressExpr( new ast::VariableExpr(loc, ret ) ), new ast::PointerType(new ast::VoidType() ) ); 607 ast::Expr * assign = createBitwiseAssignment( member, object ); 608 return new ast::CommaExpr(loc, new ast::CommaExpr(loc, arg, assign ), new ast::VariableExpr(loc, ret ) ); 609 } 610 return nullptr; 611 // impCpCtorExpr->get_dtors().push_front( makeCtorDtor( "^?{}", ret ) ); 612 } 613 614 const ast::Expr * ResolveCopyCtors::postvisit( const ast::ImplicitCopyCtorExpr *impCpCtorExpr ) { 615 CP_CTOR_PRINT( std::cerr << "ResolveCopyCtors: " << impCpCtorExpr << std::endl; ) 616 617 ast::ApplicationExpr * appExpr = mutate(impCpCtorExpr->callExpr.get()); 618 const ast::ObjectDecl * returnDecl = nullptr; 619 const CodeLocation loc = appExpr->location; 620 621 // take each argument and attempt to copy construct it. 622 auto ftype = GenPoly::getFunctionType( appExpr->func->result ); 623 assert( ftype ); 624 auto & params = ftype->params; 625 auto iter = params.begin(); 626 for ( auto & arg : appExpr->args ) { 627 const ast::Type * formal = nullptr; 628 if ( iter != params.end() ) { // does not copy construct C-style variadic arguments 629 // DeclarationWithType * param = *iter++; 630 formal = *iter++; 631 } 632 633 arg = copyConstructArg( arg, impCpCtorExpr, formal ); 634 } // for 635 636 // each return value from the call needs to be connected with an ObjectDecl at the call site, which is 637 // initialized with the return value and is destructed later 638 // xxx - handle named return values? 639 const ast::Type * result = appExpr->result; 640 if ( ! result->isVoid() ) { 641 static UniqueName retNamer("_tmp_cp_ret"); 642 auto subResult = env->apply( result ).node; 643 auto ret = new ast::ObjectDecl(loc, retNamer.newName(), subResult, nullptr ); 644 auto mutType = mutate(ret->type.get()); 645 mutType->set_const( false ); 646 ret->type = mutType; 647 returnDecl = ret; 648 stmtsToAddBefore.push_back( new ast::DeclStmt(loc, ret ) ); 649 CP_CTOR_PRINT( std::cerr << "makeCtorDtor for a return" << std::endl; ) 650 } // for 651 CP_CTOR_PRINT( std::cerr << "after Resolving: " << impCpCtorExpr << std::endl; ) 652 // ------------------------------------------------------ 653 654 CP_CTOR_PRINT( std::cerr << "Coming out the back..." << impCpCtorExpr << std::endl; ) 655 656 // detach fields from wrapper node so that it can be deleted without deleting too much 657 658 // xxx - actual env might be somewhere else, need to keep invariant 659 660 // deletion of wrapper should be handled by pass template now 661 662 // impCpCtorExpr->callExpr = nullptr; 663 assert (appExpr->env == nullptr); 664 appExpr->env = impCpCtorExpr->env; 665 // std::swap( impCpCtorExpr->env, appExpr->env ); 666 // assert( impCpCtorExpr->env == nullptr ); 667 // delete impCpCtorExpr; 668 669 if ( returnDecl ) { 670 ast::Expr * assign = createBitwiseAssignment( new ast::VariableExpr(loc, returnDecl ), appExpr ); 671 if ( ! dynamic_cast< const ast::ReferenceType * >( result ) ) { 672 // destructing reference returns is bad because it can cause multiple destructor calls to the same object - the returned object is not a temporary 673 assign = destructRet( returnDecl, assign ); 674 assert(assign); 675 } else { 676 assign = new ast::CommaExpr(loc, assign, new ast::VariableExpr(loc, returnDecl ) ); 677 } 678 // move env from appExpr to retExpr 679 // std::swap( assign->env, appExpr->env ); 680 assign->env = appExpr->env; 681 // actual env is handled by common routine that replaces WithTypeSubstitution 682 return postvisit((const ast::Expr *)assign); 683 } else { 684 return postvisit((const ast::Expr *)appExpr); 685 } // if 686 } 687 688 const ast::StmtExpr * ResolveCopyCtors::previsit( const ast::StmtExpr * _stmtExpr ) { 689 // function call temporaries should be placed at statement-level, rather than nested inside of a new statement expression, 690 // since temporaries can be shared across sub-expressions, e.g. 691 // [A, A] f(); // decl 692 // g([A] x, [A] y); // decl 693 // g(f()); // call 694 // f is executed once, so the return temporary is shared across the tuple constructors for x and y. 695 // Explicitly mutating children instead of mutating the inner compound statement forces the temporaries to be added 696 // to the outer context, rather than inside of the statement expression. 697 698 // call the common routine that replaces WithTypeSubstitution 699 previsit((const ast::Expr *) _stmtExpr); 700 701 visit_children = false; 702 const CodeLocation loc = _stmtExpr->location; 703 704 assert( env ); 705 706 symtab.enterScope(); 707 // visit all statements 708 auto stmtExpr = mutate(_stmtExpr); 709 auto mutStmts = mutate(stmtExpr->stmts.get()); 710 711 auto & stmts = mutStmts->kids; 712 for ( auto & stmt : stmts ) { 713 stmt = stmt->accept( *visitor ); 714 } // for 715 stmtExpr->stmts = mutStmts; 716 symtab.leaveScope(); 717 718 assert( stmtExpr->result ); 719 // const ast::Type * result = stmtExpr->result; 720 if ( ! stmtExpr->result->isVoid() ) { 721 static UniqueName retNamer("_tmp_stmtexpr_ret"); 722 723 // result = result->clone(); 724 auto result = env->apply( stmtExpr->result.get() ).node; 725 if ( ! InitTweak::isConstructable( result ) ) { 726 // delete result; 727 return stmtExpr; 728 } 729 auto mutResult = result.get_and_mutate(); 730 mutResult->set_const(false); 731 732 // create variable that will hold the result of the stmt expr 733 auto ret = new ast::ObjectDecl(loc, retNamer.newName(), mutResult, nullptr ); 734 stmtsToAddBefore.push_back( new ast::DeclStmt(loc, ret ) ); 735 736 assertf( 737 stmtExpr->resultExpr, 738 "Statement-Expression should have a resulting expression at %s:%d", 739 stmtExpr->location.filename.c_str(), 740 stmtExpr->location.first_line 71 741 ); 72 return new ast::FunctionDecl( loc, 73 fname, 74 std::move(typeParams), 75 {dstParam}, 76 {}, 77 new ast::CompoundStmt(loc), 78 {}, 79 ast::Linkage::Cforall 80 ); 81 } 82 83 struct SelfAssignChecker { 84 void previsit( const ast::ApplicationExpr * appExpr ); 85 }; 86 87 struct StmtExprResult { 88 const ast::StmtExpr * previsit( const ast::StmtExpr * stmtExpr ); 89 }; 90 91 /// wrap function application expressions as ImplicitCopyCtorExpr nodes so that it is easy to identify which 92 /// function calls need their parameters to be copy constructed 93 struct InsertImplicitCalls : public ast::WithShortCircuiting { 94 const ast::Expr * postvisit( const ast::ApplicationExpr * appExpr ); 95 96 // only handles each UniqueExpr once 97 // if order of visit does not change, this should be safe 98 void previsit (const ast::UniqueExpr *); 99 100 std::unordered_set<decltype(ast::UniqueExpr::id)> visitedIds; 101 }; 102 103 /// generate temporary ObjectDecls for each argument and return value of each ImplicitCopyCtorExpr, 104 /// generate/resolve copy construction expressions for each, and generate/resolve destructors for both 105 /// arguments and return value temporaries 106 struct ResolveCopyCtors final : public ast::WithGuards, public ast::WithStmtsToAdd<>, public ast::WithSymbolTable, public ast::WithShortCircuiting, public ast::WithVisitorRef<ResolveCopyCtors>, public ast::WithConstTranslationUnit { 107 const ast::Expr * postvisit( const ast::ImplicitCopyCtorExpr * impCpCtorExpr ); 108 const ast::StmtExpr * previsit( const ast::StmtExpr * stmtExpr ); 109 const ast::UniqueExpr * previsit( const ast::UniqueExpr * unqExpr ); 110 111 /// handles distant mutations of environment manually. 112 /// WithConstTypeSubstitution cannot remember where the environment is from 113 114 /// MUST be called at start of overload previsit 115 void previsit( const ast::Expr * expr); 116 /// MUST be called at return of overload postvisit 117 const ast::Expr * postvisit(const ast::Expr * expr); 118 119 /// create and resolve ctor/dtor expression: fname(var, [cpArg]) 120 const ast::Expr * makeCtorDtor( const std::string & fname, const ast::ObjectDecl * var, const ast::Expr * cpArg = nullptr ); 121 /// true if type does not need to be copy constructed to ensure correctness 122 bool skipCopyConstruct( const ast::Type * type ); 123 ast::ptr< ast::Expr > copyConstructArg( const ast::Expr * arg, const ast::ImplicitCopyCtorExpr * impCpCtorExpr, const ast::Type * formal ); 124 ast::Expr * destructRet( const ast::ObjectDecl * ret, const ast::Expr * arg ); 125 private: 126 /// hack to implement WithTypeSubstitution while conforming to mutation safety. 127 ast::TypeSubstitution * env = nullptr; 128 bool envModified = false; 129 }; 130 131 /// collects constructed object decls - used as a base class 132 struct ObjDeclCollector : public ast::WithGuards, public ast::WithShortCircuiting { 133 // use ordered data structure to maintain ordering for set_difference and for consistent error messages 134 typedef std::list< const ast::ObjectDecl * > ObjectSet; 135 void previsit( const ast::CompoundStmt *compoundStmt ); 136 void previsit( const ast::DeclStmt *stmt ); 137 138 // don't go into other functions 139 void previsit( const ast::FunctionDecl * ) { visit_children = false; } 140 141 protected: 142 ObjectSet curVars; 143 }; 144 145 // debug 146 template<typename ObjectSet> 147 struct PrintSet { 148 PrintSet( const ObjectSet & objs ) : objs( objs ) {} 149 const ObjectSet & objs; 150 }; 151 template<typename ObjectSet> 152 PrintSet<ObjectSet> printSet( const ObjectSet & objs ) { return PrintSet<ObjectSet>( objs ); } 153 template<typename ObjectSet> 154 std::ostream & operator<<( std::ostream & out, const PrintSet<ObjectSet> & set) { 155 out << "{ "; 156 for ( auto & obj : set.objs ) { 157 out << obj->name << ", " ; 158 } // for 159 out << " }"; 160 return out; 161 } 162 163 struct LabelFinder final : public ObjDeclCollector { 164 typedef std::map< std::string, ObjectSet > LabelMap; 165 // map of Label -> live variables at that label 166 LabelMap vars; 167 168 typedef ObjDeclCollector Parent; 169 using Parent::previsit; 170 void previsit( const ast::Stmt * stmt ); 171 172 void previsit( const ast::CompoundStmt *compoundStmt ); 173 void previsit( const ast::DeclStmt *stmt ); 174 }; 175 176 /// insert destructor calls at the appropriate places. must happen before CtorInit nodes are removed 177 /// (currently by FixInit) 178 struct InsertDtors final : public ObjDeclCollector, public ast::WithStmtsToAdd<> { 179 typedef std::list< ObjectDecl * > OrderedDecls; 180 typedef std::list< OrderedDecls > OrderedDeclsStack; 181 182 InsertDtors( ast::Pass<LabelFinder> & finder ) : finder( finder ), labelVars( finder.core.vars ) {} 183 184 typedef ObjDeclCollector Parent; 185 using Parent::previsit; 186 187 void previsit( const ast::FunctionDecl * funcDecl ); 188 189 void previsit( const ast::BranchStmt * stmt ); 190 private: 191 void handleGoto( const ast::BranchStmt * stmt ); 192 193 ast::Pass<LabelFinder> & finder; 194 LabelFinder::LabelMap & labelVars; 195 OrderedDeclsStack reverseDeclOrder; 196 }; 197 198 /// expand each object declaration to use its constructor after it is declared. 199 struct FixInit : public ast::WithStmtsToAdd<> { 200 static void fixInitializers( ast::TranslationUnit &translationUnit ); 201 202 const ast::DeclWithType * postvisit( const ast::ObjectDecl *objDecl ); 203 204 std::list< ast::ptr< ast::Decl > > staticDtorDecls; 205 }; 206 207 /// generate default/copy ctor and dtor calls for user-defined struct ctor/dtors 208 /// for any member that is missing a corresponding ctor/dtor call. 209 /// error if a member is used before constructed 210 struct GenStructMemberCalls final : public ast::WithGuards, public ast::WithShortCircuiting, public ast::WithSymbolTable, public ast::WithVisitorRef<GenStructMemberCalls>, public ast::WithConstTranslationUnit { 211 void previsit( const ast::FunctionDecl * funcDecl ); 212 const ast::DeclWithType * postvisit( const ast::FunctionDecl * funcDecl ); 213 214 void previsit( const ast::MemberExpr * memberExpr ); 215 void previsit( const ast::ApplicationExpr * appExpr ); 216 217 /// Note: this post mutate used to be in a separate visitor. If this pass breaks, one place to examine is whether it is 218 /// okay for this part of the recursion to occur alongside the rest. 219 const ast::Expr * postvisit( const ast::UntypedExpr * expr ); 220 221 SemanticErrorException errors; 222 private: 223 template< typename... Params > 224 void emit( CodeLocation, const Params &... params ); 225 226 ast::FunctionDecl * function = nullptr; 227 std::set< const ast::DeclWithType * > unhandled; 228 std::map< const ast::DeclWithType *, CodeLocation > usedUninit; 229 const ast::ObjectDecl * thisParam = nullptr; 230 bool isCtor = false; // true if current function is a constructor 231 const ast::StructDecl * structDecl = nullptr; 232 }; 233 234 /// expands ConstructorExpr nodes into comma expressions, using a temporary for the first argument 235 struct FixCtorExprs final : public ast::WithDeclsToAdd<>, public ast::WithSymbolTable, public ast::WithShortCircuiting, public ast::WithConstTranslationUnit { 236 const ast::Expr * postvisit( const ast::ConstructorExpr * ctorExpr ); 237 }; 238 239 /// add CompoundStmts around top-level expressions so that temporaries are destroyed in the correct places. 240 struct SplitExpressions : public ast::WithShortCircuiting { 241 ast::Stmt * postvisit( const ast::ExprStmt * stmt ); 242 void previsit( const ast::TupleAssignExpr * expr ); 243 }; 742 743 const ast::ExprStmt * last = stmtExpr->resultExpr; 744 // xxx - if this is non-unique, need to copy while making resultExpr ref 745 assertf(last->unique(), "attempt to modify weakly shared statement"); 746 auto mutLast = mutate(last); 747 // above assertion means in-place mutation is OK 748 try { 749 mutLast->expr = makeCtorDtor( "?{}", ret, mutLast->expr ); 750 } catch(...) { 751 std::cerr << "*CFA internal error: "; 752 std::cerr << "can't resolve implicit constructor"; 753 std::cerr << " at " << stmtExpr->location.filename; 754 std::cerr << ":" << stmtExpr->location.first_line << std::endl; 755 756 abort(); 757 } 758 759 // add destructors after current statement 760 stmtsToAddAfter.push_back( new ast::ExprStmt(loc, makeCtorDtor( "^?{}", ret ) ) ); 761 762 // must have a non-empty body, otherwise it wouldn't have a result 763 assert( ! stmts.empty() ); 764 765 // if there is a return decl, add a use as the last statement; will not have return decl on non-constructable returns 766 stmts.push_back( new ast::ExprStmt(loc, new ast::VariableExpr(loc, ret ) ) ); 767 } // if 768 769 assert( stmtExpr->returnDecls.empty() ); 770 assert( stmtExpr->dtors.empty() ); 771 772 return stmtExpr; 773 } 774 775 // to prevent warnings ('_unq0' may be used uninitialized in this function), 776 // insert an appropriate zero initializer for UniqueExpr temporaries. 777 ast::Init * makeInit( const ast::Type * t, CodeLocation const & loc ) { 778 if ( auto inst = dynamic_cast< const ast::StructInstType * >( t ) ) { 779 // initizer for empty struct must be empty 780 if ( inst->base->members.empty() ) { 781 return new ast::ListInit( loc, {} ); 782 } 783 } else if ( auto inst = dynamic_cast< const ast::UnionInstType * >( t ) ) { 784 // initizer for empty union must be empty 785 if ( inst->base->members.empty() ) { 786 return new ast::ListInit( loc, {} ); 787 } 788 } 789 790 return new ast::ListInit( loc, { 791 new ast::SingleInit( loc, ast::ConstantExpr::from_int( loc, 0 ) ) 792 } ); 793 } 794 795 const ast::UniqueExpr * ResolveCopyCtors::previsit( const ast::UniqueExpr * unqExpr ) { 796 visit_children = false; 797 // xxx - hack to prevent double-handling of unique exprs, otherwise too many temporary variables and destructors are generated 798 static std::unordered_map< int, const ast::UniqueExpr * > unqMap; 799 auto mutExpr = mutate(unqExpr); 800 if ( ! unqMap.count( unqExpr->id ) ) { 801 // resolve expr and find its 802 803 auto impCpCtorExpr = mutExpr->expr.as<ast::ImplicitCopyCtorExpr>(); 804 // PassVisitor<ResolveCopyCtors> fixer; 805 806 mutExpr->expr = mutExpr->expr->accept( *visitor ); 807 // it should never be necessary to wrap a void-returning expression in a UniqueExpr - if this assumption changes, this needs to be rethought 808 assert( unqExpr->result ); 809 if ( impCpCtorExpr ) { 810 auto comma = unqExpr->expr.strict_as<ast::CommaExpr>(); 811 auto var = comma->arg2.strict_as<ast::VariableExpr>(); 812 // note the variable used as the result from the call 813 mutExpr->var = var; 814 } else { 815 // expr isn't a call expr, so create a new temporary variable to use to hold the value of the unique expression 816 mutExpr->object = new ast::ObjectDecl( mutExpr->location, toString("_unq", mutExpr->id), mutExpr->result, makeInit( mutExpr->result, mutExpr->location ) ); 817 mutExpr->var = new ast::VariableExpr( mutExpr->location, mutExpr->object ); 818 } 819 820 unqMap[mutExpr->id] = mutExpr; 821 } else { 822 // take data from other UniqueExpr to ensure consistency 823 // delete unqExpr->get_expr(); 824 mutExpr->expr = unqMap[mutExpr->id]->expr; 825 // delete unqExpr->result; 826 mutExpr->result = mutExpr->expr->result; 827 } 828 return mutExpr; 829 } 830 831 const ast::DeclWithType * FixInit::postvisit( const ast::ObjectDecl *_objDecl ) { 832 const CodeLocation loc = _objDecl->location; 833 834 // since this removes the init field from objDecl, it must occur after children are mutated (i.e. postvisit) 835 if ( ast::ptr<ast::ConstructorInit> ctorInit = _objDecl->init.as<ast::ConstructorInit>() ) { 836 auto objDecl = mutate(_objDecl); 837 838 // could this be non-unique? 839 if (objDecl != _objDecl) { 840 std::cerr << "FixInit: non-unique object decl " << objDecl->location << objDecl->name << std::endl; 841 } 842 // a decision should have been made by the resolver, so ctor and init are not both non-NULL 843 assert( ! ctorInit->ctor || ! ctorInit->init ); 844 if ( const ast::Stmt * ctor = ctorInit->ctor ) { 845 if ( objDecl->storage.is_static ) { 846 addDataSectionAttribute(objDecl); 847 // originally wanted to take advantage of gcc nested functions, but 848 // we get memory errors with this approach. To remedy this, the static 849 // variable is hoisted when the destructor needs to be called. 850 // 851 // generate: 852 // static T __objName_static_varN; 853 // void __objName_dtor_atexitN() { 854 // __dtor__...; 855 // } 856 // int f(...) { 857 // ... 858 // static bool __objName_uninitialized = true; 859 // if (__objName_uninitialized) { 860 // __ctor(__objName); 861 // __objName_uninitialized = false; 862 // atexit(__objName_dtor_atexitN); 863 // } 864 // ... 865 // } 866 867 static UniqueName dtorCallerNamer( "_dtor_atexit" ); 868 869 // static bool __objName_uninitialized = true 870 auto boolType = new ast::BasicType( ast::BasicType::Kind::Bool ); 871 auto boolInitExpr = new ast::SingleInit(loc, ast::ConstantExpr::from_int(loc, 1 ) ); 872 auto isUninitializedVar = new ast::ObjectDecl(loc, objDecl->mangleName + "_uninitialized", boolType, boolInitExpr, ast::Storage::Static, ast::Linkage::Cforall); 873 isUninitializedVar->fixUniqueId(); 874 875 // __objName_uninitialized = false; 876 auto setTrue = new ast::UntypedExpr(loc, new ast::NameExpr(loc, "?=?" ) ); 877 setTrue->args.push_back( new ast::VariableExpr(loc, isUninitializedVar ) ); 878 setTrue->args.push_back( ast::ConstantExpr::from_int(loc, 0 ) ); 879 880 // generate body of if 881 auto initStmts = new ast::CompoundStmt(loc); 882 auto & body = initStmts->kids; 883 body.push_back( ctor ); 884 body.push_back( new ast::ExprStmt(loc, setTrue ) ); 885 886 // put it all together 887 auto ifStmt = new ast::IfStmt(loc, new ast::VariableExpr(loc, isUninitializedVar ), initStmts, 0 ); 888 stmtsToAddAfter.push_back( new ast::DeclStmt(loc, isUninitializedVar ) ); 889 stmtsToAddAfter.push_back( ifStmt ); 890 891 const ast::Stmt * dtor = ctorInit->dtor; 892 893 // these should be automatically managed once reassigned 894 // objDecl->set_init( nullptr ); 895 // ctorInit->set_ctor( nullptr ); 896 // ctorInit->set_dtor( nullptr ); 897 if ( dtor ) { 898 // if the object has a non-trivial destructor, have to 899 // hoist it and the object into the global space and 900 // call the destructor function with atexit. 901 902 // Statement * dtorStmt = dtor->clone(); 903 904 // void __objName_dtor_atexitN(...) {...} 905 ast::FunctionDecl * dtorCaller = new ast::FunctionDecl(loc, objDecl->mangleName + dtorCallerNamer.newName(), {}, {}, {}, new ast::CompoundStmt(loc, {dtor}), ast::Storage::Static, ast::Linkage::C ); 906 dtorCaller->fixUniqueId(); 907 // dtorCaller->stmts->push_back( dtor ); 908 909 // atexit(dtor_atexit); 910 auto callAtexit = new ast::UntypedExpr(loc, new ast::NameExpr(loc, "atexit" ) ); 911 callAtexit->args.push_back( new ast::VariableExpr(loc, dtorCaller ) ); 912 913 body.push_back( new ast::ExprStmt(loc, callAtexit ) ); 914 915 // hoist variable and dtor caller decls to list of decls that will be added into global scope 916 staticDtorDecls.push_back( objDecl ); 917 staticDtorDecls.push_back( dtorCaller ); 918 919 // need to rename object uniquely since it now appears 920 // at global scope and there could be multiple function-scoped 921 // static variables with the same name in different functions. 922 // Note: it isn't sufficient to modify only the mangleName, because 923 // then subsequent Indexer passes can choke on seeing the object's name 924 // if another object has the same name and type. An unfortunate side-effect 925 // of renaming the object is that subsequent NameExprs may fail to resolve, 926 // but there shouldn't be any remaining past this point. 927 static UniqueName staticNamer( "_static_var" ); 928 objDecl->name = objDecl->name + staticNamer.newName(); 929 objDecl->mangleName = Mangle::mangle( objDecl ); 930 objDecl->init = nullptr; 931 932 // xxx - temporary hack: need to return a declaration, but want to hoist the current object out of this scope 933 // create a new object which is never used 934 static UniqueName dummyNamer( "_dummy" ); 935 auto dummy = new ast::ObjectDecl(loc, dummyNamer.newName(), new ast::PointerType(new ast::VoidType()), nullptr, ast::Storage::Static, ast::Linkage::Cforall, 0, { new ast::Attribute("unused") } ); 936 // delete ctorInit; 937 return dummy; 938 } else { 939 objDecl->init = nullptr; 940 return objDecl; 941 } 942 } else { 943 auto implicit = strict_dynamic_cast< const ast::ImplicitCtorDtorStmt * > ( ctor ); 944 auto ctorStmt = implicit->callStmt.as<ast::ExprStmt>(); 945 const ast::ApplicationExpr * ctorCall = nullptr; 946 if ( ctorStmt && (ctorCall = isIntrinsicCallExpr( ctorStmt->expr )) && ctorCall->args.size() == 2 ) { 947 // clean up intrinsic copy constructor calls by making them into SingleInits 948 const ast::Expr * ctorArg = ctorCall->args.back(); 949 // ctorCall should be gone afterwards 950 auto mutArg = mutate(ctorArg); 951 mutArg->env = ctorCall->env; 952 // std::swap( ctorArg->env, ctorCall->env ); 953 objDecl->init = new ast::SingleInit(loc, mutArg ); 954 955 // ctorCall->args.pop_back(); 956 } else { 957 stmtsToAddAfter.push_back( ctor ); 958 objDecl->init = nullptr; 959 // ctorInit->ctor = nullptr; 960 } 961 962 const ast::Stmt * dtor = ctorInit->dtor; 963 if ( dtor ) { 964 auto implicit = strict_dynamic_cast< const ast::ImplicitCtorDtorStmt * >( dtor ); 965 const ast::Stmt * dtorStmt = implicit->callStmt; 966 967 // don't need to call intrinsic dtor, because it does nothing, but 968 // non-intrinsic dtors must be called 969 if ( ! isIntrinsicSingleArgCallStmt( dtorStmt ) ) { 970 // set dtor location to the object's location for error messages 971 auto dtorFunc = getDtorFunc( objDecl, dtorStmt, stmtsToAddBefore ); 972 objDecl->attributes.push_back( new ast::Attribute( "cleanup", { new ast::VariableExpr(loc, dtorFunc ) } ) ); 973 // ctorInit->dtor = nullptr; 974 } // if 975 } 976 } // if 977 } else if ( const ast::Init * init = ctorInit->init ) { 978 objDecl->init = init; 979 // ctorInit->init = nullptr; 980 } else { 981 // no constructor and no initializer, which is okay 982 objDecl->init = nullptr; 983 } // if 984 // delete ctorInit; 985 return objDecl; 986 } // if 987 return _objDecl; 988 } 989 990 void ObjDeclCollector::previsit( const ast::CompoundStmt * ) { 991 GuardValue( curVars ); 992 } 993 994 void ObjDeclCollector::previsit( const ast::DeclStmt * stmt ) { 995 // keep track of all variables currently in scope 996 if ( auto objDecl = stmt->decl.as<ast::ObjectDecl>() ) { 997 curVars.push_back( objDecl ); 998 } // if 999 } 1000 1001 void LabelFinder::previsit( const ast::Stmt * stmt ) { 1002 // for each label, remember the variables in scope at that label. 1003 for ( auto l : stmt->labels ) { 1004 vars[l] = curVars; 1005 } // for 1006 } 1007 1008 void LabelFinder::previsit( const ast::CompoundStmt * stmt ) { 1009 previsit( (const ast::Stmt *) stmt ); 1010 Parent::previsit( stmt ); 1011 } 1012 1013 void LabelFinder::previsit( const ast::DeclStmt * stmt ) { 1014 previsit( (const ast::Stmt *)stmt ); 1015 Parent::previsit( stmt ); 1016 } 1017 1018 void InsertDtors::previsit( const ast::FunctionDecl * funcDecl ) { 1019 // each function needs to have its own set of labels 1020 GuardValue( labelVars ); 1021 labelVars.clear(); 1022 // LabelFinder does not recurse into FunctionDecl, so need to visit 1023 // its children manually. 1024 if (funcDecl->type) funcDecl->type->accept(finder); 1025 // maybeAccept( funcDecl->type, finder ); 1026 if (funcDecl->stmts) funcDecl->stmts->accept(finder) ; 1027 1028 // all labels for this function have been collected, insert destructors as appropriate via implicit recursion. 1029 } 1030 1031 // Handle break/continue/goto in the same manner as C++. Basic idea: any objects that are in scope at the 1032 // BranchStmt but not at the labelled (target) statement must be destructed. If there are any objects in scope 1033 // at the target location but not at the BranchStmt then those objects would be uninitialized so notify the user 1034 // of the error. See C++ Reference 6.6 Jump Statements for details. 1035 void InsertDtors::handleGoto( const ast::BranchStmt * stmt ) { 1036 // can't do anything for computed goto 1037 if ( stmt->computedTarget ) return; 1038 1039 assertf( stmt->target.name != "", "BranchStmt missing a label: %s", toString( stmt ).c_str() ); 1040 // S_L = lvars = set of objects in scope at label definition 1041 // S_G = curVars = set of objects in scope at goto statement 1042 ObjectSet & lvars = labelVars[ stmt->target ]; 1043 1044 DTOR_PRINT( 1045 std::cerr << "at goto label: " << stmt->target.name << std::endl; 1046 std::cerr << "S_G = " << printSet( curVars ) << std::endl; 1047 std::cerr << "S_L = " << printSet( lvars ) << std::endl; 1048 ) 1049 1050 1051 // std::set_difference requires that the inputs be sorted. 1052 lvars.sort(); 1053 curVars.sort(); 1054 1055 ObjectSet diff; 1056 // S_L-S_G results in set of objects whose construction is skipped - it's an error if this set is non-empty 1057 std::set_difference( lvars.begin(), lvars.end(), curVars.begin(), curVars.end(), std::inserter( diff, diff.begin() ) ); 1058 DTOR_PRINT( 1059 std::cerr << "S_L-S_G = " << printSet( diff ) << std::endl; 1060 ) 1061 if ( ! diff.empty() ) { 1062 SemanticError( stmt, std::string("jump to label '") + stmt->target.name + "' crosses initialization of " + (*diff.begin())->name + " " ); 1063 } // if 1064 } 1065 1066 void InsertDtors::previsit( const ast::BranchStmt * stmt ) { 1067 switch( stmt->kind ) { 1068 case ast::BranchStmt::Continue: 1069 case ast::BranchStmt::Break: 1070 // could optimize the break/continue case, because the S_L-S_G check is unnecessary (this set should 1071 // always be empty), but it serves as a small sanity check. 1072 case ast::BranchStmt::Goto: 1073 handleGoto( stmt ); 1074 break; 1075 default: 1076 assert( false ); 1077 } // switch 1078 } 1079 1080 bool checkWarnings( const ast::FunctionDecl * funcDecl ) { 1081 // only check for warnings if the current function is a user-defined 1082 // constructor or destructor 1083 if ( ! funcDecl ) return false; 1084 if ( ! funcDecl->stmts ) return false; 1085 return CodeGen::isCtorDtor( funcDecl->name ) && ! funcDecl->linkage.is_overrideable; 1086 } 1087 1088 void GenStructMemberCalls::previsit( const ast::FunctionDecl * funcDecl ) { 1089 GuardValue( function ); 1090 GuardValue( unhandled ); 1091 GuardValue( usedUninit ); 1092 GuardValue( thisParam ); 1093 GuardValue( isCtor ); 1094 GuardValue( structDecl ); 1095 errors = SemanticErrorException(); // clear previous errors 1096 1097 // need to start with fresh sets 1098 unhandled.clear(); 1099 usedUninit.clear(); 1100 1101 function = mutate(funcDecl); 1102 // could this be non-unique? 1103 if (function != funcDecl) { 1104 std::cerr << "GenStructMemberCalls: non-unique FunctionDecl " << funcDecl->location << funcDecl->name << std::endl; 1105 } 1106 1107 isCtor = CodeGen::isConstructor( function->name ); 1108 if ( checkWarnings( function ) ) { 1109 // const ast::FunctionType * type = function->type; 1110 // assert( ! type->params.empty() ); 1111 thisParam = function->params.front().strict_as<ast::ObjectDecl>(); 1112 auto thisType = getPointerBase( thisParam->get_type() ); 1113 auto structType = dynamic_cast< const ast::StructInstType * >( thisType ); 1114 if ( structType ) { 1115 structDecl = structType->base; 1116 for ( auto & member : structDecl->members ) { 1117 if ( auto field = member.as<ast::ObjectDecl>() ) { 1118 // record all of the struct type's members that need to be constructed or 1119 // destructed by the end of the function 1120 unhandled.insert( field ); 1121 } 1122 } 1123 } 1124 } 1125 } 1126 1127 const ast::DeclWithType * GenStructMemberCalls::postvisit( const ast::FunctionDecl * funcDecl ) { 1128 // remove the unhandled objects from usedUninit, because a call is inserted 1129 // to handle them - only objects that are later constructed are used uninitialized. 1130 std::map< const ast::DeclWithType *, CodeLocation > diff; 1131 // need the comparator since usedUninit and unhandled have different types 1132 struct comp_t { 1133 typedef decltype(usedUninit)::value_type usedUninit_t; 1134 typedef decltype(unhandled)::value_type unhandled_t; 1135 bool operator()(usedUninit_t x, unhandled_t y) { return x.first < y; } 1136 bool operator()(unhandled_t x, usedUninit_t y) { return x < y.first; } 1137 } comp; 1138 std::set_difference( usedUninit.begin(), usedUninit.end(), unhandled.begin(), unhandled.end(), std::inserter( diff, diff.begin() ), comp ); 1139 for ( auto p : diff ) { 1140 auto member = p.first; 1141 auto loc = p.second; 1142 // xxx - make error message better by also tracking the location that the object is constructed at? 1143 emit( loc, "in ", function->name, ", field ", member->name, " used before being constructed" ); 1144 } 1145 1146 const CodeLocation loc = funcDecl->location; 1147 1148 if ( ! unhandled.empty() ) { 1149 auto mutStmts = function->stmts.get_and_mutate(); 1150 // need to explicitly re-add function parameters to the indexer in order to resolve copy constructors 1151 auto guard = makeFuncGuard( [this]() { symtab.enterScope(); }, [this]() { symtab.leaveScope(); } ); 1152 symtab.addFunction( function ); 1153 auto global = transUnit().global; 1154 1155 // need to iterate through members in reverse in order for 1156 // ctor/dtor statements to come out in the right order 1157 for ( auto & member : reverseIterate( structDecl->members ) ) { 1158 auto field = member.as<ast::ObjectDecl>(); 1159 // skip non-DWT members 1160 if ( ! field ) continue; 1161 // skip non-constructable members 1162 if ( ! tryConstruct( field ) ) continue; 1163 // skip handled members 1164 if ( ! unhandled.count( field ) ) continue; 1165 1166 // insert and resolve default/copy constructor call for each field that's unhandled 1167 // std::list< const ast::Stmt * > stmt; 1168 ast::Expr * arg2 = nullptr; 1169 if ( function->name == "?{}" && isCopyFunction( function ) ) { 1170 // if copy ctor, need to pass second-param-of-this-function.field 1171 // std::list< DeclarationWithType * > & params = function->get_functionType()->get_parameters(); 1172 assert( function->params.size() == 2 ); 1173 arg2 = new ast::MemberExpr(funcDecl->location, field, new ast::VariableExpr(funcDecl->location, function->params.back() ) ); 1174 } 1175 InitExpander_new srcParam( arg2 ); 1176 // cast away reference type and construct field. 1177 ast::Expr * thisExpr = new ast::CastExpr(funcDecl->location, new ast::VariableExpr(funcDecl->location, thisParam ), thisParam->get_type()->stripReferences()); 1178 ast::Expr * memberDest = new ast::MemberExpr(funcDecl->location, field, thisExpr ); 1179 ast::ptr<ast::Stmt> callStmt = SymTab::genImplicitCall( srcParam, memberDest, loc, function->name, field, static_cast<SymTab::LoopDirection>(isCtor) ); 1180 1181 if ( callStmt ) { 1182 // auto & callStmt = stmt.front(); 1183 1184 try { 1185 callStmt = callStmt->accept( *visitor ); 1186 if ( isCtor ) { 1187 mutStmts->push_front( callStmt ); 1188 } else { // TODO: don't generate destructor function/object for intrinsic calls 1189 // destructor statements should be added at the end 1190 // function->get_statements()->push_back( callStmt ); 1191 1192 // Optimization: do not need to call intrinsic destructors on members 1193 if ( isIntrinsicSingleArgCallStmt( callStmt ) ) continue; 1194 1195 // __Destructor _dtor0 = { (void *)&b.a1, (void (*)(void *)_destroy_A }; 1196 std::list< ast::ptr<ast::Stmt> > stmtsToAdd; 1197 1198 static UniqueName memberDtorNamer = { "__memberDtor" }; 1199 assertf( global.dtorStruct, "builtin __Destructor not found." ); 1200 assertf( global.dtorDestroy, "builtin __destroy_Destructor not found." ); 1201 1202 ast::Expr * thisExpr = new ast::CastExpr( new ast::AddressExpr( new ast::VariableExpr(loc, thisParam ) ), new ast::PointerType( new ast::VoidType(), ast::CV::Qualifiers() ) ); 1203 ast::Expr * dtorExpr = new ast::VariableExpr(loc, getDtorFunc( thisParam, callStmt, stmtsToAdd ) ); 1204 1205 // cast destructor pointer to void (*)(void *), to silence GCC incompatible pointer warnings 1206 auto dtorFtype = new ast::FunctionType(); 1207 dtorFtype->params.emplace_back( new ast::PointerType( new ast::VoidType() ) ); 1208 auto dtorType = new ast::PointerType( dtorFtype ); 1209 1210 auto destructor = new ast::ObjectDecl(loc, memberDtorNamer.newName(), new ast::StructInstType( global.dtorStruct ), new ast::ListInit(loc, { new ast::SingleInit(loc, thisExpr ), new ast::SingleInit(loc, new ast::CastExpr( dtorExpr, dtorType ) ) } ) ); 1211 destructor->attributes.push_back( new ast::Attribute( "cleanup", { new ast::VariableExpr( loc, global.dtorDestroy ) } ) ); 1212 mutStmts->push_front( new ast::DeclStmt(loc, destructor ) ); 1213 mutStmts->kids.splice( mutStmts->kids.begin(), stmtsToAdd ); 1214 } 1215 } catch ( SemanticErrorException & error ) { 1216 emit( funcDecl->location, "in ", function->name , ", field ", field->name, " not explicitly ", isCtor ? "constructed" : "destructed", " and no ", isCtor ? "default constructor" : "destructor", " found" ); 1217 } 1218 } 1219 } 1220 function->stmts = mutStmts; 1221 } 1222 if (! errors.isEmpty()) { 1223 throw errors; 1224 } 1225 // return funcDecl; 1226 return function; 1227 } 1228 1229 /// true if expr is effectively just the 'this' parameter 1230 bool isThisExpression( const ast::Expr * expr, const ast::DeclWithType * thisParam ) { 1231 // TODO: there are more complicated ways to pass 'this' to a constructor, e.g. &*, *&, etc. 1232 if ( auto varExpr = dynamic_cast< const ast::VariableExpr * >( expr ) ) { 1233 return varExpr->var == thisParam; 1234 } else if ( auto castExpr = dynamic_cast< const ast::CastExpr * > ( expr ) ) { 1235 return isThisExpression( castExpr->arg, thisParam ); 1236 } 1237 return false; 1238 } 1239 1240 /// returns a MemberExpr if expr is effectively just member access on the 'this' parameter, else nullptr 1241 const ast::MemberExpr * isThisMemberExpr( const ast::Expr * expr, const ast::DeclWithType * thisParam ) { 1242 if ( auto memberExpr = dynamic_cast< const ast::MemberExpr * >( expr ) ) { 1243 if ( isThisExpression( memberExpr->aggregate, thisParam ) ) { 1244 return memberExpr; 1245 } 1246 } else if ( auto castExpr = dynamic_cast< const ast::CastExpr * >( expr ) ) { 1247 return isThisMemberExpr( castExpr->arg, thisParam ); 1248 } 1249 return nullptr; 1250 } 1251 1252 void GenStructMemberCalls::previsit( const ast::ApplicationExpr * appExpr ) { 1253 if ( ! checkWarnings( function ) ) { 1254 visit_children = false; 1255 return; 1256 } 1257 1258 std::string fname = getFunctionName( appExpr ); 1259 if ( fname == function->name ) { 1260 // call to same kind of function 1261 const ast::Expr * firstParam = appExpr->args.front(); 1262 1263 if ( isThisExpression( firstParam, thisParam ) ) { 1264 // if calling another constructor on thisParam, assume that function handles 1265 // all members - if it doesn't a warning will appear in that function. 1266 unhandled.clear(); 1267 } else if ( auto memberExpr = isThisMemberExpr( firstParam, thisParam ) ) { 1268 // if first parameter is a member expression on the this parameter, 1269 // then remove the member from unhandled set. 1270 if ( isThisExpression( memberExpr->aggregate, thisParam ) ) { 1271 unhandled.erase( memberExpr->member ); 1272 } 1273 } 1274 } 1275 } 1276 1277 void GenStructMemberCalls::previsit( const ast::MemberExpr * memberExpr ) { 1278 if ( ! checkWarnings( function ) || ! isCtor ) { 1279 visit_children = false; 1280 return; 1281 } 1282 1283 if ( isThisExpression( memberExpr->aggregate, thisParam ) ) { 1284 if ( unhandled.count( memberExpr->member ) ) { 1285 // emit a warning because a member was used before it was constructed 1286 usedUninit.insert( { memberExpr->member, memberExpr->location } ); 1287 } 1288 } 1289 } 1290 1291 template< typename... Params > 1292 void GenStructMemberCalls::emit( CodeLocation loc, const Params &... params ) { 1293 SemanticErrorException err( loc, toString( params... ) ); 1294 errors.append( err ); 1295 } 1296 1297 const ast::Expr * GenStructMemberCalls::postvisit( const ast::UntypedExpr * untypedExpr ) { 1298 // xxx - functions returning ast::ptr seems wrong... 1299 auto res = ResolvExpr::findVoidExpression( untypedExpr, { symtab, transUnit().global } ); 1300 return res.release(); 1301 } 1302 1303 void InsertImplicitCalls::previsit(const ast::UniqueExpr * unqExpr) { 1304 if (visitedIds.count(unqExpr->id)) visit_children = false; 1305 else visitedIds.insert(unqExpr->id); 1306 } 1307 1308 const ast::Expr * FixCtorExprs::postvisit( const ast::ConstructorExpr * ctorExpr ) { 1309 const CodeLocation loc = ctorExpr->location; 1310 static UniqueName tempNamer( "_tmp_ctor_expr" ); 1311 // xxx - is the size check necessary? 1312 assert( ctorExpr->result && ctorExpr->result->size() == 1 ); 1313 1314 // xxx - this can be TupleAssignExpr now. Need to properly handle this case. 1315 // take possession of expr and env 1316 ast::ptr<ast::ApplicationExpr> callExpr = ctorExpr->callExpr.strict_as<ast::ApplicationExpr>(); 1317 ast::ptr<ast::TypeSubstitution> env = ctorExpr->env; 1318 // ctorExpr->set_callExpr( nullptr ); 1319 // ctorExpr->set_env( nullptr ); 1320 1321 // xxx - ideally we would reuse the temporary generated from the copy constructor passes from within firstArg if it exists and not generate a temporary if it's unnecessary. 1322 auto tmp = new ast::ObjectDecl(loc, tempNamer.newName(), callExpr->args.front()->result ); 1323 declsToAddBefore.push_back( tmp ); 1324 1325 // build assignment and replace constructor's first argument with new temporary 1326 auto mutCallExpr = callExpr.get_and_mutate(); 1327 const ast::Expr * firstArg = callExpr->args.front(); 1328 ast::Expr * assign = new ast::UntypedExpr(loc, new ast::NameExpr(loc, "?=?" ), { new ast::AddressExpr(loc, new ast::VariableExpr(loc, tmp ) ), new ast::AddressExpr( firstArg ) } ); 1329 firstArg = new ast::VariableExpr(loc, tmp ); 1330 mutCallExpr->args.front() = firstArg; 1331 1332 // resolve assignment and dispose of new env 1333 auto resolved = ResolvExpr::findVoidExpression( assign, { symtab, transUnit().global } ); 1334 auto mut = resolved.get_and_mutate(); 1335 assertf(resolved.get() == mut, "newly resolved expression must be unique"); 1336 mut->env = nullptr; 1337 1338 // for constructor expr: 1339 // T x; 1340 // x{}; 1341 // results in: 1342 // T x; 1343 // T & tmp; 1344 // &tmp = &x, ?{}(tmp), tmp 1345 ast::CommaExpr * commaExpr = new ast::CommaExpr(loc, resolved, new ast::CommaExpr(loc, mutCallExpr, new ast::VariableExpr(loc, tmp ) ) ); 1346 commaExpr->env = env; 1347 return commaExpr; 1348 } 1349 244 1350 } // namespace 245 1351 … … 274 1380 } 275 1381 276 namespace {277 /// find and return the destructor used in `input`. If `input` is not a simple destructor call, generate a thunk278 /// that wraps the destructor, insert it into `stmtsToAdd` and return the new function declaration279 const ast::DeclWithType * getDtorFunc( const ast::ObjectDecl * objDecl, const ast::Stmt * input, std::list< ast::ptr<ast::Stmt> > & stmtsToAdd ) {280 const CodeLocation loc = input->location;281 // unwrap implicit statement wrapper282 // Statement * dtor = input;283 assert( input );284 // std::list< const ast::Expr * > matches;285 auto matches = collectCtorDtorCalls( input );286 287 if ( dynamic_cast< const ast::ExprStmt * >( input ) ) {288 // only one destructor call in the expression289 if ( matches.size() == 1 ) {290 auto func = getFunction( matches.front() );291 assertf( func, "getFunction failed to find function in %s", toString( matches.front() ).c_str() );292 293 // cleanup argument must be a function, not an object (including function pointer)294 if ( auto dtorFunc = dynamic_cast< const ast::FunctionDecl * > ( func ) ) {295 if ( dtorFunc->type->forall.empty() ) {296 // simple case where the destructor is a monomorphic function call - can simply297 // use that function as the cleanup function.298 return func;299 }300 }301 }302 }303 304 // otherwise the cleanup is more complicated - need to build a single argument cleanup function that305 // wraps the more complicated code.306 static UniqueName dtorNamer( "__cleanup_dtor" );307 std::string name = dtorNamer.newName();308 ast::FunctionDecl * dtorFunc = genDefaultFunc( loc, name, objDecl->type->stripReferences(), false );309 stmtsToAdd.push_back( new ast::DeclStmt(loc, dtorFunc ) );310 311 // the original code contains uses of objDecl - replace them with the newly generated 'this' parameter.312 const ast::ObjectDecl * thisParam = getParamThis( dtorFunc );313 const ast::Expr * replacement = new ast::VariableExpr( loc, thisParam );314 315 auto base = replacement->result->stripReferences();316 if ( dynamic_cast< const ast::ArrayType * >( base ) || dynamic_cast< const ast::TupleType * > ( base ) ) {317 // need to cast away reference for array types, since the destructor is generated without the reference type,318 // and for tuple types since tuple indexing does not work directly on a reference319 replacement = new ast::CastExpr( replacement, base );320 }321 auto dtor = ast::DeclReplacer::replace( input, ast::DeclReplacer::ExprMap{ std::make_pair( objDecl, replacement ) } );322 auto mutStmts = dtorFunc->stmts.get_and_mutate();323 mutStmts->push_back(strict_dynamic_cast<const ast::Stmt *>( dtor ));324 dtorFunc->stmts = mutStmts;325 326 return dtorFunc;327 }328 329 void FixInit::fixInitializers( ast::TranslationUnit & translationUnit ) {330 ast::Pass<FixInit> fixer;331 332 // can't use mutateAll, because need to insert declarations at top-level333 // can't use DeclMutator, because sometimes need to insert IfStmt, etc.334 SemanticErrorException errors;335 for ( auto i = translationUnit.decls.begin(); i != translationUnit.decls.end(); ++i ) {336 try {337 // maybeAccept( *i, fixer ); translationUnit should never contain null338 *i = (*i)->accept(fixer);339 translationUnit.decls.splice( i, fixer.core.staticDtorDecls );340 } catch( SemanticErrorException &e ) {341 errors.append( e );342 } // try343 } // for344 if ( ! errors.isEmpty() ) {345 throw errors;346 } // if347 }348 349 const ast::StmtExpr * StmtExprResult::previsit( const ast::StmtExpr * stmtExpr ) {350 // we might loose the result expression here so add a pointer to trace back351 assert( stmtExpr->result );352 const ast::Type * result = stmtExpr->result;353 if ( ! result->isVoid() ) {354 auto mutExpr = mutate(stmtExpr);355 const ast::CompoundStmt * body = mutExpr->stmts;356 assert( ! body->kids.empty() );357 mutExpr->resultExpr = body->kids.back().strict_as<ast::ExprStmt>();358 return mutExpr;359 }360 return stmtExpr;361 }362 363 ast::Stmt * SplitExpressions::postvisit( const ast::ExprStmt * stmt ) {364 // wrap each top-level ExprStmt in a block so that destructors for argument and return temporaries are destroyed365 // in the correct places366 ast::CompoundStmt * ret = new ast::CompoundStmt( stmt->location, { stmt } );367 return ret;368 }369 370 void SplitExpressions::previsit( const ast::TupleAssignExpr * ) {371 // don't do this within TupleAssignExpr, since it is already broken up into multiple expressions372 visit_children = false;373 }374 375 // Relatively simple structural comparison for expressions, needed to determine376 // if two expressions are "the same" (used to determine if self assignment occurs)377 struct StructuralChecker {378 // Strip all casts and then dynamic_cast.379 template<typename T>380 static const T * cast( const ast::Expr * expr ) {381 // this might be too permissive. It's possible that only particular casts are relevant.382 while ( auto cast = dynamic_cast< const ast::CastExpr * >( expr ) ) {383 expr = cast->arg;384 }385 return dynamic_cast< const T * >( expr );386 }387 388 void previsit( const ast::Expr * ) {389 // anything else does not qualify390 result = false;391 }392 393 // ignore casts394 void previsit( const ast::CastExpr * ) {}395 396 void previsit( const ast::MemberExpr * memExpr ) {397 if ( auto otherMember = cast< ast::MemberExpr >( other ) ) {398 if ( otherMember->member == memExpr->member ) {399 other = otherMember->aggregate;400 return;401 }402 }403 result = false;404 }405 406 void previsit( const ast::VariableExpr * varExpr ) {407 if ( auto otherVar = cast< ast::VariableExpr >( other ) ) {408 if ( otherVar->var == varExpr->var ) {409 return;410 }411 }412 result = false;413 }414 415 void previsit( const ast::AddressExpr * ) {416 if ( auto addrExpr = cast< ast::AddressExpr >( other ) ) {417 other = addrExpr->arg;418 return;419 }420 result = false;421 }422 423 const ast::Expr * other;424 bool result = true;425 StructuralChecker( const ast::Expr * other ) : other(other) {}426 };427 428 bool structurallySimilar( const ast::Expr * e1, const ast::Expr * e2 ) {429 return ast::Pass<StructuralChecker>::read( e1, e2 );430 }431 432 void SelfAssignChecker::previsit( const ast::ApplicationExpr * appExpr ) {433 auto function = getFunction( appExpr );434 // Doesn't use isAssignment, because ?+=?, etc. should not count as self-assignment.435 if ( function->name == "?=?" && appExpr->args.size() == 2436 // Check for structural similarity (same variable use, ignore casts, etc.437 // (but does not look too deeply, anything looking like a function is off limits).438 && structurallySimilar( appExpr->args.front(), appExpr->args.back() ) ) {439 SemanticWarning( appExpr->location, Warning::SelfAssignment, toCString( appExpr->args.front() ) );440 }441 }442 443 const ast::Expr * InsertImplicitCalls::postvisit( const ast::ApplicationExpr * appExpr ) {444 if ( auto function = appExpr->func.as<ast::VariableExpr>() ) {445 if ( function->var->linkage.is_builtin ) {446 // optimization: don't need to copy construct in order to call intrinsic functions447 return appExpr;448 } else if ( auto funcDecl = function->var.as<ast::DeclWithType>() ) {449 auto ftype = dynamic_cast< const ast::FunctionType * >( GenPoly::getFunctionType( funcDecl->get_type() ) );450 assertf( ftype, "Function call without function type: %s", toString( funcDecl ).c_str() );451 if ( CodeGen::isConstructor( funcDecl->name ) && ftype->params.size() == 2 ) {452 auto t1 = getPointerBase( ftype->params.front() );453 auto t2 = ftype->params.back();454 assert( t1 );455 456 if ( ResolvExpr::typesCompatible( t1, t2 ) ) {457 // optimization: don't need to copy construct in order to call a copy constructor458 return appExpr;459 } // if460 } else if ( CodeGen::isDestructor( funcDecl->name ) ) {461 // correctness: never copy construct arguments to a destructor462 return appExpr;463 } // if464 } // if465 } // if466 CP_CTOR_PRINT( std::cerr << "InsertImplicitCalls: adding a wrapper " << appExpr << std::endl; )467 468 // wrap each function call so that it is easy to identify nodes that have to be copy constructed469 ast::ptr<ast::TypeSubstitution> tmp = appExpr->env;470 auto mutExpr = mutate(appExpr);471 mutExpr->env = nullptr;472 473 auto expr = new ast::ImplicitCopyCtorExpr( appExpr->location, mutExpr );474 // Move the type substitution to the new top-level. The substitution475 // is needed to obtain the type of temporary variables so that copy476 // constructor calls can be resolved.477 expr->env = tmp;478 return expr;479 }480 481 void ResolveCopyCtors::previsit(const ast::Expr * expr) {482 if ( nullptr == expr->env ) {483 return;484 }485 GuardValue( env ) = expr->env->clone();486 GuardValue( envModified ) = false;487 }488 489 const ast::Expr * ResolveCopyCtors::postvisit(const ast::Expr * expr) {490 // No local environment, skip.491 if ( nullptr == expr->env ) {492 return expr;493 // Environment was modified, mutate and replace.494 } else if ( envModified ) {495 auto mutExpr = mutate(expr);496 mutExpr->env = env;497 return mutExpr;498 // Environment was not mutated, delete the shallow copy before guard.499 } else {500 delete env;501 return expr;502 }503 }504 505 bool ResolveCopyCtors::skipCopyConstruct( const ast::Type * type ) { return ! isConstructable( type ); }506 507 const ast::Expr * ResolveCopyCtors::makeCtorDtor( const std::string & fname, const ast::ObjectDecl * var, const ast::Expr * cpArg ) {508 assert( var );509 assert( var->isManaged() );510 assert( !cpArg || cpArg->isManaged() );511 // arrays are not copy constructed, so this should always be an ExprStmt512 ast::ptr< ast::Stmt > stmt = genCtorDtor(var->location, fname, var, cpArg );513 assertf( stmt, "ResolveCopyCtors: genCtorDtor returned nullptr: %s / %s / %s", fname.c_str(), toString( var ).c_str(), toString( cpArg ).c_str() );514 auto exprStmt = stmt.strict_as<ast::ImplicitCtorDtorStmt>()->callStmt.strict_as<ast::ExprStmt>();515 ast::ptr<ast::Expr> untyped = exprStmt->expr; // take ownership of expr516 517 // resolve copy constructor518 // should only be one alternative for copy ctor and dtor expressions, since all arguments are fixed519 // (VariableExpr and already resolved expression)520 CP_CTOR_PRINT( std::cerr << "ResolvingCtorDtor " << untyped << std::endl; )521 ast::ptr<ast::Expr> resolved = ResolvExpr::findVoidExpression(untyped, { symtab, transUnit().global } );522 assert( resolved );523 if ( resolved->env ) {524 // Extract useful information and discard new environments. Keeping them causes problems in PolyMutator passes.525 env->add( *resolved->env );526 envModified = true;527 auto mut = mutate(resolved.get());528 assertf(mut == resolved.get(), "newly resolved expression must be unique");529 mut->env = nullptr;530 } // if531 if ( auto assign = resolved.as<ast::TupleAssignExpr>() ) {532 // fix newly generated StmtExpr533 previsit( assign->stmtExpr );534 }535 return resolved.release();536 }537 538 ast::ptr<ast::Expr> ResolveCopyCtors::copyConstructArg(539 const ast::Expr * arg, const ast::ImplicitCopyCtorExpr * impCpCtorExpr, const ast::Type * formal )540 {541 static UniqueName tempNamer("_tmp_cp");542 const CodeLocation loc = impCpCtorExpr->location;543 // CP_CTOR_PRINT( std::cerr << "Type Substitution: " << *env << std::endl; )544 assert( arg->result );545 ast::ptr<ast::Type> result = arg->result;546 if ( skipCopyConstruct( result ) ) return arg; // skip certain non-copyable types547 548 // type may involve type variables, so apply type substitution to get temporary variable's actual type,549 // since result type may not be substituted (e.g., if the type does not appear in the parameter list)550 // Use applyFree so that types bound in function pointers are not substituted, e.g. in forall(dtype T) void (*)(T).551 552 // xxx - this originally mutates arg->result in place. is it correct?553 assert( env );554 result = env->applyFree( result.get() ).node;555 auto mutResult = result.get_and_mutate();556 mutResult->set_const(false);557 558 auto mutArg = mutate(arg);559 mutArg->result = mutResult;560 561 ast::ptr<ast::Expr> guard = mutArg;562 563 ast::ptr<ast::ObjectDecl> tmp = new ast::ObjectDecl(loc, "__tmp", mutResult, nullptr );564 565 // create and resolve copy constructor566 CP_CTOR_PRINT( std::cerr << "makeCtorDtor for an argument" << std::endl; )567 auto cpCtor = makeCtorDtor( "?{}", tmp, mutArg );568 569 if ( auto appExpr = dynamic_cast< const ast::ApplicationExpr * >( cpCtor ) ) {570 // if the chosen constructor is intrinsic, the copy is unnecessary, so571 // don't create the temporary and don't call the copy constructor572 auto function = appExpr->func.strict_as<ast::VariableExpr>();573 if ( function->var->linkage == ast::Linkage::Intrinsic ) {574 // arguments that need to be boxed need a temporary regardless of whether the copy constructor is intrinsic,575 // so that the object isn't changed inside of the polymorphic function576 if ( ! GenPoly::needsBoxing( formal, result, impCpCtorExpr->callExpr, env ) ) {577 // xxx - should arg->result be mutated? see comment above.578 return guard;579 }580 }581 }582 583 // set a unique name for the temporary once it's certain the call is necessary584 auto mut = tmp.get_and_mutate();585 assertf (mut == tmp, "newly created ObjectDecl must be unique");586 mut->name = tempNamer.newName();587 588 // replace argument to function call with temporary589 stmtsToAddBefore.push_back( new ast::DeclStmt(loc, tmp ) );590 arg = cpCtor;591 return destructRet( tmp, arg );592 593 // impCpCtorExpr->dtors.push_front( makeCtorDtor( "^?{}", tmp ) );594 }595 596 ast::Expr * ResolveCopyCtors::destructRet( const ast::ObjectDecl * ret, const ast::Expr * arg ) {597 auto global = transUnit().global;598 // TODO: refactor code for generating cleanup attribute, since it's common and reused in ~3-4 places599 // check for existing cleanup attribute before adding another(?)600 // need to add __Destructor for _tmp_cp variables as well601 602 assertf( global.dtorStruct, "Destructor generation requires __Destructor definition." );603 assertf( global.dtorStruct->members.size() == 2, "__Destructor definition does not have expected fields." );604 assertf( global.dtorDestroy, "Destructor generation requires __destroy_Destructor." );605 606 const CodeLocation loc = ret->location;607 608 // generate a __Destructor for ret that calls the destructor609 auto res = makeCtorDtor( "^?{}", ret );610 auto dtor = mutate(res);611 612 // if the chosen destructor is intrinsic, elide the generated dtor handler613 if ( arg && isIntrinsicCallExpr( dtor ) ) {614 return new ast::CommaExpr(loc, arg, new ast::VariableExpr(loc, ret ) );615 }616 617 if ( ! dtor->env ) dtor->env = maybeClone( env );618 auto dtorFunc = getDtorFunc( ret, new ast::ExprStmt(loc, dtor ), stmtsToAddBefore );619 620 auto dtorStructType = new ast::StructInstType( global.dtorStruct );621 622 // what does this do???623 dtorStructType->params.push_back( new ast::TypeExpr(loc, new ast::VoidType() ) );624 625 // cast destructor pointer to void (*)(void *), to silence GCC incompatible pointer warnings626 auto dtorFtype = new ast::FunctionType();627 dtorFtype->params.push_back( new ast::PointerType(new ast::VoidType( ) ) );628 auto dtorType = new ast::PointerType( dtorFtype );629 630 static UniqueName namer( "_ret_dtor" );631 auto retDtor = new ast::ObjectDecl(loc, namer.newName(), dtorStructType, new ast::ListInit(loc, { new ast::SingleInit(loc, ast::ConstantExpr::null(loc) ), new ast::SingleInit(loc, new ast::CastExpr( new ast::VariableExpr(loc, dtorFunc ), dtorType ) ) } ) );632 retDtor->attributes.push_back( new ast::Attribute( "cleanup", { new ast::VariableExpr(loc, global.dtorDestroy ) } ) );633 stmtsToAddBefore.push_back( new ast::DeclStmt(loc, retDtor ) );634 635 if ( arg ) {636 auto member = new ast::MemberExpr(loc, global.dtorStruct->members.front().strict_as<ast::DeclWithType>(), new ast::VariableExpr(loc, retDtor ) );637 auto object = new ast::CastExpr( new ast::AddressExpr( new ast::VariableExpr(loc, ret ) ), new ast::PointerType(new ast::VoidType() ) );638 ast::Expr * assign = createBitwiseAssignment( member, object );639 return new ast::CommaExpr(loc, new ast::CommaExpr(loc, arg, assign ), new ast::VariableExpr(loc, ret ) );640 }641 return nullptr;642 // impCpCtorExpr->get_dtors().push_front( makeCtorDtor( "^?{}", ret ) );643 }644 645 const ast::Expr * ResolveCopyCtors::postvisit( const ast::ImplicitCopyCtorExpr *impCpCtorExpr ) {646 CP_CTOR_PRINT( std::cerr << "ResolveCopyCtors: " << impCpCtorExpr << std::endl; )647 648 ast::ApplicationExpr * appExpr = mutate(impCpCtorExpr->callExpr.get());649 const ast::ObjectDecl * returnDecl = nullptr;650 const CodeLocation loc = appExpr->location;651 652 // take each argument and attempt to copy construct it.653 auto ftype = GenPoly::getFunctionType( appExpr->func->result );654 assert( ftype );655 auto & params = ftype->params;656 auto iter = params.begin();657 for ( auto & arg : appExpr->args ) {658 const ast::Type * formal = nullptr;659 if ( iter != params.end() ) { // does not copy construct C-style variadic arguments660 // DeclarationWithType * param = *iter++;661 formal = *iter++;662 }663 664 arg = copyConstructArg( arg, impCpCtorExpr, formal );665 } // for666 667 // each return value from the call needs to be connected with an ObjectDecl at the call site, which is668 // initialized with the return value and is destructed later669 // xxx - handle named return values?670 const ast::Type * result = appExpr->result;671 if ( ! result->isVoid() ) {672 static UniqueName retNamer("_tmp_cp_ret");673 auto subResult = env->apply( result ).node;674 auto ret = new ast::ObjectDecl(loc, retNamer.newName(), subResult, nullptr );675 auto mutType = mutate(ret->type.get());676 mutType->set_const( false );677 ret->type = mutType;678 returnDecl = ret;679 stmtsToAddBefore.push_back( new ast::DeclStmt(loc, ret ) );680 CP_CTOR_PRINT( std::cerr << "makeCtorDtor for a return" << std::endl; )681 } // for682 CP_CTOR_PRINT( std::cerr << "after Resolving: " << impCpCtorExpr << std::endl; )683 // ------------------------------------------------------684 685 CP_CTOR_PRINT( std::cerr << "Coming out the back..." << impCpCtorExpr << std::endl; )686 687 // detach fields from wrapper node so that it can be deleted without deleting too much688 689 // xxx - actual env might be somewhere else, need to keep invariant690 691 // deletion of wrapper should be handled by pass template now692 693 // impCpCtorExpr->callExpr = nullptr;694 assert (appExpr->env == nullptr);695 appExpr->env = impCpCtorExpr->env;696 // std::swap( impCpCtorExpr->env, appExpr->env );697 // assert( impCpCtorExpr->env == nullptr );698 // delete impCpCtorExpr;699 700 if ( returnDecl ) {701 ast::Expr * assign = createBitwiseAssignment( new ast::VariableExpr(loc, returnDecl ), appExpr );702 if ( ! dynamic_cast< const ast::ReferenceType * >( result ) ) {703 // destructing reference returns is bad because it can cause multiple destructor calls to the same object - the returned object is not a temporary704 assign = destructRet( returnDecl, assign );705 assert(assign);706 } else {707 assign = new ast::CommaExpr(loc, assign, new ast::VariableExpr(loc, returnDecl ) );708 }709 // move env from appExpr to retExpr710 // std::swap( assign->env, appExpr->env );711 assign->env = appExpr->env;712 // actual env is handled by common routine that replaces WithTypeSubstitution713 return postvisit((const ast::Expr *)assign);714 } else {715 return postvisit((const ast::Expr *)appExpr);716 } // if717 }718 719 const ast::StmtExpr * ResolveCopyCtors::previsit( const ast::StmtExpr * _stmtExpr ) {720 // function call temporaries should be placed at statement-level, rather than nested inside of a new statement expression,721 // since temporaries can be shared across sub-expressions, e.g.722 // [A, A] f(); // decl723 // g([A] x, [A] y); // decl724 // g(f()); // call725 // f is executed once, so the return temporary is shared across the tuple constructors for x and y.726 // Explicitly mutating children instead of mutating the inner compound statement forces the temporaries to be added727 // to the outer context, rather than inside of the statement expression.728 729 // call the common routine that replaces WithTypeSubstitution730 previsit((const ast::Expr *) _stmtExpr);731 732 visit_children = false;733 const CodeLocation loc = _stmtExpr->location;734 735 assert( env );736 737 symtab.enterScope();738 // visit all statements739 auto stmtExpr = mutate(_stmtExpr);740 auto mutStmts = mutate(stmtExpr->stmts.get());741 742 auto & stmts = mutStmts->kids;743 for ( auto & stmt : stmts ) {744 stmt = stmt->accept( *visitor );745 } // for746 stmtExpr->stmts = mutStmts;747 symtab.leaveScope();748 749 assert( stmtExpr->result );750 // const ast::Type * result = stmtExpr->result;751 if ( ! stmtExpr->result->isVoid() ) {752 static UniqueName retNamer("_tmp_stmtexpr_ret");753 754 // result = result->clone();755 auto result = env->apply( stmtExpr->result.get() ).node;756 if ( ! InitTweak::isConstructable( result ) ) {757 // delete result;758 return stmtExpr;759 }760 auto mutResult = result.get_and_mutate();761 mutResult->set_const(false);762 763 // create variable that will hold the result of the stmt expr764 auto ret = new ast::ObjectDecl(loc, retNamer.newName(), mutResult, nullptr );765 stmtsToAddBefore.push_back( new ast::DeclStmt(loc, ret ) );766 767 assertf(768 stmtExpr->resultExpr,769 "Statement-Expression should have a resulting expression at %s:%d",770 stmtExpr->location.filename.c_str(),771 stmtExpr->location.first_line772 );773 774 const ast::ExprStmt * last = stmtExpr->resultExpr;775 // xxx - if this is non-unique, need to copy while making resultExpr ref776 assertf(last->unique(), "attempt to modify weakly shared statement");777 auto mutLast = mutate(last);778 // above assertion means in-place mutation is OK779 try {780 mutLast->expr = makeCtorDtor( "?{}", ret, mutLast->expr );781 } catch(...) {782 std::cerr << "*CFA internal error: ";783 std::cerr << "can't resolve implicit constructor";784 std::cerr << " at " << stmtExpr->location.filename;785 std::cerr << ":" << stmtExpr->location.first_line << std::endl;786 787 abort();788 }789 790 // add destructors after current statement791 stmtsToAddAfter.push_back( new ast::ExprStmt(loc, makeCtorDtor( "^?{}", ret ) ) );792 793 // must have a non-empty body, otherwise it wouldn't have a result794 assert( ! stmts.empty() );795 796 // if there is a return decl, add a use as the last statement; will not have return decl on non-constructable returns797 stmts.push_back( new ast::ExprStmt(loc, new ast::VariableExpr(loc, ret ) ) );798 } // if799 800 assert( stmtExpr->returnDecls.empty() );801 assert( stmtExpr->dtors.empty() );802 803 return stmtExpr;804 }805 806 // to prevent warnings ('_unq0' may be used uninitialized in this function),807 // insert an appropriate zero initializer for UniqueExpr temporaries.808 ast::Init * makeInit( const ast::Type * t, CodeLocation const & loc ) {809 if ( auto inst = dynamic_cast< const ast::StructInstType * >( t ) ) {810 // initizer for empty struct must be empty811 if ( inst->base->members.empty() ) {812 return new ast::ListInit( loc, {} );813 }814 } else if ( auto inst = dynamic_cast< const ast::UnionInstType * >( t ) ) {815 // initizer for empty union must be empty816 if ( inst->base->members.empty() ) {817 return new ast::ListInit( loc, {} );818 }819 }820 821 return new ast::ListInit( loc, {822 new ast::SingleInit( loc, ast::ConstantExpr::from_int( loc, 0 ) )823 } );824 }825 826 const ast::UniqueExpr * ResolveCopyCtors::previsit( const ast::UniqueExpr * unqExpr ) {827 visit_children = false;828 // xxx - hack to prevent double-handling of unique exprs, otherwise too many temporary variables and destructors are generated829 static std::unordered_map< int, const ast::UniqueExpr * > unqMap;830 auto mutExpr = mutate(unqExpr);831 if ( ! unqMap.count( unqExpr->id ) ) {832 // resolve expr and find its833 834 auto impCpCtorExpr = mutExpr->expr.as<ast::ImplicitCopyCtorExpr>();835 // PassVisitor<ResolveCopyCtors> fixer;836 837 mutExpr->expr = mutExpr->expr->accept( *visitor );838 // it should never be necessary to wrap a void-returning expression in a UniqueExpr - if this assumption changes, this needs to be rethought839 assert( unqExpr->result );840 if ( impCpCtorExpr ) {841 auto comma = unqExpr->expr.strict_as<ast::CommaExpr>();842 auto var = comma->arg2.strict_as<ast::VariableExpr>();843 // note the variable used as the result from the call844 mutExpr->var = var;845 } else {846 // expr isn't a call expr, so create a new temporary variable to use to hold the value of the unique expression847 mutExpr->object = new ast::ObjectDecl( mutExpr->location, toString("_unq", mutExpr->id), mutExpr->result, makeInit( mutExpr->result, mutExpr->location ) );848 mutExpr->var = new ast::VariableExpr( mutExpr->location, mutExpr->object );849 }850 851 unqMap[mutExpr->id] = mutExpr;852 } else {853 // take data from other UniqueExpr to ensure consistency854 // delete unqExpr->get_expr();855 mutExpr->expr = unqMap[mutExpr->id]->expr;856 // delete unqExpr->result;857 mutExpr->result = mutExpr->expr->result;858 }859 return mutExpr;860 }861 862 const ast::DeclWithType * FixInit::postvisit( const ast::ObjectDecl *_objDecl ) {863 const CodeLocation loc = _objDecl->location;864 865 // since this removes the init field from objDecl, it must occur after children are mutated (i.e. postvisit)866 if ( ast::ptr<ast::ConstructorInit> ctorInit = _objDecl->init.as<ast::ConstructorInit>() ) {867 auto objDecl = mutate(_objDecl);868 869 // could this be non-unique?870 if (objDecl != _objDecl) {871 std::cerr << "FixInit: non-unique object decl " << objDecl->location << objDecl->name << std::endl;872 }873 // a decision should have been made by the resolver, so ctor and init are not both non-NULL874 assert( ! ctorInit->ctor || ! ctorInit->init );875 if ( const ast::Stmt * ctor = ctorInit->ctor ) {876 if ( objDecl->storage.is_static ) {877 addDataSectionAttribute(objDecl);878 // originally wanted to take advantage of gcc nested functions, but879 // we get memory errors with this approach. To remedy this, the static880 // variable is hoisted when the destructor needs to be called.881 //882 // generate:883 // static T __objName_static_varN;884 // void __objName_dtor_atexitN() {885 // __dtor__...;886 // }887 // int f(...) {888 // ...889 // static bool __objName_uninitialized = true;890 // if (__objName_uninitialized) {891 // __ctor(__objName);892 // __objName_uninitialized = false;893 // atexit(__objName_dtor_atexitN);894 // }895 // ...896 // }897 898 static UniqueName dtorCallerNamer( "_dtor_atexit" );899 900 // static bool __objName_uninitialized = true901 auto boolType = new ast::BasicType( ast::BasicType::Kind::Bool );902 auto boolInitExpr = new ast::SingleInit(loc, ast::ConstantExpr::from_int(loc, 1 ) );903 auto isUninitializedVar = new ast::ObjectDecl(loc, objDecl->mangleName + "_uninitialized", boolType, boolInitExpr, ast::Storage::Static, ast::Linkage::Cforall);904 isUninitializedVar->fixUniqueId();905 906 // __objName_uninitialized = false;907 auto setTrue = new ast::UntypedExpr(loc, new ast::NameExpr(loc, "?=?" ) );908 setTrue->args.push_back( new ast::VariableExpr(loc, isUninitializedVar ) );909 setTrue->args.push_back( ast::ConstantExpr::from_int(loc, 0 ) );910 911 // generate body of if912 auto initStmts = new ast::CompoundStmt(loc);913 auto & body = initStmts->kids;914 body.push_back( ctor );915 body.push_back( new ast::ExprStmt(loc, setTrue ) );916 917 // put it all together918 auto ifStmt = new ast::IfStmt(loc, new ast::VariableExpr(loc, isUninitializedVar ), initStmts, 0 );919 stmtsToAddAfter.push_back( new ast::DeclStmt(loc, isUninitializedVar ) );920 stmtsToAddAfter.push_back( ifStmt );921 922 const ast::Stmt * dtor = ctorInit->dtor;923 924 // these should be automatically managed once reassigned925 // objDecl->set_init( nullptr );926 // ctorInit->set_ctor( nullptr );927 // ctorInit->set_dtor( nullptr );928 if ( dtor ) {929 // if the object has a non-trivial destructor, have to930 // hoist it and the object into the global space and931 // call the destructor function with atexit.932 933 // Statement * dtorStmt = dtor->clone();934 935 // void __objName_dtor_atexitN(...) {...}936 ast::FunctionDecl * dtorCaller = new ast::FunctionDecl(loc, objDecl->mangleName + dtorCallerNamer.newName(), {}, {}, {}, new ast::CompoundStmt(loc, {dtor}), ast::Storage::Static, ast::Linkage::C );937 dtorCaller->fixUniqueId();938 // dtorCaller->stmts->push_back( dtor );939 940 // atexit(dtor_atexit);941 auto callAtexit = new ast::UntypedExpr(loc, new ast::NameExpr(loc, "atexit" ) );942 callAtexit->args.push_back( new ast::VariableExpr(loc, dtorCaller ) );943 944 body.push_back( new ast::ExprStmt(loc, callAtexit ) );945 946 // hoist variable and dtor caller decls to list of decls that will be added into global scope947 staticDtorDecls.push_back( objDecl );948 staticDtorDecls.push_back( dtorCaller );949 950 // need to rename object uniquely since it now appears951 // at global scope and there could be multiple function-scoped952 // static variables with the same name in different functions.953 // Note: it isn't sufficient to modify only the mangleName, because954 // then subsequent Indexer passes can choke on seeing the object's name955 // if another object has the same name and type. An unfortunate side-effect956 // of renaming the object is that subsequent NameExprs may fail to resolve,957 // but there shouldn't be any remaining past this point.958 static UniqueName staticNamer( "_static_var" );959 objDecl->name = objDecl->name + staticNamer.newName();960 objDecl->mangleName = Mangle::mangle( objDecl );961 objDecl->init = nullptr;962 963 // xxx - temporary hack: need to return a declaration, but want to hoist the current object out of this scope964 // create a new object which is never used965 static UniqueName dummyNamer( "_dummy" );966 auto dummy = new ast::ObjectDecl(loc, dummyNamer.newName(), new ast::PointerType(new ast::VoidType()), nullptr, ast::Storage::Static, ast::Linkage::Cforall, 0, { new ast::Attribute("unused") } );967 // delete ctorInit;968 return dummy;969 } else {970 objDecl->init = nullptr;971 return objDecl;972 }973 } else {974 auto implicit = strict_dynamic_cast< const ast::ImplicitCtorDtorStmt * > ( ctor );975 auto ctorStmt = implicit->callStmt.as<ast::ExprStmt>();976 const ast::ApplicationExpr * ctorCall = nullptr;977 if ( ctorStmt && (ctorCall = isIntrinsicCallExpr( ctorStmt->expr )) && ctorCall->args.size() == 2 ) {978 // clean up intrinsic copy constructor calls by making them into SingleInits979 const ast::Expr * ctorArg = ctorCall->args.back();980 // ctorCall should be gone afterwards981 auto mutArg = mutate(ctorArg);982 mutArg->env = ctorCall->env;983 // std::swap( ctorArg->env, ctorCall->env );984 objDecl->init = new ast::SingleInit(loc, mutArg );985 986 // ctorCall->args.pop_back();987 } else {988 stmtsToAddAfter.push_back( ctor );989 objDecl->init = nullptr;990 // ctorInit->ctor = nullptr;991 }992 993 const ast::Stmt * dtor = ctorInit->dtor;994 if ( dtor ) {995 auto implicit = strict_dynamic_cast< const ast::ImplicitCtorDtorStmt * >( dtor );996 const ast::Stmt * dtorStmt = implicit->callStmt;997 998 // don't need to call intrinsic dtor, because it does nothing, but999 // non-intrinsic dtors must be called1000 if ( ! isIntrinsicSingleArgCallStmt( dtorStmt ) ) {1001 // set dtor location to the object's location for error messages1002 auto dtorFunc = getDtorFunc( objDecl, dtorStmt, stmtsToAddBefore );1003 objDecl->attributes.push_back( new ast::Attribute( "cleanup", { new ast::VariableExpr(loc, dtorFunc ) } ) );1004 // ctorInit->dtor = nullptr;1005 } // if1006 }1007 } // if1008 } else if ( const ast::Init * init = ctorInit->init ) {1009 objDecl->init = init;1010 // ctorInit->init = nullptr;1011 } else {1012 // no constructor and no initializer, which is okay1013 objDecl->init = nullptr;1014 } // if1015 // delete ctorInit;1016 return objDecl;1017 } // if1018 return _objDecl;1019 }1020 1021 void ObjDeclCollector::previsit( const ast::CompoundStmt * ) {1022 GuardValue( curVars );1023 }1024 1025 void ObjDeclCollector::previsit( const ast::DeclStmt * stmt ) {1026 // keep track of all variables currently in scope1027 if ( auto objDecl = stmt->decl.as<ast::ObjectDecl>() ) {1028 curVars.push_back( objDecl );1029 } // if1030 }1031 1032 void LabelFinder::previsit( const ast::Stmt * stmt ) {1033 // for each label, remember the variables in scope at that label.1034 for ( auto l : stmt->labels ) {1035 vars[l] = curVars;1036 } // for1037 }1038 1039 void LabelFinder::previsit( const ast::CompoundStmt * stmt ) {1040 previsit( (const ast::Stmt *) stmt );1041 Parent::previsit( stmt );1042 }1043 1044 void LabelFinder::previsit( const ast::DeclStmt * stmt ) {1045 previsit( (const ast::Stmt *)stmt );1046 Parent::previsit( stmt );1047 }1048 1049 1050 void InsertDtors::previsit( const ast::FunctionDecl * funcDecl ) {1051 // each function needs to have its own set of labels1052 GuardValue( labelVars );1053 labelVars.clear();1054 // LabelFinder does not recurse into FunctionDecl, so need to visit1055 // its children manually.1056 if (funcDecl->type) funcDecl->type->accept(finder);1057 // maybeAccept( funcDecl->type, finder );1058 if (funcDecl->stmts) funcDecl->stmts->accept(finder) ;1059 1060 // all labels for this function have been collected, insert destructors as appropriate via implicit recursion.1061 }1062 1063 // Handle break/continue/goto in the same manner as C++. Basic idea: any objects that are in scope at the1064 // BranchStmt but not at the labelled (target) statement must be destructed. If there are any objects in scope1065 // at the target location but not at the BranchStmt then those objects would be uninitialized so notify the user1066 // of the error. See C++ Reference 6.6 Jump Statements for details.1067 void InsertDtors::handleGoto( const ast::BranchStmt * stmt ) {1068 // can't do anything for computed goto1069 if ( stmt->computedTarget ) return;1070 1071 assertf( stmt->target.name != "", "BranchStmt missing a label: %s", toString( stmt ).c_str() );1072 // S_L = lvars = set of objects in scope at label definition1073 // S_G = curVars = set of objects in scope at goto statement1074 ObjectSet & lvars = labelVars[ stmt->target ];1075 1076 DTOR_PRINT(1077 std::cerr << "at goto label: " << stmt->target.name << std::endl;1078 std::cerr << "S_G = " << printSet( curVars ) << std::endl;1079 std::cerr << "S_L = " << printSet( lvars ) << std::endl;1080 )1081 1082 1083 // std::set_difference requires that the inputs be sorted.1084 lvars.sort();1085 curVars.sort();1086 1087 ObjectSet diff;1088 // S_L-S_G results in set of objects whose construction is skipped - it's an error if this set is non-empty1089 std::set_difference( lvars.begin(), lvars.end(), curVars.begin(), curVars.end(), std::inserter( diff, diff.begin() ) );1090 DTOR_PRINT(1091 std::cerr << "S_L-S_G = " << printSet( diff ) << std::endl;1092 )1093 if ( ! diff.empty() ) {1094 SemanticError( stmt, std::string("jump to label '") + stmt->target.name + "' crosses initialization of " + (*diff.begin())->name + " " );1095 } // if1096 }1097 1098 void InsertDtors::previsit( const ast::BranchStmt * stmt ) {1099 switch( stmt->kind ) {1100 case ast::BranchStmt::Continue:1101 case ast::BranchStmt::Break:1102 // could optimize the break/continue case, because the S_L-S_G check is unnecessary (this set should1103 // always be empty), but it serves as a small sanity check.1104 case ast::BranchStmt::Goto:1105 handleGoto( stmt );1106 break;1107 default:1108 assert( false );1109 } // switch1110 }1111 1112 bool checkWarnings( const ast::FunctionDecl * funcDecl ) {1113 // only check for warnings if the current function is a user-defined1114 // constructor or destructor1115 if ( ! funcDecl ) return false;1116 if ( ! funcDecl->stmts ) return false;1117 return CodeGen::isCtorDtor( funcDecl->name ) && ! funcDecl->linkage.is_overrideable;1118 }1119 1120 void GenStructMemberCalls::previsit( const ast::FunctionDecl * funcDecl ) {1121 GuardValue( function );1122 GuardValue( unhandled );1123 GuardValue( usedUninit );1124 GuardValue( thisParam );1125 GuardValue( isCtor );1126 GuardValue( structDecl );1127 errors = SemanticErrorException(); // clear previous errors1128 1129 // need to start with fresh sets1130 unhandled.clear();1131 usedUninit.clear();1132 1133 function = mutate(funcDecl);1134 // could this be non-unique?1135 if (function != funcDecl) {1136 std::cerr << "GenStructMemberCalls: non-unique FunctionDecl " << funcDecl->location << funcDecl->name << std::endl;1137 }1138 1139 isCtor = CodeGen::isConstructor( function->name );1140 if ( checkWarnings( function ) ) {1141 // const ast::FunctionType * type = function->type;1142 // assert( ! type->params.empty() );1143 thisParam = function->params.front().strict_as<ast::ObjectDecl>();1144 auto thisType = getPointerBase( thisParam->get_type() );1145 auto structType = dynamic_cast< const ast::StructInstType * >( thisType );1146 if ( structType ) {1147 structDecl = structType->base;1148 for ( auto & member : structDecl->members ) {1149 if ( auto field = member.as<ast::ObjectDecl>() ) {1150 // record all of the struct type's members that need to be constructed or1151 // destructed by the end of the function1152 unhandled.insert( field );1153 }1154 }1155 }1156 }1157 }1158 1159 const ast::DeclWithType * GenStructMemberCalls::postvisit( const ast::FunctionDecl * funcDecl ) {1160 // remove the unhandled objects from usedUninit, because a call is inserted1161 // to handle them - only objects that are later constructed are used uninitialized.1162 std::map< const ast::DeclWithType *, CodeLocation > diff;1163 // need the comparator since usedUninit and unhandled have different types1164 struct comp_t {1165 typedef decltype(usedUninit)::value_type usedUninit_t;1166 typedef decltype(unhandled)::value_type unhandled_t;1167 bool operator()(usedUninit_t x, unhandled_t y) { return x.first < y; }1168 bool operator()(unhandled_t x, usedUninit_t y) { return x < y.first; }1169 } comp;1170 std::set_difference( usedUninit.begin(), usedUninit.end(), unhandled.begin(), unhandled.end(), std::inserter( diff, diff.begin() ), comp );1171 for ( auto p : diff ) {1172 auto member = p.first;1173 auto loc = p.second;1174 // xxx - make error message better by also tracking the location that the object is constructed at?1175 emit( loc, "in ", function->name, ", field ", member->name, " used before being constructed" );1176 }1177 1178 const CodeLocation loc = funcDecl->location;1179 1180 if ( ! unhandled.empty() ) {1181 auto mutStmts = function->stmts.get_and_mutate();1182 // need to explicitly re-add function parameters to the indexer in order to resolve copy constructors1183 auto guard = makeFuncGuard( [this]() { symtab.enterScope(); }, [this]() { symtab.leaveScope(); } );1184 symtab.addFunction( function );1185 auto global = transUnit().global;1186 1187 // need to iterate through members in reverse in order for1188 // ctor/dtor statements to come out in the right order1189 for ( auto & member : reverseIterate( structDecl->members ) ) {1190 auto field = member.as<ast::ObjectDecl>();1191 // skip non-DWT members1192 if ( ! field ) continue;1193 // skip non-constructable members1194 if ( ! tryConstruct( field ) ) continue;1195 // skip handled members1196 if ( ! unhandled.count( field ) ) continue;1197 1198 // insert and resolve default/copy constructor call for each field that's unhandled1199 // std::list< const ast::Stmt * > stmt;1200 ast::Expr * arg2 = nullptr;1201 if ( function->name == "?{}" && isCopyFunction( function ) ) {1202 // if copy ctor, need to pass second-param-of-this-function.field1203 // std::list< DeclarationWithType * > & params = function->get_functionType()->get_parameters();1204 assert( function->params.size() == 2 );1205 arg2 = new ast::MemberExpr(funcDecl->location, field, new ast::VariableExpr(funcDecl->location, function->params.back() ) );1206 }1207 InitExpander_new srcParam( arg2 );1208 // cast away reference type and construct field.1209 ast::Expr * thisExpr = new ast::CastExpr(funcDecl->location, new ast::VariableExpr(funcDecl->location, thisParam ), thisParam->get_type()->stripReferences());1210 ast::Expr * memberDest = new ast::MemberExpr(funcDecl->location, field, thisExpr );1211 ast::ptr<ast::Stmt> callStmt = SymTab::genImplicitCall( srcParam, memberDest, loc, function->name, field, static_cast<SymTab::LoopDirection>(isCtor) );1212 1213 if ( callStmt ) {1214 // auto & callStmt = stmt.front();1215 1216 try {1217 callStmt = callStmt->accept( *visitor );1218 if ( isCtor ) {1219 mutStmts->push_front( callStmt );1220 } else { // TODO: don't generate destructor function/object for intrinsic calls1221 // destructor statements should be added at the end1222 // function->get_statements()->push_back( callStmt );1223 1224 // Optimization: do not need to call intrinsic destructors on members1225 if ( isIntrinsicSingleArgCallStmt( callStmt ) ) continue;1226 1227 // __Destructor _dtor0 = { (void *)&b.a1, (void (*)(void *)_destroy_A };1228 std::list< ast::ptr<ast::Stmt> > stmtsToAdd;1229 1230 static UniqueName memberDtorNamer = { "__memberDtor" };1231 assertf( global.dtorStruct, "builtin __Destructor not found." );1232 assertf( global.dtorDestroy, "builtin __destroy_Destructor not found." );1233 1234 ast::Expr * thisExpr = new ast::CastExpr( new ast::AddressExpr( new ast::VariableExpr(loc, thisParam ) ), new ast::PointerType( new ast::VoidType(), ast::CV::Qualifiers() ) );1235 ast::Expr * dtorExpr = new ast::VariableExpr(loc, getDtorFunc( thisParam, callStmt, stmtsToAdd ) );1236 1237 // cast destructor pointer to void (*)(void *), to silence GCC incompatible pointer warnings1238 auto dtorFtype = new ast::FunctionType();1239 dtorFtype->params.emplace_back( new ast::PointerType( new ast::VoidType() ) );1240 auto dtorType = new ast::PointerType( dtorFtype );1241 1242 auto destructor = new ast::ObjectDecl(loc, memberDtorNamer.newName(), new ast::StructInstType( global.dtorStruct ), new ast::ListInit(loc, { new ast::SingleInit(loc, thisExpr ), new ast::SingleInit(loc, new ast::CastExpr( dtorExpr, dtorType ) ) } ) );1243 destructor->attributes.push_back( new ast::Attribute( "cleanup", { new ast::VariableExpr( loc, global.dtorDestroy ) } ) );1244 mutStmts->push_front( new ast::DeclStmt(loc, destructor ) );1245 mutStmts->kids.splice( mutStmts->kids.begin(), stmtsToAdd );1246 }1247 } catch ( SemanticErrorException & error ) {1248 emit( funcDecl->location, "in ", function->name , ", field ", field->name, " not explicitly ", isCtor ? "constructed" : "destructed", " and no ", isCtor ? "default constructor" : "destructor", " found" );1249 }1250 }1251 }1252 function->stmts = mutStmts;1253 }1254 if (! errors.isEmpty()) {1255 throw errors;1256 }1257 // return funcDecl;1258 return function;1259 }1260 1261 /// true if expr is effectively just the 'this' parameter1262 bool isThisExpression( const ast::Expr * expr, const ast::DeclWithType * thisParam ) {1263 // TODO: there are more complicated ways to pass 'this' to a constructor, e.g. &*, *&, etc.1264 if ( auto varExpr = dynamic_cast< const ast::VariableExpr * >( expr ) ) {1265 return varExpr->var == thisParam;1266 } else if ( auto castExpr = dynamic_cast< const ast::CastExpr * > ( expr ) ) {1267 return isThisExpression( castExpr->arg, thisParam );1268 }1269 return false;1270 }1271 1272 /// returns a MemberExpr if expr is effectively just member access on the 'this' parameter, else nullptr1273 const ast::MemberExpr * isThisMemberExpr( const ast::Expr * expr, const ast::DeclWithType * thisParam ) {1274 if ( auto memberExpr = dynamic_cast< const ast::MemberExpr * >( expr ) ) {1275 if ( isThisExpression( memberExpr->aggregate, thisParam ) ) {1276 return memberExpr;1277 }1278 } else if ( auto castExpr = dynamic_cast< const ast::CastExpr * >( expr ) ) {1279 return isThisMemberExpr( castExpr->arg, thisParam );1280 }1281 return nullptr;1282 }1283 1284 void GenStructMemberCalls::previsit( const ast::ApplicationExpr * appExpr ) {1285 if ( ! checkWarnings( function ) ) {1286 visit_children = false;1287 return;1288 }1289 1290 std::string fname = getFunctionName( appExpr );1291 if ( fname == function->name ) {1292 // call to same kind of function1293 const ast::Expr * firstParam = appExpr->args.front();1294 1295 if ( isThisExpression( firstParam, thisParam ) ) {1296 // if calling another constructor on thisParam, assume that function handles1297 // all members - if it doesn't a warning will appear in that function.1298 unhandled.clear();1299 } else if ( auto memberExpr = isThisMemberExpr( firstParam, thisParam ) ) {1300 // if first parameter is a member expression on the this parameter,1301 // then remove the member from unhandled set.1302 if ( isThisExpression( memberExpr->aggregate, thisParam ) ) {1303 unhandled.erase( memberExpr->member );1304 }1305 }1306 }1307 }1308 1309 void GenStructMemberCalls::previsit( const ast::MemberExpr * memberExpr ) {1310 if ( ! checkWarnings( function ) || ! isCtor ) {1311 visit_children = false;1312 return;1313 }1314 1315 if ( isThisExpression( memberExpr->aggregate, thisParam ) ) {1316 if ( unhandled.count( memberExpr->member ) ) {1317 // emit a warning because a member was used before it was constructed1318 usedUninit.insert( { memberExpr->member, memberExpr->location } );1319 }1320 }1321 }1322 1323 template< typename... Params >1324 void GenStructMemberCalls::emit( CodeLocation loc, const Params &... params ) {1325 SemanticErrorException err( loc, toString( params... ) );1326 errors.append( err );1327 }1328 1329 const ast::Expr * GenStructMemberCalls::postvisit( const ast::UntypedExpr * untypedExpr ) {1330 // xxx - functions returning ast::ptr seems wrong...1331 auto res = ResolvExpr::findVoidExpression( untypedExpr, { symtab, transUnit().global } );1332 return res.release();1333 }1334 1335 void InsertImplicitCalls::previsit(const ast::UniqueExpr * unqExpr) {1336 if (visitedIds.count(unqExpr->id)) visit_children = false;1337 else visitedIds.insert(unqExpr->id);1338 }1339 1340 const ast::Expr * FixCtorExprs::postvisit( const ast::ConstructorExpr * ctorExpr ) {1341 const CodeLocation loc = ctorExpr->location;1342 static UniqueName tempNamer( "_tmp_ctor_expr" );1343 // xxx - is the size check necessary?1344 assert( ctorExpr->result && ctorExpr->result->size() == 1 );1345 1346 // xxx - this can be TupleAssignExpr now. Need to properly handle this case.1347 // take possession of expr and env1348 ast::ptr<ast::ApplicationExpr> callExpr = ctorExpr->callExpr.strict_as<ast::ApplicationExpr>();1349 ast::ptr<ast::TypeSubstitution> env = ctorExpr->env;1350 // ctorExpr->set_callExpr( nullptr );1351 // ctorExpr->set_env( nullptr );1352 1353 // xxx - ideally we would reuse the temporary generated from the copy constructor passes from within firstArg if it exists and not generate a temporary if it's unnecessary.1354 auto tmp = new ast::ObjectDecl(loc, tempNamer.newName(), callExpr->args.front()->result );1355 declsToAddBefore.push_back( tmp );1356 1357 // build assignment and replace constructor's first argument with new temporary1358 auto mutCallExpr = callExpr.get_and_mutate();1359 const ast::Expr * firstArg = callExpr->args.front();1360 ast::Expr * assign = new ast::UntypedExpr(loc, new ast::NameExpr(loc, "?=?" ), { new ast::AddressExpr(loc, new ast::VariableExpr(loc, tmp ) ), new ast::AddressExpr( firstArg ) } );1361 firstArg = new ast::VariableExpr(loc, tmp );1362 mutCallExpr->args.front() = firstArg;1363 1364 // resolve assignment and dispose of new env1365 auto resolved = ResolvExpr::findVoidExpression( assign, { symtab, transUnit().global } );1366 auto mut = resolved.get_and_mutate();1367 assertf(resolved.get() == mut, "newly resolved expression must be unique");1368 mut->env = nullptr;1369 1370 // for constructor expr:1371 // T x;1372 // x{};1373 // results in:1374 // T x;1375 // T & tmp;1376 // &tmp = &x, ?{}(tmp), tmp1377 ast::CommaExpr * commaExpr = new ast::CommaExpr(loc, resolved, new ast::CommaExpr(loc, mutCallExpr, new ast::VariableExpr(loc, tmp ) ) );1378 commaExpr->env = env;1379 return commaExpr;1380 }1381 } // namespace1382 1382 } // namespace InitTweak 1383 1383 -
src/InitTweak/InitTweak.cc
r2e94f3e7 rc68f6e6 891 891 dst = new ast::AddressExpr(dst); 892 892 } 893 } 894 else { 893 } else { 895 894 dst = new ast::CastExpr(dst, new ast::ReferenceType(dst->result, {})); 896 895 } … … 900 899 } 901 900 } 902 return new ast::ApplicationExpr(dst->location, ast::VariableExpr::functionPointer(dst->location, assign), {dst, src}); 901 auto var = ast::VariableExpr::functionPointer(dst->location, assign); 902 auto app = new ast::ApplicationExpr(dst->location, var, {dst, src}); 903 // Skip the resolver, just set the result to the correct type. 904 app->result = ast::deepCopy( src->result ); 905 return app; 903 906 } 904 907 -
src/SymTab/GenImplicitCall.cpp
r2e94f3e7 rc68f6e6 16 16 #include "GenImplicitCall.hpp" 17 17 18 #include "AST/Copy.hpp" // for deepCopy 18 19 #include "AST/Decl.hpp" // for ObjectDecl 19 20 #include "AST/Expr.hpp" // for ConstantExpr, UntypedExpr,... … … 115 116 std::string cmp, update; 116 117 118 const ast::Expr * dimension = deepCopy( array->dimension ); 117 119 if ( forward ) { 118 120 // generate: for ( int i = 0; i < N; ++i ) 119 121 begin = ast::ConstantExpr::from_int( loc, 0 ); 120 end = array->dimension;122 end = dimension; 121 123 cmp = "?<?"; 122 124 update = "++?"; … … 124 126 // generate: for ( int i = N-1; i >= 0; --i ) 125 127 begin = ast::UntypedExpr::createCall( loc, "?-?", 126 { array->dimension, ast::ConstantExpr::from_int( loc, 1 ) } );128 { dimension, ast::ConstantExpr::from_int( loc, 1 ) } ); 127 129 end = ast::ConstantExpr::from_int( loc, 0 ); 128 130 cmp = "?>=?"; -
src/Validate/Autogen.cpp
r2e94f3e7 rc68f6e6 532 532 ) 533 533 ); 534 returngenImplicitCall(534 auto stmt = genImplicitCall( 535 535 srcParam, dstSelect, location, func->name, 536 536 field, direction 537 537 ); 538 // This could return the above directly, except the generated code is 539 // built using the structure's members and that means all the scoped 540 // names (the forall parameters) are incorrect. This corrects them. 541 if ( stmt && !decl->params.empty() ) { 542 ast::DeclReplacer::TypeMap oldToNew; 543 for ( auto pair : group_iterate( decl->params, func->type_params ) ) { 544 oldToNew.emplace( std::get<0>(pair), std::get<1>(pair) ); 545 } 546 auto node = ast::DeclReplacer::replace( stmt, oldToNew ); 547 stmt = strict_dynamic_cast<const ast::Stmt *>( node ); 548 } 549 return stmt; 538 550 } 539 551 -
src/Validate/FixQualifiedTypes.cpp
r2e94f3e7 rc68f6e6 89 89 } 90 90 91 ast::Expr const * postvisit( ast::QualifiedNameExpr const * t ) {91 ast::Expr const * postvisit( ast::QualifiedNameExpr const * t ) { 92 92 assert( location ); 93 if ( t->type_decl ) { 94 auto enumName = t->type_decl->name; 95 const ast::EnumDecl * enumDecl = symtab.lookupEnum( enumName ); 96 for ( ast::ptr<ast::Decl> const & member : enumDecl->members ) { 97 if ( auto memberAsObj = member.as<ast::ObjectDecl>() ) { 98 if ( memberAsObj->name == t->name ) { 99 return new ast::VariableExpr( t->location, memberAsObj ); 100 } 101 } else { 102 assertf( false, "unhandled qualified child type"); 93 if ( !t->type_decl ) return t; 94 95 auto enumName = t->type_decl->name; 96 const ast::EnumDecl * enumDecl = symtab.lookupEnum( enumName ); 97 for ( ast::ptr<ast::Decl> const & member : enumDecl->members ) { 98 if ( auto memberAsObj = member.as<ast::ObjectDecl>() ) { 99 if ( memberAsObj->name == t->name ) { 100 return new ast::VariableExpr( t->location, memberAsObj ); 103 101 } 102 } else { 103 assertf( false, "unhandled qualified child type" ); 104 104 } 105 } 105 106 106 auto var = new ast::ObjectDecl( t->location, t->name, 107 new ast::EnumInstType(enumDecl, ast::CV::Const), nullptr, {}, ast::Linkage::Cforall ); 108 var->mangleName = Mangle::mangle( var ); 109 return new ast::VariableExpr( t->location, var ); 110 } 111 112 return t; 107 auto var = new ast::ObjectDecl( t->location, t->name, 108 new ast::EnumInstType( enumDecl, ast::CV::Const ), 109 nullptr, {}, ast::Linkage::Cforall ); 110 var->mangleName = Mangle::mangle( var ); 111 return new ast::VariableExpr( t->location, var ); 113 112 } 114 113 -
src/Validate/ForallPointerDecay.cpp
r2e94f3e7 rc68f6e6 214 214 if ( dynamic_cast< const ast::FunctionType * >( type ) ) return; 215 215 SemanticError( obj->location, 216 toCString( "operator ", obj->name.c_str(), " is not "217 " a function or function pointer." ) );216 toCString( "operator ", obj->name.c_str(), 217 " is not a function or function pointer." ) ); 218 218 } 219 219 }; … … 237 237 ast::Pass<AssertionFunctionFixer>::run( transUnit ); 238 238 ast::Pass<OperatorChecker>::run( transUnit ); 239 } 240 241 void fixUniqueIds( ast::TranslationUnit & transUnit ) { 239 242 ast::Pass<UniqueFixCore>::run( transUnit ); 240 243 } -
src/Validate/ForallPointerDecay.hpp
r2e94f3e7 rc68f6e6 27 27 28 28 /// Cleans up assertion lists and expands traits. 29 /// Also checks that operator names are used properly on functions and 30 /// assigns unique IDs. This is a "legacy" pass. 29 /// Also checks that operator names are used properly on functions. 30 /// This is a "legacy" pass. 31 /// Must happen before auto-gen routines are added. 32 void decayForallPointers( ast::TranslationUnit & transUnit ); 33 34 /// Sets uniqueIds on any declarations that do not have one set. 31 35 /// Must be after implement concurrent keywords; because uniqueIds must be 32 36 /// set on declaration before resolution. 33 /// Must happen before auto-gen routines are added. 34 void decayForallPointers( ast::TranslationUnit & transUnit ); 37 void fixUniqueIds( ast::TranslationUnit & transUnit ); 35 38 36 39 /// Expand all traits in an assertion list. -
src/main.cc
r2e94f3e7 rc68f6e6 334 334 PASS( "Link Reference To Types", Validate::linkReferenceToTypes, transUnit ); 335 335 336 PASS( "Forall Pointer Decay", Validate::decayForallPointers, transUnit ); 336 337 PASS( "Fix Qualified Types", Validate::fixQualifiedTypes, transUnit ); 337 338 PASS( "Eliminate Typedef", Validate::eliminateTypedef, transUnit ); … … 342 343 PASS( "Fix Return Statements", InitTweak::fixReturnStatements, transUnit ); 343 344 PASS( "Implement Concurrent Keywords", Concurrency::implementKeywords, transUnit ); 344 PASS( "F orall Pointer Decay", Validate::decayForallPointers, transUnit );345 PASS( "Fix Unique Ids", Validate::fixUniqueIds, transUnit ); 345 346 PASS( "Hoist Control Declarations", ControlStruct::hoistControlDecls, transUnit ); 346 347 … … 369 370 PASS( "Translate Throws", ControlStruct::translateThrows, transUnit ); 370 371 PASS( "Fix Labels", ControlStruct::fixLabels, transUnit ); 371 372 PASS( "Implement Waituntil", Concurrency::generateWaitUntil, transUnit ); 372 373 PASS( "Fix Names", CodeGen::fixNames, transUnit ); 373 374 PASS( "Gen Init", InitTweak::genInit, transUnit ); -
tests/array-container/.expect/dimexpr-match-c-ERRS.arm64.txt
r2e94f3e7 rc68f6e6 1 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:2 Name: f 3 ...to: 4 Address of: 5 Name: a 6 7 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:8 Name: f 9 ...to: 10 Address of: 11 Name: a 12 13 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:14 Name: f 15 ...to: 16 Address of: 17 Name: a 18 19 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:20 Name: f 21 ...to: 22 Address of: 23 Name: a 24 25 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:26 Name: f 27 ...to: 28 Address of: 29 Name: a 30 31 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:32 Name: f 33 ...to: 34 Address of: 35 Name: a 36 37 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:38 Name: f 39 ...to: 40 Address of: 41 Name: a 42 43 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:44 Name: f 45 ...to: 46 Address of: 47 Name: a 48 49 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:50 Name: f 51 ...to: 52 Address of: 53 Name: a 54 55 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:56 Name: f 57 ...to: 58 Address of: 59 Name: a 60 61 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:62 Name: f 63 ...to: 64 Address of: 65 Name: a 66 67 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:68 Name: f 69 ...to: 70 Address of: 71 Name: a 72 73 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:74 Name: f 75 ...to: 76 Address of: 77 Name: a 78 79 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:80 Name: f 81 ...to: 82 Address of: 83 Name: a 84 85 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:86 Name: f 87 ...to: 88 Address of: 89 Name: a 90 91 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:92 Name: f 93 ...to: 94 Address of: 95 Name: a 96 97 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:98 Name: f 99 ...to: 100 Address of: 101 Name: a 102 103 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:104 Name: f 105 ...to: 106 Address of: 107 Name: a 108 109 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:110 Name: f 111 ...to: 112 Address of: 113 Name: a 114 115 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:116 Name: f 117 ...to: 118 Address of: 119 Name: a 120 121 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:122 Name: f 123 ...to: 124 Address of: 125 Name: a 126 127 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:128 Name: f 129 ...to: 130 Address of: 131 Name: a 132 133 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:134 Name: f 135 ...to: 136 Address of: 137 Name: a 138 139 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:140 Name: f 141 ...to: 142 Address of: 143 Name: a 144 145 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:146 Name: f 147 ...to: 148 Address of: 149 Name: a 150 151 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:152 Name: f 153 ...to: 154 Address of: 155 Name: a 156 157 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 2 Name: f 3 ...to: 4 Address of: 5 Name: a 6 7 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 8 Name: f 9 ...to: 10 Address of: 11 Name: a 12 13 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 14 Name: f 15 ...to: 16 Address of: 17 Name: a 18 19 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 20 Name: f 21 ...to: 22 Address of: 23 Name: a 24 25 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 26 Name: f 27 ...to: 28 Address of: 29 Name: a 30 31 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 32 Name: f 33 ...to: 34 Address of: 35 Name: a 36 37 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 38 Name: f 39 ...to: 40 Address of: 41 Name: a 42 43 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 44 Name: f 45 ...to: 46 Address of: 47 Name: a 48 49 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 50 Name: f 51 ...to: 52 Address of: 53 Name: a 54 55 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 56 Name: f 57 ...to: 58 Address of: 59 Name: a 60 61 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 62 Name: f 63 ...to: 64 Address of: 65 Name: a 66 67 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 68 Name: f 69 ...to: 70 Address of: 71 Name: a 72 73 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 74 Name: f 75 ...to: 76 Address of: 77 Name: a 78 79 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 80 Name: f 81 ...to: 82 Address of: 83 Name: a 84 85 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 86 Name: f 87 ...to: 88 Address of: 89 Name: a 90 91 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 92 Name: f 93 ...to: 94 Address of: 95 Name: a 96 97 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 98 Name: f 99 ...to: 100 Address of: 101 Name: a 102 103 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 104 Name: f 105 ...to: 106 Address of: 107 Name: a 108 109 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 110 Name: f 111 ...to: 112 Address of: 113 Name: a 114 115 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 116 Name: f 117 ...to: 118 Address of: 119 Name: a 120 121 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 122 Name: f 123 ...to: 124 Address of: 125 Name: a 126 127 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 128 Name: f 129 ...to: 130 Address of: 131 Name: a 132 133 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 134 Name: f 135 ...to: 136 Address of: 137 Name: a 138 139 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 140 Name: f 141 ...to: 142 Address of: 143 Name: a 144 145 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 146 Name: f 147 ...to: 148 Address of: 149 Name: a 150 151 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 152 Name: f 153 ...to: 154 Address of: 155 Name: a 156 157 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 158 158 Address of: 159 159 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 165 165 ... with resolved type: 166 166 unsigned long int 167 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression167 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 168 168 Address of: 169 169 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 175 175 ... with resolved type: 176 176 unsigned long int 177 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression177 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 178 178 Address of: 179 179 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 185 185 ... with resolved type: 186 186 unsigned long int 187 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression187 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 188 188 Address of: 189 189 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 195 195 ... with resolved type: 196 196 unsigned long int 197 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression197 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 198 198 Address of: 199 199 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 205 205 ... with resolved type: 206 206 unsigned long int 207 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression207 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 208 208 Address of: 209 209 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 215 215 ... with resolved type: 216 216 unsigned long int 217 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression217 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 218 218 Address of: 219 219 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 225 225 ... with resolved type: 226 226 unsigned long int 227 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression227 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 228 228 Address of: 229 229 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 235 235 ... with resolved type: 236 236 unsigned long int 237 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression237 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 238 238 Address of: 239 239 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 245 245 ... with resolved type: 246 246 unsigned long int 247 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression247 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 248 248 Address of: 249 249 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 255 255 ... with resolved type: 256 256 unsigned long int 257 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression257 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 258 258 Address of: 259 259 Name: a InitAlternative: pointer to array of float with dimension of Sizeof Expression on: instance of type dim7 (not function type) 260 260 ... with resolved type: 261 261 unsigned long int 262 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression262 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 263 263 Address of: 264 264 Name: a InitAlternative: pointer to array of float with dimension of Sizeof Expression on: instance of type dim7 (not function type) 265 265 ... with resolved type: 266 266 unsigned long int 267 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression267 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 268 268 Address of: 269 269 Name: a InitAlternative: pointer to array of float with dimension of Sizeof Expression on: instance of type dim7 (not function type) 270 270 ... with resolved type: 271 271 unsigned long int 272 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression272 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 273 273 Address of: 274 274 Name: a InitAlternative: pointer to array of float with dimension of Sizeof Expression on: instance of type dim7 (not function type) 275 275 ... with resolved type: 276 276 unsigned long int 277 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression277 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 278 278 Address of: 279 279 Name: a InitAlternative: pointer to array of float with dimension of Sizeof Expression on: instance of type dim7 (not function type) 280 280 ... with resolved type: 281 281 unsigned long int 282 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression282 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 283 283 Address of: 284 284 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 290 290 ... with resolved type: 291 291 unsigned long int 292 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression292 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 293 293 Address of: 294 294 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 300 300 ... with resolved type: 301 301 unsigned long int 302 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression302 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 303 303 Address of: 304 304 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 310 310 ... with resolved type: 311 311 unsigned long int 312 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression312 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 313 313 Address of: 314 314 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 320 320 ... with resolved type: 321 321 unsigned long int 322 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression322 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 323 323 Address of: 324 324 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 330 330 ... with resolved type: 331 331 unsigned long int 332 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression332 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 333 333 Address of: 334 334 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 340 340 ... with resolved type: 341 341 unsigned long int 342 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression342 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 343 343 Address of: 344 344 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 350 350 ... with resolved type: 351 351 unsigned long int 352 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression352 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 353 353 Address of: 354 354 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 360 360 ... with resolved type: 361 361 unsigned long int 362 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression362 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 363 363 Address of: 364 364 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 370 370 ... with resolved type: 371 371 unsigned long int 372 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression372 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 373 373 Address of: 374 374 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 380 380 ... with resolved type: 381 381 unsigned long int 382 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression382 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 383 383 Address of: 384 384 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 390 390 ... with resolved type: 391 391 unsigned long int 392 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:393 Name: ?=? 394 ...to: 395 Name: b 396 Address of: 397 Name: a 398 399 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:400 Name: ?=? 401 ...to: 402 Name: b 403 Address of: 404 Name: a 405 406 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:407 Name: ?=? 408 ...to: 409 Name: b 410 Address of: 411 Name: a 412 413 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:414 Name: ?=? 415 ...to: 416 Name: b 417 Address of: 418 Name: a 419 420 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:421 Name: ?=? 422 ...to: 423 Name: b 424 Address of: 425 Name: a 426 427 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:428 Name: ?=? 429 ...to: 430 Name: b 431 Address of: 432 Name: a 433 434 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:435 Name: ?=? 436 ...to: 437 Name: b 438 Address of: 439 Name: a 440 441 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:442 Name: ?=? 443 ...to: 444 Name: b 445 Address of: 446 Name: a 447 448 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:449 Name: ?=? 450 ...to: 451 Name: b 452 Address of: 453 Name: a 454 455 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:456 Name: ?=? 457 ...to: 458 Name: b 459 Address of: 460 Name: a 461 462 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:463 Name: ?=? 464 ...to: 465 Name: b 466 Address of: 467 Name: a 468 469 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:470 Name: ?=? 471 ...to: 472 Name: b 473 Address of: 474 Name: a 475 476 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:477 Name: ?=? 478 ...to: 479 Name: b 480 Address of: 481 Name: a 482 483 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:484 Name: ?=? 485 ...to: 486 Name: b 487 Address of: 488 Name: a 489 490 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:491 Name: ?=? 492 ...to: 493 Name: b 494 Address of: 495 Name: a 496 497 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:498 Name: ?=? 499 ...to: 500 Name: b 501 Address of: 502 Name: a 503 504 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:505 Name: ?=? 506 ...to: 507 Name: b 508 Address of: 509 Name: a 510 511 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:512 Name: ?=? 513 ...to: 514 Name: b 515 Address of: 516 Name: a 517 518 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:519 Name: ?=? 520 ...to: 521 Name: b 522 Address of: 523 Name: a 524 525 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:526 Name: ?=? 527 ...to: 528 Name: b 529 Address of: 530 Name: a 531 532 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:533 Name: ?=? 534 ...to: 535 Name: b 536 Address of: 537 Name: a 538 539 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:540 Name: ?=? 541 ...to: 542 Name: b 543 Address of: 544 Name: a 545 546 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:547 Name: ?=? 548 ...to: 549 Name: b 550 Address of: 551 Name: a 552 553 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:554 Name: ?=? 555 ...to: 556 Name: b 557 Address of: 558 Name: a 559 560 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:561 Name: ?=? 562 ...to: 563 Name: b 564 Address of: 565 Name: a 566 567 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:568 Name: ?=? 569 ...to: 570 Name: b 571 Address of: 572 Name: a 573 574 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:575 Name: ?=? 576 ...to: 577 Address of: 578 Name: b 579 Address of: 580 Name: a 581 582 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:583 Name: ?=? 584 ...to: 585 Address of: 586 Name: b 587 Address of: 588 Name: a 589 590 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:591 Name: ?=? 592 ...to: 593 Address of: 594 Name: b 595 Address of: 596 Name: a 597 598 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:599 Name: ?=? 600 ...to: 601 Address of: 602 Name: b 603 Address of: 604 Name: a 605 606 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:607 Name: ?=? 608 ...to: 609 Address of: 610 Name: b 611 Address of: 612 Name: a 613 614 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:615 Name: ?=? 616 ...to: 617 Address of: 618 Name: b 619 Address of: 620 Name: a 621 622 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:623 Name: ?=? 624 ...to: 625 Address of: 626 Name: b 627 Address of: 628 Name: a 629 630 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:631 Name: ?=? 632 ...to: 633 Address of: 634 Name: b 635 Address of: 636 Name: a 637 638 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:639 Name: ?=? 640 ...to: 641 Address of: 642 Name: b 643 Address of: 644 Name: a 645 646 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:647 Name: ?=? 648 ...to: 649 Address of: 650 Name: b 651 Address of: 652 Name: a 653 654 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:655 Name: ?=? 656 ...to: 657 Address of: 658 Name: b 659 Address of: 660 Name: a 661 662 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:663 Name: ?=? 664 ...to: 665 Address of: 666 Name: b 667 Address of: 668 Name: a 669 670 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:671 Name: ?=? 672 ...to: 673 Address of: 674 Name: b 675 Address of: 676 Name: a 677 678 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:679 Name: ?=? 680 ...to: 681 Address of: 682 Name: b 683 Address of: 684 Name: a 685 686 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:687 Name: ?=? 688 ...to: 689 Address of: 690 Name: b 691 Address of: 692 Name: a 693 694 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:695 Name: ?=? 696 ...to: 697 Address of: 698 Name: b 699 Address of: 700 Name: a 701 702 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:703 Name: ?=? 704 ...to: 705 Address of: 706 Name: b 707 Address of: 708 Name: a 709 710 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:711 Name: ?=? 712 ...to: 713 Address of: 714 Name: b 715 Address of: 716 Name: a 717 718 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:719 Name: ?=? 720 ...to: 721 Address of: 722 Name: b 723 Address of: 724 Name: a 725 726 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:727 Name: ?=? 728 ...to: 729 Address of: 730 Name: b 731 Address of: 732 Name: a 733 734 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:735 Name: ?=? 736 ...to: 737 Address of: 738 Name: b 739 Address of: 740 Name: a 741 742 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:743 Name: ?=? 744 ...to: 745 Address of: 746 Name: b 747 Address of: 748 Name: a 749 750 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:751 Name: ?=? 752 ...to: 753 Address of: 754 Name: b 755 Address of: 756 Name: a 757 758 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:759 Name: ?=? 760 ...to: 761 Address of: 762 Name: b 763 Address of: 764 Name: a 765 766 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:767 Name: ?=? 768 ...to: 769 Address of: 770 Name: b 771 Address of: 772 Name: a 773 774 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:775 Name: ?=? 776 ...to: 777 Address of: 778 Name: b 779 Address of: 780 Name: a 781 392 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 393 Name: ?=? 394 ...to: 395 Name: b 396 Address of: 397 Name: a 398 399 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 400 Name: ?=? 401 ...to: 402 Name: b 403 Address of: 404 Name: a 405 406 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 407 Name: ?=? 408 ...to: 409 Name: b 410 Address of: 411 Name: a 412 413 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 414 Name: ?=? 415 ...to: 416 Name: b 417 Address of: 418 Name: a 419 420 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 421 Name: ?=? 422 ...to: 423 Name: b 424 Address of: 425 Name: a 426 427 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 428 Name: ?=? 429 ...to: 430 Name: b 431 Address of: 432 Name: a 433 434 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 435 Name: ?=? 436 ...to: 437 Name: b 438 Address of: 439 Name: a 440 441 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 442 Name: ?=? 443 ...to: 444 Name: b 445 Address of: 446 Name: a 447 448 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 449 Name: ?=? 450 ...to: 451 Name: b 452 Address of: 453 Name: a 454 455 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 456 Name: ?=? 457 ...to: 458 Name: b 459 Address of: 460 Name: a 461 462 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 463 Name: ?=? 464 ...to: 465 Name: b 466 Address of: 467 Name: a 468 469 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 470 Name: ?=? 471 ...to: 472 Name: b 473 Address of: 474 Name: a 475 476 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 477 Name: ?=? 478 ...to: 479 Name: b 480 Address of: 481 Name: a 482 483 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 484 Name: ?=? 485 ...to: 486 Name: b 487 Address of: 488 Name: a 489 490 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 491 Name: ?=? 492 ...to: 493 Name: b 494 Address of: 495 Name: a 496 497 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 498 Name: ?=? 499 ...to: 500 Name: b 501 Address of: 502 Name: a 503 504 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 505 Name: ?=? 506 ...to: 507 Name: b 508 Address of: 509 Name: a 510 511 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 512 Name: ?=? 513 ...to: 514 Name: b 515 Address of: 516 Name: a 517 518 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 519 Name: ?=? 520 ...to: 521 Name: b 522 Address of: 523 Name: a 524 525 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 526 Name: ?=? 527 ...to: 528 Name: b 529 Address of: 530 Name: a 531 532 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 533 Name: ?=? 534 ...to: 535 Name: b 536 Address of: 537 Name: a 538 539 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 540 Name: ?=? 541 ...to: 542 Name: b 543 Address of: 544 Name: a 545 546 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 547 Name: ?=? 548 ...to: 549 Name: b 550 Address of: 551 Name: a 552 553 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 554 Name: ?=? 555 ...to: 556 Name: b 557 Address of: 558 Name: a 559 560 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 561 Name: ?=? 562 ...to: 563 Name: b 564 Address of: 565 Name: a 566 567 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 568 Name: ?=? 569 ...to: 570 Name: b 571 Address of: 572 Name: a 573 574 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 575 Name: ?=? 576 ...to: 577 Address of: 578 Name: b 579 Address of: 580 Name: a 581 582 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 583 Name: ?=? 584 ...to: 585 Address of: 586 Name: b 587 Address of: 588 Name: a 589 590 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 591 Name: ?=? 592 ...to: 593 Address of: 594 Name: b 595 Address of: 596 Name: a 597 598 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 599 Name: ?=? 600 ...to: 601 Address of: 602 Name: b 603 Address of: 604 Name: a 605 606 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 607 Name: ?=? 608 ...to: 609 Address of: 610 Name: b 611 Address of: 612 Name: a 613 614 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 615 Name: ?=? 616 ...to: 617 Address of: 618 Name: b 619 Address of: 620 Name: a 621 622 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 623 Name: ?=? 624 ...to: 625 Address of: 626 Name: b 627 Address of: 628 Name: a 629 630 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 631 Name: ?=? 632 ...to: 633 Address of: 634 Name: b 635 Address of: 636 Name: a 637 638 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 639 Name: ?=? 640 ...to: 641 Address of: 642 Name: b 643 Address of: 644 Name: a 645 646 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 647 Name: ?=? 648 ...to: 649 Address of: 650 Name: b 651 Address of: 652 Name: a 653 654 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 655 Name: ?=? 656 ...to: 657 Address of: 658 Name: b 659 Address of: 660 Name: a 661 662 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 663 Name: ?=? 664 ...to: 665 Address of: 666 Name: b 667 Address of: 668 Name: a 669 670 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 671 Name: ?=? 672 ...to: 673 Address of: 674 Name: b 675 Address of: 676 Name: a 677 678 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 679 Name: ?=? 680 ...to: 681 Address of: 682 Name: b 683 Address of: 684 Name: a 685 686 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 687 Name: ?=? 688 ...to: 689 Address of: 690 Name: b 691 Address of: 692 Name: a 693 694 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 695 Name: ?=? 696 ...to: 697 Address of: 698 Name: b 699 Address of: 700 Name: a 701 702 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 703 Name: ?=? 704 ...to: 705 Address of: 706 Name: b 707 Address of: 708 Name: a 709 710 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 711 Name: ?=? 712 ...to: 713 Address of: 714 Name: b 715 Address of: 716 Name: a 717 718 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 719 Name: ?=? 720 ...to: 721 Address of: 722 Name: b 723 Address of: 724 Name: a 725 726 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 727 Name: ?=? 728 ...to: 729 Address of: 730 Name: b 731 Address of: 732 Name: a 733 734 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 735 Name: ?=? 736 ...to: 737 Address of: 738 Name: b 739 Address of: 740 Name: a 741 742 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 743 Name: ?=? 744 ...to: 745 Address of: 746 Name: b 747 Address of: 748 Name: a 749 750 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 751 Name: ?=? 752 ...to: 753 Address of: 754 Name: b 755 Address of: 756 Name: a 757 758 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 759 Name: ?=? 760 ...to: 761 Address of: 762 Name: b 763 Address of: 764 Name: a 765 766 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 767 Name: ?=? 768 ...to: 769 Address of: 770 Name: b 771 Address of: 772 Name: a 773 774 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 775 Name: ?=? 776 ...to: 777 Address of: 778 Name: b 779 Address of: 780 Name: a 781 -
tests/array-container/.expect/dimexpr-match-c-ERRS.x64.txt
r2e94f3e7 rc68f6e6 1 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:2 Name: f 3 ...to: 4 Address of: 5 Name: a 6 7 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:8 Name: f 9 ...to: 10 Address of: 11 Name: a 12 13 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:14 Name: f 15 ...to: 16 Address of: 17 Name: a 18 19 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:20 Name: f 21 ...to: 22 Address of: 23 Name: a 24 25 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:26 Name: f 27 ...to: 28 Address of: 29 Name: a 30 31 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:32 Name: f 33 ...to: 34 Address of: 35 Name: a 36 37 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:38 Name: f 39 ...to: 40 Address of: 41 Name: a 42 43 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:44 Name: f 45 ...to: 46 Address of: 47 Name: a 48 49 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:50 Name: f 51 ...to: 52 Address of: 53 Name: a 54 55 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:56 Name: f 57 ...to: 58 Address of: 59 Name: a 60 61 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:62 Name: f 63 ...to: 64 Address of: 65 Name: a 66 67 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:68 Name: f 69 ...to: 70 Address of: 71 Name: a 72 73 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:74 Name: f 75 ...to: 76 Address of: 77 Name: a 78 79 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:80 Name: f 81 ...to: 82 Address of: 83 Name: a 84 85 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:86 Name: f 87 ...to: 88 Address of: 89 Name: a 90 91 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:92 Name: f 93 ...to: 94 Address of: 95 Name: a 96 97 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:98 Name: f 99 ...to: 100 Address of: 101 Name: a 102 103 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:104 Name: f 105 ...to: 106 Address of: 107 Name: a 108 109 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:110 Name: f 111 ...to: 112 Address of: 113 Name: a 114 115 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:116 Name: f 117 ...to: 118 Address of: 119 Name: a 120 121 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:122 Name: f 123 ...to: 124 Address of: 125 Name: a 126 127 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:128 Name: f 129 ...to: 130 Address of: 131 Name: a 132 133 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:134 Name: f 135 ...to: 136 Address of: 137 Name: a 138 139 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:140 Name: f 141 ...to: 142 Address of: 143 Name: a 144 145 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:146 Name: f 147 ...to: 148 Address of: 149 Name: a 150 151 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:152 Name: f 153 ...to: 154 Address of: 155 Name: a 156 157 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 2 Name: f 3 ...to: 4 Address of: 5 Name: a 6 7 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 8 Name: f 9 ...to: 10 Address of: 11 Name: a 12 13 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 14 Name: f 15 ...to: 16 Address of: 17 Name: a 18 19 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 20 Name: f 21 ...to: 22 Address of: 23 Name: a 24 25 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 26 Name: f 27 ...to: 28 Address of: 29 Name: a 30 31 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 32 Name: f 33 ...to: 34 Address of: 35 Name: a 36 37 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 38 Name: f 39 ...to: 40 Address of: 41 Name: a 42 43 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 44 Name: f 45 ...to: 46 Address of: 47 Name: a 48 49 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 50 Name: f 51 ...to: 52 Address of: 53 Name: a 54 55 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 56 Name: f 57 ...to: 58 Address of: 59 Name: a 60 61 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 62 Name: f 63 ...to: 64 Address of: 65 Name: a 66 67 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 68 Name: f 69 ...to: 70 Address of: 71 Name: a 72 73 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 74 Name: f 75 ...to: 76 Address of: 77 Name: a 78 79 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 80 Name: f 81 ...to: 82 Address of: 83 Name: a 84 85 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 86 Name: f 87 ...to: 88 Address of: 89 Name: a 90 91 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 92 Name: f 93 ...to: 94 Address of: 95 Name: a 96 97 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 98 Name: f 99 ...to: 100 Address of: 101 Name: a 102 103 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 104 Name: f 105 ...to: 106 Address of: 107 Name: a 108 109 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 110 Name: f 111 ...to: 112 Address of: 113 Name: a 114 115 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 116 Name: f 117 ...to: 118 Address of: 119 Name: a 120 121 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 122 Name: f 123 ...to: 124 Address of: 125 Name: a 126 127 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 128 Name: f 129 ...to: 130 Address of: 131 Name: a 132 133 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 134 Name: f 135 ...to: 136 Address of: 137 Name: a 138 139 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 140 Name: f 141 ...to: 142 Address of: 143 Name: a 144 145 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 146 Name: f 147 ...to: 148 Address of: 149 Name: a 150 151 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 152 Name: f 153 ...to: 154 Address of: 155 Name: a 156 157 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 158 158 Address of: 159 159 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 165 165 ... with resolved type: 166 166 unsigned long int 167 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression167 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 168 168 Address of: 169 169 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 175 175 ... with resolved type: 176 176 unsigned long int 177 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression177 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 178 178 Address of: 179 179 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 185 185 ... with resolved type: 186 186 unsigned long int 187 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression187 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 188 188 Address of: 189 189 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 195 195 ... with resolved type: 196 196 unsigned long int 197 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression197 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 198 198 Address of: 199 199 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 205 205 ... with resolved type: 206 206 unsigned long int 207 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression207 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 208 208 Address of: 209 209 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 215 215 ... with resolved type: 216 216 unsigned long int 217 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression217 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 218 218 Address of: 219 219 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 225 225 ... with resolved type: 226 226 unsigned long int 227 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression227 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 228 228 Address of: 229 229 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 235 235 ... with resolved type: 236 236 unsigned long int 237 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression237 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 238 238 Address of: 239 239 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 245 245 ... with resolved type: 246 246 unsigned long int 247 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression247 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 248 248 Address of: 249 249 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 255 255 ... with resolved type: 256 256 unsigned long int 257 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression257 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 258 258 Address of: 259 259 Name: a InitAlternative: pointer to array of float with dimension of Sizeof Expression on: instance of type dim7 (not function type) 260 260 ... with resolved type: 261 261 unsigned long int 262 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression262 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 263 263 Address of: 264 264 Name: a InitAlternative: pointer to array of float with dimension of Sizeof Expression on: instance of type dim7 (not function type) 265 265 ... with resolved type: 266 266 unsigned long int 267 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression267 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 268 268 Address of: 269 269 Name: a InitAlternative: pointer to array of float with dimension of Sizeof Expression on: instance of type dim7 (not function type) 270 270 ... with resolved type: 271 271 unsigned long int 272 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression272 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 273 273 Address of: 274 274 Name: a InitAlternative: pointer to array of float with dimension of Sizeof Expression on: instance of type dim7 (not function type) 275 275 ... with resolved type: 276 276 unsigned long int 277 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression277 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 278 278 Address of: 279 279 Name: a InitAlternative: pointer to array of float with dimension of Sizeof Expression on: instance of type dim7 (not function type) 280 280 ... with resolved type: 281 281 unsigned long int 282 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression282 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 283 283 Address of: 284 284 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 290 290 ... with resolved type: 291 291 unsigned long int 292 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression292 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 293 293 Address of: 294 294 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 300 300 ... with resolved type: 301 301 unsigned long int 302 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression302 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 303 303 Address of: 304 304 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 310 310 ... with resolved type: 311 311 unsigned long int 312 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression312 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 313 313 Address of: 314 314 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 320 320 ... with resolved type: 321 321 unsigned long int 322 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression322 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 323 323 Address of: 324 324 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 330 330 ... with resolved type: 331 331 unsigned long int 332 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression332 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 333 333 Address of: 334 334 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 340 340 ... with resolved type: 341 341 unsigned long int 342 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression342 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 343 343 Address of: 344 344 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 350 350 ... with resolved type: 351 351 unsigned long int 352 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression352 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 353 353 Address of: 354 354 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 360 360 ... with resolved type: 361 361 unsigned long int 362 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression362 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 363 363 Address of: 364 364 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 370 370 ... with resolved type: 371 371 unsigned long int 372 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression372 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 373 373 Address of: 374 374 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 380 380 ... with resolved type: 381 381 unsigned long int 382 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression382 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 383 383 Address of: 384 384 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 390 390 ... with resolved type: 391 391 unsigned long int 392 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:393 Name: ?=? 394 ...to: 395 Name: b 396 Address of: 397 Name: a 398 399 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:400 Name: ?=? 401 ...to: 402 Name: b 403 Address of: 404 Name: a 405 406 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:407 Name: ?=? 408 ...to: 409 Name: b 410 Address of: 411 Name: a 412 413 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:414 Name: ?=? 415 ...to: 416 Name: b 417 Address of: 418 Name: a 419 420 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:421 Name: ?=? 422 ...to: 423 Name: b 424 Address of: 425 Name: a 426 427 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:428 Name: ?=? 429 ...to: 430 Name: b 431 Address of: 432 Name: a 433 434 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:435 Name: ?=? 436 ...to: 437 Name: b 438 Address of: 439 Name: a 440 441 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:442 Name: ?=? 443 ...to: 444 Name: b 445 Address of: 446 Name: a 447 448 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:449 Name: ?=? 450 ...to: 451 Name: b 452 Address of: 453 Name: a 454 455 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:456 Name: ?=? 457 ...to: 458 Name: b 459 Address of: 460 Name: a 461 462 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:463 Name: ?=? 464 ...to: 465 Name: b 466 Address of: 467 Name: a 468 469 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:470 Name: ?=? 471 ...to: 472 Name: b 473 Address of: 474 Name: a 475 476 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:477 Name: ?=? 478 ...to: 479 Name: b 480 Address of: 481 Name: a 482 483 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:484 Name: ?=? 485 ...to: 486 Name: b 487 Address of: 488 Name: a 489 490 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:491 Name: ?=? 492 ...to: 493 Name: b 494 Address of: 495 Name: a 496 497 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:498 Name: ?=? 499 ...to: 500 Name: b 501 Address of: 502 Name: a 503 504 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:505 Name: ?=? 506 ...to: 507 Name: b 508 Address of: 509 Name: a 510 511 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:512 Name: ?=? 513 ...to: 514 Name: b 515 Address of: 516 Name: a 517 518 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:519 Name: ?=? 520 ...to: 521 Name: b 522 Address of: 523 Name: a 524 525 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:526 Name: ?=? 527 ...to: 528 Name: b 529 Address of: 530 Name: a 531 532 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:533 Name: ?=? 534 ...to: 535 Name: b 536 Address of: 537 Name: a 538 539 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:540 Name: ?=? 541 ...to: 542 Name: b 543 Address of: 544 Name: a 545 546 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:547 Name: ?=? 548 ...to: 549 Name: b 550 Address of: 551 Name: a 552 553 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:554 Name: ?=? 555 ...to: 556 Name: b 557 Address of: 558 Name: a 559 560 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:561 Name: ?=? 562 ...to: 563 Name: b 564 Address of: 565 Name: a 566 567 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:568 Name: ?=? 569 ...to: 570 Name: b 571 Address of: 572 Name: a 573 574 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:575 Name: ?=? 576 ...to: 577 Address of: 578 Name: b 579 Address of: 580 Name: a 581 582 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:583 Name: ?=? 584 ...to: 585 Address of: 586 Name: b 587 Address of: 588 Name: a 589 590 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:591 Name: ?=? 592 ...to: 593 Address of: 594 Name: b 595 Address of: 596 Name: a 597 598 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:599 Name: ?=? 600 ...to: 601 Address of: 602 Name: b 603 Address of: 604 Name: a 605 606 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:607 Name: ?=? 608 ...to: 609 Address of: 610 Name: b 611 Address of: 612 Name: a 613 614 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:615 Name: ?=? 616 ...to: 617 Address of: 618 Name: b 619 Address of: 620 Name: a 621 622 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:623 Name: ?=? 624 ...to: 625 Address of: 626 Name: b 627 Address of: 628 Name: a 629 630 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:631 Name: ?=? 632 ...to: 633 Address of: 634 Name: b 635 Address of: 636 Name: a 637 638 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:639 Name: ?=? 640 ...to: 641 Address of: 642 Name: b 643 Address of: 644 Name: a 645 646 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:647 Name: ?=? 648 ...to: 649 Address of: 650 Name: b 651 Address of: 652 Name: a 653 654 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:655 Name: ?=? 656 ...to: 657 Address of: 658 Name: b 659 Address of: 660 Name: a 661 662 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:663 Name: ?=? 664 ...to: 665 Address of: 666 Name: b 667 Address of: 668 Name: a 669 670 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:671 Name: ?=? 672 ...to: 673 Address of: 674 Name: b 675 Address of: 676 Name: a 677 678 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:679 Name: ?=? 680 ...to: 681 Address of: 682 Name: b 683 Address of: 684 Name: a 685 686 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:687 Name: ?=? 688 ...to: 689 Address of: 690 Name: b 691 Address of: 692 Name: a 693 694 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:695 Name: ?=? 696 ...to: 697 Address of: 698 Name: b 699 Address of: 700 Name: a 701 702 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:703 Name: ?=? 704 ...to: 705 Address of: 706 Name: b 707 Address of: 708 Name: a 709 710 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:711 Name: ?=? 712 ...to: 713 Address of: 714 Name: b 715 Address of: 716 Name: a 717 718 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:719 Name: ?=? 720 ...to: 721 Address of: 722 Name: b 723 Address of: 724 Name: a 725 726 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:727 Name: ?=? 728 ...to: 729 Address of: 730 Name: b 731 Address of: 732 Name: a 733 734 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:735 Name: ?=? 736 ...to: 737 Address of: 738 Name: b 739 Address of: 740 Name: a 741 742 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:743 Name: ?=? 744 ...to: 745 Address of: 746 Name: b 747 Address of: 748 Name: a 749 750 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:751 Name: ?=? 752 ...to: 753 Address of: 754 Name: b 755 Address of: 756 Name: a 757 758 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:759 Name: ?=? 760 ...to: 761 Address of: 762 Name: b 763 Address of: 764 Name: a 765 766 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:767 Name: ?=? 768 ...to: 769 Address of: 770 Name: b 771 Address of: 772 Name: a 773 774 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:775 Name: ?=? 776 ...to: 777 Address of: 778 Name: b 779 Address of: 780 Name: a 781 392 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 393 Name: ?=? 394 ...to: 395 Name: b 396 Address of: 397 Name: a 398 399 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 400 Name: ?=? 401 ...to: 402 Name: b 403 Address of: 404 Name: a 405 406 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 407 Name: ?=? 408 ...to: 409 Name: b 410 Address of: 411 Name: a 412 413 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 414 Name: ?=? 415 ...to: 416 Name: b 417 Address of: 418 Name: a 419 420 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 421 Name: ?=? 422 ...to: 423 Name: b 424 Address of: 425 Name: a 426 427 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 428 Name: ?=? 429 ...to: 430 Name: b 431 Address of: 432 Name: a 433 434 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 435 Name: ?=? 436 ...to: 437 Name: b 438 Address of: 439 Name: a 440 441 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 442 Name: ?=? 443 ...to: 444 Name: b 445 Address of: 446 Name: a 447 448 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 449 Name: ?=? 450 ...to: 451 Name: b 452 Address of: 453 Name: a 454 455 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 456 Name: ?=? 457 ...to: 458 Name: b 459 Address of: 460 Name: a 461 462 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 463 Name: ?=? 464 ...to: 465 Name: b 466 Address of: 467 Name: a 468 469 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 470 Name: ?=? 471 ...to: 472 Name: b 473 Address of: 474 Name: a 475 476 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 477 Name: ?=? 478 ...to: 479 Name: b 480 Address of: 481 Name: a 482 483 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 484 Name: ?=? 485 ...to: 486 Name: b 487 Address of: 488 Name: a 489 490 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 491 Name: ?=? 492 ...to: 493 Name: b 494 Address of: 495 Name: a 496 497 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 498 Name: ?=? 499 ...to: 500 Name: b 501 Address of: 502 Name: a 503 504 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 505 Name: ?=? 506 ...to: 507 Name: b 508 Address of: 509 Name: a 510 511 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 512 Name: ?=? 513 ...to: 514 Name: b 515 Address of: 516 Name: a 517 518 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 519 Name: ?=? 520 ...to: 521 Name: b 522 Address of: 523 Name: a 524 525 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 526 Name: ?=? 527 ...to: 528 Name: b 529 Address of: 530 Name: a 531 532 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 533 Name: ?=? 534 ...to: 535 Name: b 536 Address of: 537 Name: a 538 539 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 540 Name: ?=? 541 ...to: 542 Name: b 543 Address of: 544 Name: a 545 546 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 547 Name: ?=? 548 ...to: 549 Name: b 550 Address of: 551 Name: a 552 553 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 554 Name: ?=? 555 ...to: 556 Name: b 557 Address of: 558 Name: a 559 560 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 561 Name: ?=? 562 ...to: 563 Name: b 564 Address of: 565 Name: a 566 567 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 568 Name: ?=? 569 ...to: 570 Name: b 571 Address of: 572 Name: a 573 574 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 575 Name: ?=? 576 ...to: 577 Address of: 578 Name: b 579 Address of: 580 Name: a 581 582 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 583 Name: ?=? 584 ...to: 585 Address of: 586 Name: b 587 Address of: 588 Name: a 589 590 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 591 Name: ?=? 592 ...to: 593 Address of: 594 Name: b 595 Address of: 596 Name: a 597 598 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 599 Name: ?=? 600 ...to: 601 Address of: 602 Name: b 603 Address of: 604 Name: a 605 606 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 607 Name: ?=? 608 ...to: 609 Address of: 610 Name: b 611 Address of: 612 Name: a 613 614 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 615 Name: ?=? 616 ...to: 617 Address of: 618 Name: b 619 Address of: 620 Name: a 621 622 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 623 Name: ?=? 624 ...to: 625 Address of: 626 Name: b 627 Address of: 628 Name: a 629 630 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 631 Name: ?=? 632 ...to: 633 Address of: 634 Name: b 635 Address of: 636 Name: a 637 638 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 639 Name: ?=? 640 ...to: 641 Address of: 642 Name: b 643 Address of: 644 Name: a 645 646 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 647 Name: ?=? 648 ...to: 649 Address of: 650 Name: b 651 Address of: 652 Name: a 653 654 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 655 Name: ?=? 656 ...to: 657 Address of: 658 Name: b 659 Address of: 660 Name: a 661 662 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 663 Name: ?=? 664 ...to: 665 Address of: 666 Name: b 667 Address of: 668 Name: a 669 670 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 671 Name: ?=? 672 ...to: 673 Address of: 674 Name: b 675 Address of: 676 Name: a 677 678 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 679 Name: ?=? 680 ...to: 681 Address of: 682 Name: b 683 Address of: 684 Name: a 685 686 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 687 Name: ?=? 688 ...to: 689 Address of: 690 Name: b 691 Address of: 692 Name: a 693 694 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 695 Name: ?=? 696 ...to: 697 Address of: 698 Name: b 699 Address of: 700 Name: a 701 702 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 703 Name: ?=? 704 ...to: 705 Address of: 706 Name: b 707 Address of: 708 Name: a 709 710 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 711 Name: ?=? 712 ...to: 713 Address of: 714 Name: b 715 Address of: 716 Name: a 717 718 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 719 Name: ?=? 720 ...to: 721 Address of: 722 Name: b 723 Address of: 724 Name: a 725 726 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 727 Name: ?=? 728 ...to: 729 Address of: 730 Name: b 731 Address of: 732 Name: a 733 734 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 735 Name: ?=? 736 ...to: 737 Address of: 738 Name: b 739 Address of: 740 Name: a 741 742 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 743 Name: ?=? 744 ...to: 745 Address of: 746 Name: b 747 Address of: 748 Name: a 749 750 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 751 Name: ?=? 752 ...to: 753 Address of: 754 Name: b 755 Address of: 756 Name: a 757 758 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 759 Name: ?=? 760 ...to: 761 Address of: 762 Name: b 763 Address of: 764 Name: a 765 766 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 767 Name: ?=? 768 ...to: 769 Address of: 770 Name: b 771 Address of: 772 Name: a 773 774 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 775 Name: ?=? 776 ...to: 777 Address of: 778 Name: b 779 Address of: 780 Name: a 781 -
tests/array-container/.expect/dimexpr-match-c-ERRS.x86.txt
r2e94f3e7 rc68f6e6 1 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:2 Name: f 3 ...to: 4 Address of: 5 Name: a 6 7 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:8 Name: f 9 ...to: 10 Address of: 11 Name: a 12 13 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:14 Name: f 15 ...to: 16 Address of: 17 Name: a 18 19 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:20 Name: f 21 ...to: 22 Address of: 23 Name: a 24 25 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:26 Name: f 27 ...to: 28 Address of: 29 Name: a 30 31 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:32 Name: f 33 ...to: 34 Address of: 35 Name: a 36 37 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:38 Name: f 39 ...to: 40 Address of: 41 Name: a 42 43 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:44 Name: f 45 ...to: 46 Address of: 47 Name: a 48 49 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:50 Name: f 51 ...to: 52 Address of: 53 Name: a 54 55 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:56 Name: f 57 ...to: 58 Address of: 59 Name: a 60 61 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:62 Name: f 63 ...to: 64 Address of: 65 Name: a 66 67 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:68 Name: f 69 ...to: 70 Address of: 71 Name: a 72 73 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:74 Name: f 75 ...to: 76 Address of: 77 Name: a 78 79 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:80 Name: f 81 ...to: 82 Address of: 83 Name: a 84 85 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:86 Name: f 87 ...to: 88 Address of: 89 Name: a 90 91 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:92 Name: f 93 ...to: 94 Address of: 95 Name: a 96 97 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:98 Name: f 99 ...to: 100 Address of: 101 Name: a 102 103 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:104 Name: f 105 ...to: 106 Address of: 107 Name: a 108 109 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:110 Name: f 111 ...to: 112 Address of: 113 Name: a 114 115 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:116 Name: f 117 ...to: 118 Address of: 119 Name: a 120 121 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:122 Name: f 123 ...to: 124 Address of: 125 Name: a 126 127 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:128 Name: f 129 ...to: 130 Address of: 131 Name: a 132 133 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:134 Name: f 135 ...to: 136 Address of: 137 Name: a 138 139 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:140 Name: f 141 ...to: 142 Address of: 143 Name: a 144 145 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:146 Name: f 147 ...to: 148 Address of: 149 Name: a 150 151 array-container/dimexpr-match-c.cfa:3 0:1 error: Invalid application of existing declaration(s) in expression Applying untyped:152 Name: f 153 ...to: 154 Address of: 155 Name: a 156 157 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 2 Name: f 3 ...to: 4 Address of: 5 Name: a 6 7 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 8 Name: f 9 ...to: 10 Address of: 11 Name: a 12 13 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 14 Name: f 15 ...to: 16 Address of: 17 Name: a 18 19 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 20 Name: f 21 ...to: 22 Address of: 23 Name: a 24 25 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 26 Name: f 27 ...to: 28 Address of: 29 Name: a 30 31 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 32 Name: f 33 ...to: 34 Address of: 35 Name: a 36 37 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 38 Name: f 39 ...to: 40 Address of: 41 Name: a 42 43 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 44 Name: f 45 ...to: 46 Address of: 47 Name: a 48 49 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 50 Name: f 51 ...to: 52 Address of: 53 Name: a 54 55 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 56 Name: f 57 ...to: 58 Address of: 59 Name: a 60 61 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 62 Name: f 63 ...to: 64 Address of: 65 Name: a 66 67 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 68 Name: f 69 ...to: 70 Address of: 71 Name: a 72 73 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 74 Name: f 75 ...to: 76 Address of: 77 Name: a 78 79 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 80 Name: f 81 ...to: 82 Address of: 83 Name: a 84 85 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 86 Name: f 87 ...to: 88 Address of: 89 Name: a 90 91 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 92 Name: f 93 ...to: 94 Address of: 95 Name: a 96 97 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 98 Name: f 99 ...to: 100 Address of: 101 Name: a 102 103 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 104 Name: f 105 ...to: 106 Address of: 107 Name: a 108 109 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 110 Name: f 111 ...to: 112 Address of: 113 Name: a 114 115 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 116 Name: f 117 ...to: 118 Address of: 119 Name: a 120 121 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 122 Name: f 123 ...to: 124 Address of: 125 Name: a 126 127 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 128 Name: f 129 ...to: 130 Address of: 131 Name: a 132 133 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 134 Name: f 135 ...to: 136 Address of: 137 Name: a 138 139 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 140 Name: f 141 ...to: 142 Address of: 143 Name: a 144 145 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 146 Name: f 147 ...to: 148 Address of: 149 Name: a 150 151 array-container/dimexpr-match-c.cfa:34:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 152 Name: f 153 ...to: 154 Address of: 155 Name: a 156 157 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 158 158 Address of: 159 159 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 165 165 ... with resolved type: 166 166 unsigned int 167 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression167 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 168 168 Address of: 169 169 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 175 175 ... with resolved type: 176 176 unsigned int 177 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression177 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 178 178 Address of: 179 179 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 185 185 ... with resolved type: 186 186 unsigned int 187 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression187 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 188 188 Address of: 189 189 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 195 195 ... with resolved type: 196 196 unsigned int 197 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression197 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 198 198 Address of: 199 199 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 205 205 ... with resolved type: 206 206 unsigned int 207 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression207 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 208 208 Address of: 209 209 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 215 215 ... with resolved type: 216 216 unsigned int 217 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression217 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 218 218 Address of: 219 219 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 225 225 ... with resolved type: 226 226 unsigned int 227 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression227 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 228 228 Address of: 229 229 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 235 235 ... with resolved type: 236 236 unsigned int 237 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression237 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 238 238 Address of: 239 239 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 245 245 ... with resolved type: 246 246 unsigned int 247 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression247 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 248 248 Address of: 249 249 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 255 255 ... with resolved type: 256 256 unsigned int 257 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression257 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 258 258 Address of: 259 259 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 265 265 ... with resolved type: 266 266 unsigned int 267 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression267 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 268 268 Address of: 269 269 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 275 275 ... with resolved type: 276 276 unsigned int 277 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression277 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 278 278 Address of: 279 279 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 285 285 ... with resolved type: 286 286 unsigned int 287 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression287 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 288 288 Address of: 289 289 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 295 295 ... with resolved type: 296 296 unsigned int 297 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression297 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 298 298 Address of: 299 299 Name: a InitAlternative: pointer to array of float with dimension of Generated Cast of: … … 305 305 ... with resolved type: 306 306 unsigned int 307 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression307 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 308 308 Address of: 309 309 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 315 315 ... with resolved type: 316 316 unsigned int 317 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression317 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 318 318 Address of: 319 319 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 325 325 ... with resolved type: 326 326 unsigned int 327 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression327 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 328 328 Address of: 329 329 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 335 335 ... with resolved type: 336 336 unsigned int 337 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression337 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 338 338 Address of: 339 339 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 345 345 ... with resolved type: 346 346 unsigned int 347 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression347 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 348 348 Address of: 349 349 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 355 355 ... with resolved type: 356 356 unsigned int 357 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression357 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 358 358 Address of: 359 359 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 365 365 ... with resolved type: 366 366 unsigned int 367 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression367 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 368 368 Address of: 369 369 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 375 375 ... with resolved type: 376 376 unsigned int 377 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression377 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 378 378 Address of: 379 379 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 385 385 ... with resolved type: 386 386 unsigned int 387 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression387 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 388 388 Address of: 389 389 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 395 395 ... with resolved type: 396 396 unsigned int 397 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression397 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 398 398 Address of: 399 399 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 405 405 ... with resolved type: 406 406 unsigned int 407 array-container/dimexpr-match-c.cfa: 38:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression407 array-container/dimexpr-match-c.cfa:42:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 408 408 Address of: 409 409 Name: a InitAlternative: pointer to variable length array of float with dimension of Generated Cast of: … … 415 415 ... with resolved type: 416 416 unsigned int 417 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:418 Name: ?=? 419 ...to: 420 Name: b 421 Address of: 422 Name: a 423 424 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:425 Name: ?=? 426 ...to: 427 Name: b 428 Address of: 429 Name: a 430 431 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:432 Name: ?=? 433 ...to: 434 Name: b 435 Address of: 436 Name: a 437 438 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:439 Name: ?=? 440 ...to: 441 Name: b 442 Address of: 443 Name: a 444 445 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:446 Name: ?=? 447 ...to: 448 Name: b 449 Address of: 450 Name: a 451 452 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:453 Name: ?=? 454 ...to: 455 Name: b 456 Address of: 457 Name: a 458 459 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:460 Name: ?=? 461 ...to: 462 Name: b 463 Address of: 464 Name: a 465 466 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:467 Name: ?=? 468 ...to: 469 Name: b 470 Address of: 471 Name: a 472 473 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:474 Name: ?=? 475 ...to: 476 Name: b 477 Address of: 478 Name: a 479 480 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:481 Name: ?=? 482 ...to: 483 Name: b 484 Address of: 485 Name: a 486 487 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:488 Name: ?=? 489 ...to: 490 Name: b 491 Address of: 492 Name: a 493 494 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:495 Name: ?=? 496 ...to: 497 Name: b 498 Address of: 499 Name: a 500 501 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:502 Name: ?=? 503 ...to: 504 Name: b 505 Address of: 506 Name: a 507 508 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:509 Name: ?=? 510 ...to: 511 Name: b 512 Address of: 513 Name: a 514 515 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:516 Name: ?=? 517 ...to: 518 Name: b 519 Address of: 520 Name: a 521 522 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:523 Name: ?=? 524 ...to: 525 Name: b 526 Address of: 527 Name: a 528 529 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:530 Name: ?=? 531 ...to: 532 Name: b 533 Address of: 534 Name: a 535 536 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:537 Name: ?=? 538 ...to: 539 Name: b 540 Address of: 541 Name: a 542 543 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:544 Name: ?=? 545 ...to: 546 Name: b 547 Address of: 548 Name: a 549 550 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:551 Name: ?=? 552 ...to: 553 Name: b 554 Address of: 555 Name: a 556 557 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:558 Name: ?=? 559 ...to: 560 Name: b 561 Address of: 562 Name: a 563 564 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:565 Name: ?=? 566 ...to: 567 Name: b 568 Address of: 569 Name: a 570 571 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:572 Name: ?=? 573 ...to: 574 Name: b 575 Address of: 576 Name: a 577 578 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:579 Name: ?=? 580 ...to: 581 Name: b 582 Address of: 583 Name: a 584 585 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:586 Name: ?=? 587 ...to: 588 Name: b 589 Address of: 590 Name: a 591 592 array-container/dimexpr-match-c.cfa: 47:1 error: Invalid application of existing declaration(s) in expression Applying untyped:593 Name: ?=? 594 ...to: 595 Name: b 596 Address of: 597 Name: a 598 599 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:600 Name: ?=? 601 ...to: 602 Address of: 603 Name: b 604 Address of: 605 Name: a 606 607 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:608 Name: ?=? 609 ...to: 610 Address of: 611 Name: b 612 Address of: 613 Name: a 614 615 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:616 Name: ?=? 617 ...to: 618 Address of: 619 Name: b 620 Address of: 621 Name: a 622 623 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:624 Name: ?=? 625 ...to: 626 Address of: 627 Name: b 628 Address of: 629 Name: a 630 631 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:632 Name: ?=? 633 ...to: 634 Address of: 635 Name: b 636 Address of: 637 Name: a 638 639 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:640 Name: ?=? 641 ...to: 642 Address of: 643 Name: b 644 Address of: 645 Name: a 646 647 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:648 Name: ?=? 649 ...to: 650 Address of: 651 Name: b 652 Address of: 653 Name: a 654 655 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:656 Name: ?=? 657 ...to: 658 Address of: 659 Name: b 660 Address of: 661 Name: a 662 663 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:664 Name: ?=? 665 ...to: 666 Address of: 667 Name: b 668 Address of: 669 Name: a 670 671 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:672 Name: ?=? 673 ...to: 674 Address of: 675 Name: b 676 Address of: 677 Name: a 678 679 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:680 Name: ?=? 681 ...to: 682 Address of: 683 Name: b 684 Address of: 685 Name: a 686 687 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:688 Name: ?=? 689 ...to: 690 Address of: 691 Name: b 692 Address of: 693 Name: a 694 695 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:696 Name: ?=? 697 ...to: 698 Address of: 699 Name: b 700 Address of: 701 Name: a 702 703 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:704 Name: ?=? 705 ...to: 706 Address of: 707 Name: b 708 Address of: 709 Name: a 710 711 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:712 Name: ?=? 713 ...to: 714 Address of: 715 Name: b 716 Address of: 717 Name: a 718 719 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:720 Name: ?=? 721 ...to: 722 Address of: 723 Name: b 724 Address of: 725 Name: a 726 727 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:728 Name: ?=? 729 ...to: 730 Address of: 731 Name: b 732 Address of: 733 Name: a 734 735 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:736 Name: ?=? 737 ...to: 738 Address of: 739 Name: b 740 Address of: 741 Name: a 742 743 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:744 Name: ?=? 745 ...to: 746 Address of: 747 Name: b 748 Address of: 749 Name: a 750 751 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:752 Name: ?=? 753 ...to: 754 Address of: 755 Name: b 756 Address of: 757 Name: a 758 759 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:760 Name: ?=? 761 ...to: 762 Address of: 763 Name: b 764 Address of: 765 Name: a 766 767 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:768 Name: ?=? 769 ...to: 770 Address of: 771 Name: b 772 Address of: 773 Name: a 774 775 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:776 Name: ?=? 777 ...to: 778 Address of: 779 Name: b 780 Address of: 781 Name: a 782 783 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:784 Name: ?=? 785 ...to: 786 Address of: 787 Name: b 788 Address of: 789 Name: a 790 791 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:792 Name: ?=? 793 ...to: 794 Address of: 795 Name: b 796 Address of: 797 Name: a 798 799 array-container/dimexpr-match-c.cfa: 77:1 error: Invalid application of existing declaration(s) in expression Applying untyped:800 Name: ?=? 801 ...to: 802 Address of: 803 Name: b 804 Address of: 805 Name: a 806 417 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 418 Name: ?=? 419 ...to: 420 Name: b 421 Address of: 422 Name: a 423 424 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 425 Name: ?=? 426 ...to: 427 Name: b 428 Address of: 429 Name: a 430 431 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 432 Name: ?=? 433 ...to: 434 Name: b 435 Address of: 436 Name: a 437 438 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 439 Name: ?=? 440 ...to: 441 Name: b 442 Address of: 443 Name: a 444 445 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 446 Name: ?=? 447 ...to: 448 Name: b 449 Address of: 450 Name: a 451 452 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 453 Name: ?=? 454 ...to: 455 Name: b 456 Address of: 457 Name: a 458 459 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 460 Name: ?=? 461 ...to: 462 Name: b 463 Address of: 464 Name: a 465 466 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 467 Name: ?=? 468 ...to: 469 Name: b 470 Address of: 471 Name: a 472 473 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 474 Name: ?=? 475 ...to: 476 Name: b 477 Address of: 478 Name: a 479 480 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 481 Name: ?=? 482 ...to: 483 Name: b 484 Address of: 485 Name: a 486 487 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 488 Name: ?=? 489 ...to: 490 Name: b 491 Address of: 492 Name: a 493 494 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 495 Name: ?=? 496 ...to: 497 Name: b 498 Address of: 499 Name: a 500 501 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 502 Name: ?=? 503 ...to: 504 Name: b 505 Address of: 506 Name: a 507 508 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 509 Name: ?=? 510 ...to: 511 Name: b 512 Address of: 513 Name: a 514 515 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 516 Name: ?=? 517 ...to: 518 Name: b 519 Address of: 520 Name: a 521 522 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 523 Name: ?=? 524 ...to: 525 Name: b 526 Address of: 527 Name: a 528 529 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 530 Name: ?=? 531 ...to: 532 Name: b 533 Address of: 534 Name: a 535 536 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 537 Name: ?=? 538 ...to: 539 Name: b 540 Address of: 541 Name: a 542 543 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 544 Name: ?=? 545 ...to: 546 Name: b 547 Address of: 548 Name: a 549 550 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 551 Name: ?=? 552 ...to: 553 Name: b 554 Address of: 555 Name: a 556 557 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 558 Name: ?=? 559 ...to: 560 Name: b 561 Address of: 562 Name: a 563 564 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 565 Name: ?=? 566 ...to: 567 Name: b 568 Address of: 569 Name: a 570 571 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 572 Name: ?=? 573 ...to: 574 Name: b 575 Address of: 576 Name: a 577 578 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 579 Name: ?=? 580 ...to: 581 Name: b 582 Address of: 583 Name: a 584 585 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 586 Name: ?=? 587 ...to: 588 Name: b 589 Address of: 590 Name: a 591 592 array-container/dimexpr-match-c.cfa:51:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 593 Name: ?=? 594 ...to: 595 Name: b 596 Address of: 597 Name: a 598 599 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 600 Name: ?=? 601 ...to: 602 Address of: 603 Name: b 604 Address of: 605 Name: a 606 607 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 608 Name: ?=? 609 ...to: 610 Address of: 611 Name: b 612 Address of: 613 Name: a 614 615 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 616 Name: ?=? 617 ...to: 618 Address of: 619 Name: b 620 Address of: 621 Name: a 622 623 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 624 Name: ?=? 625 ...to: 626 Address of: 627 Name: b 628 Address of: 629 Name: a 630 631 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 632 Name: ?=? 633 ...to: 634 Address of: 635 Name: b 636 Address of: 637 Name: a 638 639 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 640 Name: ?=? 641 ...to: 642 Address of: 643 Name: b 644 Address of: 645 Name: a 646 647 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 648 Name: ?=? 649 ...to: 650 Address of: 651 Name: b 652 Address of: 653 Name: a 654 655 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 656 Name: ?=? 657 ...to: 658 Address of: 659 Name: b 660 Address of: 661 Name: a 662 663 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 664 Name: ?=? 665 ...to: 666 Address of: 667 Name: b 668 Address of: 669 Name: a 670 671 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 672 Name: ?=? 673 ...to: 674 Address of: 675 Name: b 676 Address of: 677 Name: a 678 679 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 680 Name: ?=? 681 ...to: 682 Address of: 683 Name: b 684 Address of: 685 Name: a 686 687 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 688 Name: ?=? 689 ...to: 690 Address of: 691 Name: b 692 Address of: 693 Name: a 694 695 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 696 Name: ?=? 697 ...to: 698 Address of: 699 Name: b 700 Address of: 701 Name: a 702 703 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 704 Name: ?=? 705 ...to: 706 Address of: 707 Name: b 708 Address of: 709 Name: a 710 711 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 712 Name: ?=? 713 ...to: 714 Address of: 715 Name: b 716 Address of: 717 Name: a 718 719 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 720 Name: ?=? 721 ...to: 722 Address of: 723 Name: b 724 Address of: 725 Name: a 726 727 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 728 Name: ?=? 729 ...to: 730 Address of: 731 Name: b 732 Address of: 733 Name: a 734 735 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 736 Name: ?=? 737 ...to: 738 Address of: 739 Name: b 740 Address of: 741 Name: a 742 743 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 744 Name: ?=? 745 ...to: 746 Address of: 747 Name: b 748 Address of: 749 Name: a 750 751 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 752 Name: ?=? 753 ...to: 754 Address of: 755 Name: b 756 Address of: 757 Name: a 758 759 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 760 Name: ?=? 761 ...to: 762 Address of: 763 Name: b 764 Address of: 765 Name: a 766 767 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 768 Name: ?=? 769 ...to: 770 Address of: 771 Name: b 772 Address of: 773 Name: a 774 775 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 776 Name: ?=? 777 ...to: 778 Address of: 779 Name: b 780 Address of: 781 Name: a 782 783 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 784 Name: ?=? 785 ...to: 786 Address of: 787 Name: b 788 Address of: 789 Name: a 790 791 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 792 Name: ?=? 793 ...to: 794 Address of: 795 Name: b 796 Address of: 797 Name: a 798 799 array-container/dimexpr-match-c.cfa:81:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 800 Name: ?=? 801 ...to: 802 Address of: 803 Name: b 804 Address of: 805 Name: a 806 -
tests/array-container/.expect/dimexpr-match-cfa-ERRS.arm64.txt
r2e94f3e7 rc68f6e6 1 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:2 Name: f 3 ...to: 4 Address of: 5 Name: a 6 7 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:8 Name: f 9 ...to: 10 Address of: 11 Name: a 12 13 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:14 Name: f 15 ...to: 16 Address of: 17 Name: a 18 19 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:20 Name: f 21 ...to: 22 Address of: 23 Name: a 24 25 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:26 Name: f 27 ...to: 28 Address of: 29 Name: a 30 31 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:32 Name: f 33 ...to: 34 Address of: 35 Name: a 36 37 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:38 Name: f 39 ...to: 40 Address of: 41 Name: a 42 43 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:44 Name: f 45 ...to: 46 Address of: 47 Name: a 48 49 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:50 Name: f 51 ...to: 52 Address of: 53 Name: a 54 55 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:56 Name: f 57 ...to: 58 Address of: 59 Name: a 60 61 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:62 Name: f 63 ...to: 64 Address of: 65 Name: a 66 67 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:68 Name: f 69 ...to: 70 Address of: 71 Name: a 72 73 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:74 Name: f 75 ...to: 76 Address of: 77 Name: a 78 79 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:80 Name: f 81 ...to: 82 Address of: 83 Name: a 84 85 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:86 Name: f 87 ...to: 88 Address of: 89 Name: a 90 91 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:92 Name: f 93 ...to: 94 Address of: 95 Name: a 96 97 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:98 Name: f 99 ...to: 100 Address of: 101 Name: a 102 103 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:104 Name: f 105 ...to: 106 Address of: 107 Name: a 108 109 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:110 Name: f 111 ...to: 112 Address of: 113 Name: a 114 115 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:116 Name: f 117 ...to: 118 Address of: 119 Name: a 120 121 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:122 Name: f 123 ...to: 124 Address of: 125 Name: a 126 127 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:128 Name: f 129 ...to: 130 Address of: 131 Name: a 132 133 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:134 Name: f 135 ...to: 136 Address of: 137 Name: a 138 139 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:140 Name: f 141 ...to: 142 Address of: 143 Name: a 144 145 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:146 Name: f 147 ...to: 148 Address of: 149 Name: a 150 151 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:152 Name: f 153 ...to: 154 Address of: 155 Name: a 156 157 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 2 Name: f 3 ...to: 4 Address of: 5 Name: a 6 7 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 8 Name: f 9 ...to: 10 Address of: 11 Name: a 12 13 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 14 Name: f 15 ...to: 16 Address of: 17 Name: a 18 19 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 20 Name: f 21 ...to: 22 Address of: 23 Name: a 24 25 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 26 Name: f 27 ...to: 28 Address of: 29 Name: a 30 31 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 32 Name: f 33 ...to: 34 Address of: 35 Name: a 36 37 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 38 Name: f 39 ...to: 40 Address of: 41 Name: a 42 43 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 44 Name: f 45 ...to: 46 Address of: 47 Name: a 48 49 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 50 Name: f 51 ...to: 52 Address of: 53 Name: a 54 55 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 56 Name: f 57 ...to: 58 Address of: 59 Name: a 60 61 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 62 Name: f 63 ...to: 64 Address of: 65 Name: a 66 67 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 68 Name: f 69 ...to: 70 Address of: 71 Name: a 72 73 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 74 Name: f 75 ...to: 76 Address of: 77 Name: a 78 79 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 80 Name: f 81 ...to: 82 Address of: 83 Name: a 84 85 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 86 Name: f 87 ...to: 88 Address of: 89 Name: a 90 91 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 92 Name: f 93 ...to: 94 Address of: 95 Name: a 96 97 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 98 Name: f 99 ...to: 100 Address of: 101 Name: a 102 103 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 104 Name: f 105 ...to: 106 Address of: 107 Name: a 108 109 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 110 Name: f 111 ...to: 112 Address of: 113 Name: a 114 115 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 116 Name: f 117 ...to: 118 Address of: 119 Name: a 120 121 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 122 Name: f 123 ...to: 124 Address of: 125 Name: a 126 127 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 128 Name: f 129 ...to: 130 Address of: 131 Name: a 132 133 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 134 Name: f 135 ...to: 136 Address of: 137 Name: a 138 139 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 140 Name: f 141 ...to: 142 Address of: 143 Name: a 144 145 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 146 Name: f 147 ...to: 148 Address of: 149 Name: a 150 151 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 152 Name: f 153 ...to: 154 Address of: 155 Name: a 156 157 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 158 158 Address of: 159 159 Name: a InitAlternative: pointer to instance of struct arpk with body … … 171 171 float 172 172 173 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression173 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 174 174 Address of: 175 175 Name: a InitAlternative: pointer to instance of struct arpk with body … … 187 187 float 188 188 189 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression189 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 190 190 Address of: 191 191 Name: a InitAlternative: pointer to instance of struct arpk with body … … 203 203 float 204 204 205 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression205 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 206 206 Address of: 207 207 Name: a InitAlternative: pointer to instance of struct arpk with body … … 219 219 float 220 220 221 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression221 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 222 222 Address of: 223 223 Name: a InitAlternative: pointer to instance of struct arpk with body … … 235 235 float 236 236 237 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression237 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 238 238 Address of: 239 239 Name: a InitAlternative: pointer to instance of struct arpk with body … … 251 251 float 252 252 253 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression253 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 254 254 Address of: 255 255 Name: a InitAlternative: pointer to instance of struct arpk with body … … 267 267 float 268 268 269 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression269 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 270 270 Address of: 271 271 Name: a InitAlternative: pointer to instance of struct arpk with body … … 283 283 float 284 284 285 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression285 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 286 286 Address of: 287 287 Name: a InitAlternative: pointer to instance of struct arpk with body … … 299 299 float 300 300 301 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression301 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 302 302 Address of: 303 303 Name: a InitAlternative: pointer to instance of struct arpk with body … … 315 315 float 316 316 317 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression317 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 318 318 Address of: 319 319 Name: a InitAlternative: pointer to instance of struct arpk with body … … 324 324 float 325 325 326 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression326 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 327 327 Address of: 328 328 Name: a InitAlternative: pointer to instance of struct arpk with body … … 333 333 float 334 334 335 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression335 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 336 336 Address of: 337 337 Name: a InitAlternative: pointer to instance of struct arpk with body … … 342 342 float 343 343 344 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression344 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 345 345 Address of: 346 346 Name: a InitAlternative: pointer to instance of struct arpk with body … … 351 351 float 352 352 353 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression353 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 354 354 Address of: 355 355 Name: a InitAlternative: pointer to instance of struct arpk with body … … 360 360 float 361 361 362 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression362 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 363 363 Address of: 364 364 Name: a InitAlternative: pointer to instance of struct arpk with body … … 376 376 float 377 377 378 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression378 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 379 379 Address of: 380 380 Name: a InitAlternative: pointer to instance of struct arpk with body … … 392 392 float 393 393 394 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression394 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 395 395 Address of: 396 396 Name: a InitAlternative: pointer to instance of struct arpk with body … … 408 408 float 409 409 410 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression410 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 411 411 Address of: 412 412 Name: a InitAlternative: pointer to instance of struct arpk with body … … 424 424 float 425 425 426 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression426 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 427 427 Address of: 428 428 Name: a InitAlternative: pointer to instance of struct arpk with body … … 440 440 float 441 441 442 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression442 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 443 443 Address of: 444 444 Name: a InitAlternative: pointer to instance of struct arpk with body … … 456 456 float 457 457 458 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression458 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 459 459 Address of: 460 460 Name: a InitAlternative: pointer to instance of struct arpk with body … … 472 472 float 473 473 474 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression474 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 475 475 Address of: 476 476 Name: a InitAlternative: pointer to instance of struct arpk with body … … 488 488 float 489 489 490 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression490 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 491 491 Address of: 492 492 Name: a InitAlternative: pointer to instance of struct arpk with body … … 504 504 float 505 505 506 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression506 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 507 507 Address of: 508 508 Name: a InitAlternative: pointer to instance of struct arpk with body … … 520 520 float 521 521 522 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression522 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 523 523 Address of: 524 524 Name: a InitAlternative: pointer to instance of struct arpk with body … … 536 536 float 537 537 538 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:539 Name: ?=? 540 ...to: 541 Name: b 542 Address of: 543 Name: a 544 545 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:546 Name: ?=? 547 ...to: 548 Name: b 549 Address of: 550 Name: a 551 552 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:553 Name: ?=? 554 ...to: 555 Name: b 556 Address of: 557 Name: a 558 559 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:560 Name: ?=? 561 ...to: 562 Name: b 563 Address of: 564 Name: a 565 566 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:567 Name: ?=? 568 ...to: 569 Name: b 570 Address of: 571 Name: a 572 573 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:574 Name: ?=? 575 ...to: 576 Name: b 577 Address of: 578 Name: a 579 580 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:581 Name: ?=? 582 ...to: 583 Name: b 584 Address of: 585 Name: a 586 587 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:588 Name: ?=? 589 ...to: 590 Name: b 591 Address of: 592 Name: a 593 594 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:595 Name: ?=? 596 ...to: 597 Name: b 598 Address of: 599 Name: a 600 601 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:602 Name: ?=? 603 ...to: 604 Name: b 605 Address of: 606 Name: a 607 608 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:609 Name: ?=? 610 ...to: 611 Name: b 612 Address of: 613 Name: a 614 615 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:616 Name: ?=? 617 ...to: 618 Name: b 619 Address of: 620 Name: a 621 622 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:623 Name: ?=? 624 ...to: 625 Name: b 626 Address of: 627 Name: a 628 629 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:630 Name: ?=? 631 ...to: 632 Name: b 633 Address of: 634 Name: a 635 636 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:637 Name: ?=? 638 ...to: 639 Name: b 640 Address of: 641 Name: a 642 643 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:644 Name: ?=? 645 ...to: 646 Name: b 647 Address of: 648 Name: a 649 650 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:651 Name: ?=? 652 ...to: 653 Name: b 654 Address of: 655 Name: a 656 657 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:658 Name: ?=? 659 ...to: 660 Name: b 661 Address of: 662 Name: a 663 664 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:665 Name: ?=? 666 ...to: 667 Name: b 668 Address of: 669 Name: a 670 671 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:672 Name: ?=? 673 ...to: 674 Name: b 675 Address of: 676 Name: a 677 678 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:679 Name: ?=? 680 ...to: 681 Name: b 682 Address of: 683 Name: a 684 685 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:686 Name: ?=? 687 ...to: 688 Name: b 689 Address of: 690 Name: a 691 692 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:693 Name: ?=? 694 ...to: 695 Name: b 696 Address of: 697 Name: a 698 699 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:700 Name: ?=? 701 ...to: 702 Name: b 703 Address of: 704 Name: a 705 706 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:707 Name: ?=? 708 ...to: 709 Name: b 710 Address of: 711 Name: a 712 713 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:714 Name: ?=? 715 ...to: 716 Name: b 717 Address of: 718 Name: a 719 720 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:721 Name: f 722 ...to: 723 Name: a 724 725 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:726 Name: f 727 ...to: 728 Name: a 729 730 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:731 Name: f 732 ...to: 733 Name: a 734 735 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:736 Name: f 737 ...to: 738 Name: a 739 740 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:741 Name: f 742 ...to: 743 Name: a 744 745 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:746 Name: f 747 ...to: 748 Name: a 749 750 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:751 Name: f 752 ...to: 753 Name: a 754 755 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:756 Name: f 757 ...to: 758 Name: a 759 760 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:761 Name: f 762 ...to: 763 Name: a 764 765 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:766 Name: f 767 ...to: 768 Name: a 769 770 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:771 Name: f 772 ...to: 773 Name: a 774 775 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:776 Name: f 777 ...to: 778 Name: a 779 780 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:781 Name: f 782 ...to: 783 Name: a 784 785 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:786 Name: f 787 ...to: 788 Name: a 789 790 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:791 Name: f 792 ...to: 793 Name: a 794 795 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:796 Name: f 797 ...to: 798 Name: a 799 800 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:801 Name: f 802 ...to: 803 Name: a 804 805 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:806 Name: f 807 ...to: 808 Name: a 809 810 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:811 Name: f 812 ...to: 813 Name: a 814 815 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:816 Name: f 817 ...to: 818 Name: a 819 820 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:821 Name: f 822 ...to: 823 Name: a 824 825 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:826 Name: f 827 ...to: 828 Name: a 829 830 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:831 Name: f 832 ...to: 833 Name: a 834 835 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:836 Name: f 837 ...to: 838 Name: a 839 840 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:841 Name: f 842 ...to: 843 Name: a 844 845 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:846 Name: f 847 ...to: 848 Name: a 849 850 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression538 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 539 Name: ?=? 540 ...to: 541 Name: b 542 Address of: 543 Name: a 544 545 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 546 Name: ?=? 547 ...to: 548 Name: b 549 Address of: 550 Name: a 551 552 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 553 Name: ?=? 554 ...to: 555 Name: b 556 Address of: 557 Name: a 558 559 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 560 Name: ?=? 561 ...to: 562 Name: b 563 Address of: 564 Name: a 565 566 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 567 Name: ?=? 568 ...to: 569 Name: b 570 Address of: 571 Name: a 572 573 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 574 Name: ?=? 575 ...to: 576 Name: b 577 Address of: 578 Name: a 579 580 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 581 Name: ?=? 582 ...to: 583 Name: b 584 Address of: 585 Name: a 586 587 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 588 Name: ?=? 589 ...to: 590 Name: b 591 Address of: 592 Name: a 593 594 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 595 Name: ?=? 596 ...to: 597 Name: b 598 Address of: 599 Name: a 600 601 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 602 Name: ?=? 603 ...to: 604 Name: b 605 Address of: 606 Name: a 607 608 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 609 Name: ?=? 610 ...to: 611 Name: b 612 Address of: 613 Name: a 614 615 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 616 Name: ?=? 617 ...to: 618 Name: b 619 Address of: 620 Name: a 621 622 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 623 Name: ?=? 624 ...to: 625 Name: b 626 Address of: 627 Name: a 628 629 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 630 Name: ?=? 631 ...to: 632 Name: b 633 Address of: 634 Name: a 635 636 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 637 Name: ?=? 638 ...to: 639 Name: b 640 Address of: 641 Name: a 642 643 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 644 Name: ?=? 645 ...to: 646 Name: b 647 Address of: 648 Name: a 649 650 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 651 Name: ?=? 652 ...to: 653 Name: b 654 Address of: 655 Name: a 656 657 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 658 Name: ?=? 659 ...to: 660 Name: b 661 Address of: 662 Name: a 663 664 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 665 Name: ?=? 666 ...to: 667 Name: b 668 Address of: 669 Name: a 670 671 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 672 Name: ?=? 673 ...to: 674 Name: b 675 Address of: 676 Name: a 677 678 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 679 Name: ?=? 680 ...to: 681 Name: b 682 Address of: 683 Name: a 684 685 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 686 Name: ?=? 687 ...to: 688 Name: b 689 Address of: 690 Name: a 691 692 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 693 Name: ?=? 694 ...to: 695 Name: b 696 Address of: 697 Name: a 698 699 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 700 Name: ?=? 701 ...to: 702 Name: b 703 Address of: 704 Name: a 705 706 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 707 Name: ?=? 708 ...to: 709 Name: b 710 Address of: 711 Name: a 712 713 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 714 Name: ?=? 715 ...to: 716 Name: b 717 Address of: 718 Name: a 719 720 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 721 Name: f 722 ...to: 723 Name: a 724 725 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 726 Name: f 727 ...to: 728 Name: a 729 730 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 731 Name: f 732 ...to: 733 Name: a 734 735 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 736 Name: f 737 ...to: 738 Name: a 739 740 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 741 Name: f 742 ...to: 743 Name: a 744 745 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 746 Name: f 747 ...to: 748 Name: a 749 750 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 751 Name: f 752 ...to: 753 Name: a 754 755 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 756 Name: f 757 ...to: 758 Name: a 759 760 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 761 Name: f 762 ...to: 763 Name: a 764 765 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 766 Name: f 767 ...to: 768 Name: a 769 770 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 771 Name: f 772 ...to: 773 Name: a 774 775 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 776 Name: f 777 ...to: 778 Name: a 779 780 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 781 Name: f 782 ...to: 783 Name: a 784 785 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 786 Name: f 787 ...to: 788 Name: a 789 790 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 791 Name: f 792 ...to: 793 Name: a 794 795 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 796 Name: f 797 ...to: 798 Name: a 799 800 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 801 Name: f 802 ...to: 803 Name: a 804 805 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 806 Name: f 807 ...to: 808 Name: a 809 810 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 811 Name: f 812 ...to: 813 Name: a 814 815 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 816 Name: f 817 ...to: 818 Name: a 819 820 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 821 Name: f 822 ...to: 823 Name: a 824 825 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 826 Name: f 827 ...to: 828 Name: a 829 830 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 831 Name: f 832 ...to: 833 Name: a 834 835 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 836 Name: f 837 ...to: 838 Name: a 839 840 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 841 Name: f 842 ...to: 843 Name: a 844 845 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 846 Name: f 847 ...to: 848 Name: a 849 850 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 851 851 Name: a InitAlternative: reference to instance of struct arpk with body 852 852 ... with parameters … … 863 863 float 864 864 865 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression865 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 866 866 Name: a InitAlternative: reference to instance of struct arpk with body 867 867 ... with parameters … … 878 878 float 879 879 880 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression880 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 881 881 Name: a InitAlternative: reference to instance of struct arpk with body 882 882 ... with parameters … … 893 893 float 894 894 895 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression895 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 896 896 Name: a InitAlternative: reference to instance of struct arpk with body 897 897 ... with parameters … … 908 908 float 909 909 910 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression910 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 911 911 Name: a InitAlternative: reference to instance of struct arpk with body 912 912 ... with parameters … … 923 923 float 924 924 925 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression925 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 926 926 Name: a InitAlternative: reference to instance of struct arpk with body 927 927 ... with parameters … … 938 938 float 939 939 940 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression940 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 941 941 Name: a InitAlternative: reference to instance of struct arpk with body 942 942 ... with parameters … … 953 953 float 954 954 955 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression955 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 956 956 Name: a InitAlternative: reference to instance of struct arpk with body 957 957 ... with parameters … … 968 968 float 969 969 970 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression970 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 971 971 Name: a InitAlternative: reference to instance of struct arpk with body 972 972 ... with parameters … … 983 983 float 984 984 985 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression985 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 986 986 Name: a InitAlternative: reference to instance of struct arpk with body 987 987 ... with parameters … … 998 998 float 999 999 1000 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1000 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1001 1001 Name: a InitAlternative: reference to instance of struct arpk with body 1002 1002 ... with parameters … … 1006 1006 float 1007 1007 1008 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1008 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1009 1009 Name: a InitAlternative: reference to instance of struct arpk with body 1010 1010 ... with parameters … … 1014 1014 float 1015 1015 1016 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1016 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1017 1017 Name: a InitAlternative: reference to instance of struct arpk with body 1018 1018 ... with parameters … … 1022 1022 float 1023 1023 1024 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1024 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1025 1025 Name: a InitAlternative: reference to instance of struct arpk with body 1026 1026 ... with parameters … … 1030 1030 float 1031 1031 1032 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1032 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1033 1033 Name: a InitAlternative: reference to instance of struct arpk with body 1034 1034 ... with parameters … … 1038 1038 float 1039 1039 1040 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1040 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1041 1041 Name: a InitAlternative: reference to instance of struct arpk with body 1042 1042 ... with parameters … … 1053 1053 float 1054 1054 1055 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1055 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1056 1056 Name: a InitAlternative: reference to instance of struct arpk with body 1057 1057 ... with parameters … … 1068 1068 float 1069 1069 1070 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1070 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1071 1071 Name: a InitAlternative: reference to instance of struct arpk with body 1072 1072 ... with parameters … … 1083 1083 float 1084 1084 1085 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1085 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1086 1086 Name: a InitAlternative: reference to instance of struct arpk with body 1087 1087 ... with parameters … … 1098 1098 float 1099 1099 1100 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1100 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1101 1101 Name: a InitAlternative: reference to instance of struct arpk with body 1102 1102 ... with parameters … … 1113 1113 float 1114 1114 1115 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1115 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1116 1116 Name: a InitAlternative: reference to instance of struct arpk with body 1117 1117 ... with parameters … … 1128 1128 float 1129 1129 1130 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1130 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1131 1131 Name: a InitAlternative: reference to instance of struct arpk with body 1132 1132 ... with parameters … … 1143 1143 float 1144 1144 1145 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1145 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1146 1146 Name: a InitAlternative: reference to instance of struct arpk with body 1147 1147 ... with parameters … … 1158 1158 float 1159 1159 1160 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1160 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1161 1161 Name: a InitAlternative: reference to instance of struct arpk with body 1162 1162 ... with parameters … … 1173 1173 float 1174 1174 1175 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1175 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1176 1176 Name: a InitAlternative: reference to instance of struct arpk with body 1177 1177 ... with parameters … … 1188 1188 float 1189 1189 1190 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1190 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1191 1191 Name: a InitAlternative: reference to instance of struct arpk with body 1192 1192 ... with parameters … … 1203 1203 float 1204 1204 1205 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1206 Name: ?=? 1207 ...to: 1208 Address of: 1209 Name: b 1210 Address of: 1211 Name: a 1212 1213 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1214 Name: ?=? 1215 ...to: 1216 Address of: 1217 Name: b 1218 Address of: 1219 Name: a 1220 1221 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1222 Name: ?=? 1223 ...to: 1224 Address of: 1225 Name: b 1226 Address of: 1227 Name: a 1228 1229 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1230 Name: ?=? 1231 ...to: 1232 Address of: 1233 Name: b 1234 Address of: 1235 Name: a 1236 1237 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1238 Name: ?=? 1239 ...to: 1240 Address of: 1241 Name: b 1242 Address of: 1243 Name: a 1244 1245 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1246 Name: ?=? 1247 ...to: 1248 Address of: 1249 Name: b 1250 Address of: 1251 Name: a 1252 1253 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1254 Name: ?=? 1255 ...to: 1256 Address of: 1257 Name: b 1258 Address of: 1259 Name: a 1260 1261 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1262 Name: ?=? 1263 ...to: 1264 Address of: 1265 Name: b 1266 Address of: 1267 Name: a 1268 1269 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1270 Name: ?=? 1271 ...to: 1272 Address of: 1273 Name: b 1274 Address of: 1275 Name: a 1276 1277 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1278 Name: ?=? 1279 ...to: 1280 Address of: 1281 Name: b 1282 Address of: 1283 Name: a 1284 1285 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1286 Name: ?=? 1287 ...to: 1288 Address of: 1289 Name: b 1290 Address of: 1291 Name: a 1292 1293 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1294 Name: ?=? 1295 ...to: 1296 Address of: 1297 Name: b 1298 Address of: 1299 Name: a 1300 1301 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1302 Name: ?=? 1303 ...to: 1304 Address of: 1305 Name: b 1306 Address of: 1307 Name: a 1308 1309 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1310 Name: ?=? 1311 ...to: 1312 Address of: 1313 Name: b 1314 Address of: 1315 Name: a 1316 1317 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1318 Name: ?=? 1319 ...to: 1320 Address of: 1321 Name: b 1322 Address of: 1323 Name: a 1324 1325 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1326 Name: ?=? 1327 ...to: 1328 Address of: 1329 Name: b 1330 Address of: 1331 Name: a 1332 1333 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1334 Name: ?=? 1335 ...to: 1336 Address of: 1337 Name: b 1338 Address of: 1339 Name: a 1340 1341 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1342 Name: ?=? 1343 ...to: 1344 Address of: 1345 Name: b 1346 Address of: 1347 Name: a 1348 1349 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1350 Name: ?=? 1351 ...to: 1352 Address of: 1353 Name: b 1354 Address of: 1355 Name: a 1356 1357 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1358 Name: ?=? 1359 ...to: 1360 Address of: 1361 Name: b 1362 Address of: 1363 Name: a 1364 1365 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1366 Name: ?=? 1367 ...to: 1368 Address of: 1369 Name: b 1370 Address of: 1371 Name: a 1372 1373 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1374 Name: ?=? 1375 ...to: 1376 Address of: 1377 Name: b 1378 Address of: 1379 Name: a 1380 1381 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1382 Name: ?=? 1383 ...to: 1384 Address of: 1385 Name: b 1386 Address of: 1387 Name: a 1388 1389 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1390 Name: ?=? 1391 ...to: 1392 Address of: 1393 Name: b 1394 Address of: 1395 Name: a 1396 1397 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1398 Name: ?=? 1399 ...to: 1400 Address of: 1401 Name: b 1402 Address of: 1403 Name: a 1404 1405 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1406 Name: ?=? 1407 ...to: 1408 Address of: 1409 Name: b 1410 Address of: 1411 Name: a 1412 1413 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1414 Name: zip 1415 ...to: 1416 Name: a 1417 Name: b 1418 1419 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1420 Name: zip 1421 ...to: 1422 Name: a 1423 Name: b 1424 1425 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1426 Name: zip 1427 ...to: 1428 Name: a 1429 Name: b 1430 1431 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1432 Name: zip 1433 ...to: 1434 Name: a 1435 Name: b 1436 1437 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1438 Name: zip 1439 ...to: 1440 Name: a 1441 Name: b 1442 1443 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1444 Name: zip 1445 ...to: 1446 Name: a 1447 Name: b 1448 1449 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1450 Name: zip 1451 ...to: 1452 Name: a 1453 Name: b 1454 1455 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1456 Name: zip 1457 ...to: 1458 Name: a 1459 Name: b 1460 1461 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1462 Name: zip 1463 ...to: 1464 Name: a 1465 Name: b 1466 1467 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1468 Name: zip 1469 ...to: 1470 Name: a 1471 Name: b 1472 1473 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1474 Name: zip 1475 ...to: 1476 Name: a 1477 Name: b 1478 1479 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1480 Name: zip 1481 ...to: 1482 Name: a 1483 Name: b 1484 1485 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1486 Name: zip 1487 ...to: 1488 Name: a 1489 Name: b 1490 1491 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1492 Name: zip 1493 ...to: 1494 Name: a 1495 Name: b 1496 1497 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1498 Name: zip 1499 ...to: 1500 Name: a 1501 Name: b 1502 1503 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1504 Name: zip 1505 ...to: 1506 Name: a 1507 Name: b 1508 1509 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1510 Name: zip 1511 ...to: 1512 Name: a 1513 Name: b 1514 1515 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1516 Name: zip 1517 ...to: 1518 Name: a 1519 Name: b 1520 1521 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1522 Name: zip 1523 ...to: 1524 Name: a 1525 Name: b 1526 1527 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1528 Name: zip 1529 ...to: 1530 Name: a 1531 Name: b 1532 1533 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1534 Name: zip 1535 ...to: 1536 Name: a 1537 Name: b 1538 1539 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1540 Name: zip 1541 ...to: 1542 Name: a 1543 Name: b 1544 1545 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1546 Name: zip 1547 ...to: 1548 Name: a 1549 Name: b 1550 1551 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1552 Name: zip 1553 ...to: 1554 Name: a 1555 Name: b 1556 1557 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1558 Name: zip 1559 ...to: 1560 Name: a 1561 Name: b 1562 1563 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1564 Name: zip 1565 ...to: 1566 Name: a 1567 Name: b 1568 1205 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1206 Name: ?=? 1207 ...to: 1208 Address of: 1209 Name: b 1210 Address of: 1211 Name: a 1212 1213 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1214 Name: ?=? 1215 ...to: 1216 Address of: 1217 Name: b 1218 Address of: 1219 Name: a 1220 1221 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1222 Name: ?=? 1223 ...to: 1224 Address of: 1225 Name: b 1226 Address of: 1227 Name: a 1228 1229 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1230 Name: ?=? 1231 ...to: 1232 Address of: 1233 Name: b 1234 Address of: 1235 Name: a 1236 1237 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1238 Name: ?=? 1239 ...to: 1240 Address of: 1241 Name: b 1242 Address of: 1243 Name: a 1244 1245 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1246 Name: ?=? 1247 ...to: 1248 Address of: 1249 Name: b 1250 Address of: 1251 Name: a 1252 1253 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1254 Name: ?=? 1255 ...to: 1256 Address of: 1257 Name: b 1258 Address of: 1259 Name: a 1260 1261 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1262 Name: ?=? 1263 ...to: 1264 Address of: 1265 Name: b 1266 Address of: 1267 Name: a 1268 1269 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1270 Name: ?=? 1271 ...to: 1272 Address of: 1273 Name: b 1274 Address of: 1275 Name: a 1276 1277 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1278 Name: ?=? 1279 ...to: 1280 Address of: 1281 Name: b 1282 Address of: 1283 Name: a 1284 1285 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1286 Name: ?=? 1287 ...to: 1288 Address of: 1289 Name: b 1290 Address of: 1291 Name: a 1292 1293 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1294 Name: ?=? 1295 ...to: 1296 Address of: 1297 Name: b 1298 Address of: 1299 Name: a 1300 1301 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1302 Name: ?=? 1303 ...to: 1304 Address of: 1305 Name: b 1306 Address of: 1307 Name: a 1308 1309 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1310 Name: ?=? 1311 ...to: 1312 Address of: 1313 Name: b 1314 Address of: 1315 Name: a 1316 1317 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1318 Name: ?=? 1319 ...to: 1320 Address of: 1321 Name: b 1322 Address of: 1323 Name: a 1324 1325 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1326 Name: ?=? 1327 ...to: 1328 Address of: 1329 Name: b 1330 Address of: 1331 Name: a 1332 1333 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1334 Name: ?=? 1335 ...to: 1336 Address of: 1337 Name: b 1338 Address of: 1339 Name: a 1340 1341 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1342 Name: ?=? 1343 ...to: 1344 Address of: 1345 Name: b 1346 Address of: 1347 Name: a 1348 1349 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1350 Name: ?=? 1351 ...to: 1352 Address of: 1353 Name: b 1354 Address of: 1355 Name: a 1356 1357 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1358 Name: ?=? 1359 ...to: 1360 Address of: 1361 Name: b 1362 Address of: 1363 Name: a 1364 1365 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1366 Name: ?=? 1367 ...to: 1368 Address of: 1369 Name: b 1370 Address of: 1371 Name: a 1372 1373 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1374 Name: ?=? 1375 ...to: 1376 Address of: 1377 Name: b 1378 Address of: 1379 Name: a 1380 1381 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1382 Name: ?=? 1383 ...to: 1384 Address of: 1385 Name: b 1386 Address of: 1387 Name: a 1388 1389 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1390 Name: ?=? 1391 ...to: 1392 Address of: 1393 Name: b 1394 Address of: 1395 Name: a 1396 1397 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1398 Name: ?=? 1399 ...to: 1400 Address of: 1401 Name: b 1402 Address of: 1403 Name: a 1404 1405 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1406 Name: ?=? 1407 ...to: 1408 Address of: 1409 Name: b 1410 Address of: 1411 Name: a 1412 1413 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1414 Name: zip 1415 ...to: 1416 Name: a 1417 Name: b 1418 1419 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1420 Name: zip 1421 ...to: 1422 Name: a 1423 Name: b 1424 1425 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1426 Name: zip 1427 ...to: 1428 Name: a 1429 Name: b 1430 1431 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1432 Name: zip 1433 ...to: 1434 Name: a 1435 Name: b 1436 1437 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1438 Name: zip 1439 ...to: 1440 Name: a 1441 Name: b 1442 1443 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1444 Name: zip 1445 ...to: 1446 Name: a 1447 Name: b 1448 1449 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1450 Name: zip 1451 ...to: 1452 Name: a 1453 Name: b 1454 1455 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1456 Name: zip 1457 ...to: 1458 Name: a 1459 Name: b 1460 1461 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1462 Name: zip 1463 ...to: 1464 Name: a 1465 Name: b 1466 1467 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1468 Name: zip 1469 ...to: 1470 Name: a 1471 Name: b 1472 1473 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1474 Name: zip 1475 ...to: 1476 Name: a 1477 Name: b 1478 1479 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1480 Name: zip 1481 ...to: 1482 Name: a 1483 Name: b 1484 1485 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1486 Name: zip 1487 ...to: 1488 Name: a 1489 Name: b 1490 1491 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1492 Name: zip 1493 ...to: 1494 Name: a 1495 Name: b 1496 1497 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1498 Name: zip 1499 ...to: 1500 Name: a 1501 Name: b 1502 1503 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1504 Name: zip 1505 ...to: 1506 Name: a 1507 Name: b 1508 1509 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1510 Name: zip 1511 ...to: 1512 Name: a 1513 Name: b 1514 1515 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1516 Name: zip 1517 ...to: 1518 Name: a 1519 Name: b 1520 1521 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1522 Name: zip 1523 ...to: 1524 Name: a 1525 Name: b 1526 1527 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1528 Name: zip 1529 ...to: 1530 Name: a 1531 Name: b 1532 1533 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1534 Name: zip 1535 ...to: 1536 Name: a 1537 Name: b 1538 1539 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1540 Name: zip 1541 ...to: 1542 Name: a 1543 Name: b 1544 1545 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1546 Name: zip 1547 ...to: 1548 Name: a 1549 Name: b 1550 1551 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1552 Name: zip 1553 ...to: 1554 Name: a 1555 Name: b 1556 1557 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1558 Name: zip 1559 ...to: 1560 Name: a 1561 Name: b 1562 1563 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1564 Name: zip 1565 ...to: 1566 Name: a 1567 Name: b 1568 -
tests/array-container/.expect/dimexpr-match-cfa-ERRS.x64.txt
r2e94f3e7 rc68f6e6 1 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:2 Name: f 3 ...to: 4 Address of: 5 Name: a 6 7 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:8 Name: f 9 ...to: 10 Address of: 11 Name: a 12 13 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:14 Name: f 15 ...to: 16 Address of: 17 Name: a 18 19 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:20 Name: f 21 ...to: 22 Address of: 23 Name: a 24 25 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:26 Name: f 27 ...to: 28 Address of: 29 Name: a 30 31 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:32 Name: f 33 ...to: 34 Address of: 35 Name: a 36 37 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:38 Name: f 39 ...to: 40 Address of: 41 Name: a 42 43 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:44 Name: f 45 ...to: 46 Address of: 47 Name: a 48 49 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:50 Name: f 51 ...to: 52 Address of: 53 Name: a 54 55 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:56 Name: f 57 ...to: 58 Address of: 59 Name: a 60 61 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:62 Name: f 63 ...to: 64 Address of: 65 Name: a 66 67 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:68 Name: f 69 ...to: 70 Address of: 71 Name: a 72 73 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:74 Name: f 75 ...to: 76 Address of: 77 Name: a 78 79 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:80 Name: f 81 ...to: 82 Address of: 83 Name: a 84 85 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:86 Name: f 87 ...to: 88 Address of: 89 Name: a 90 91 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:92 Name: f 93 ...to: 94 Address of: 95 Name: a 96 97 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:98 Name: f 99 ...to: 100 Address of: 101 Name: a 102 103 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:104 Name: f 105 ...to: 106 Address of: 107 Name: a 108 109 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:110 Name: f 111 ...to: 112 Address of: 113 Name: a 114 115 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:116 Name: f 117 ...to: 118 Address of: 119 Name: a 120 121 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:122 Name: f 123 ...to: 124 Address of: 125 Name: a 126 127 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:128 Name: f 129 ...to: 130 Address of: 131 Name: a 132 133 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:134 Name: f 135 ...to: 136 Address of: 137 Name: a 138 139 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:140 Name: f 141 ...to: 142 Address of: 143 Name: a 144 145 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:146 Name: f 147 ...to: 148 Address of: 149 Name: a 150 151 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:152 Name: f 153 ...to: 154 Address of: 155 Name: a 156 157 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 2 Name: f 3 ...to: 4 Address of: 5 Name: a 6 7 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 8 Name: f 9 ...to: 10 Address of: 11 Name: a 12 13 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 14 Name: f 15 ...to: 16 Address of: 17 Name: a 18 19 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 20 Name: f 21 ...to: 22 Address of: 23 Name: a 24 25 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 26 Name: f 27 ...to: 28 Address of: 29 Name: a 30 31 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 32 Name: f 33 ...to: 34 Address of: 35 Name: a 36 37 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 38 Name: f 39 ...to: 40 Address of: 41 Name: a 42 43 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 44 Name: f 45 ...to: 46 Address of: 47 Name: a 48 49 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 50 Name: f 51 ...to: 52 Address of: 53 Name: a 54 55 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 56 Name: f 57 ...to: 58 Address of: 59 Name: a 60 61 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 62 Name: f 63 ...to: 64 Address of: 65 Name: a 66 67 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 68 Name: f 69 ...to: 70 Address of: 71 Name: a 72 73 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 74 Name: f 75 ...to: 76 Address of: 77 Name: a 78 79 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 80 Name: f 81 ...to: 82 Address of: 83 Name: a 84 85 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 86 Name: f 87 ...to: 88 Address of: 89 Name: a 90 91 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 92 Name: f 93 ...to: 94 Address of: 95 Name: a 96 97 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 98 Name: f 99 ...to: 100 Address of: 101 Name: a 102 103 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 104 Name: f 105 ...to: 106 Address of: 107 Name: a 108 109 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 110 Name: f 111 ...to: 112 Address of: 113 Name: a 114 115 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 116 Name: f 117 ...to: 118 Address of: 119 Name: a 120 121 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 122 Name: f 123 ...to: 124 Address of: 125 Name: a 126 127 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 128 Name: f 129 ...to: 130 Address of: 131 Name: a 132 133 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 134 Name: f 135 ...to: 136 Address of: 137 Name: a 138 139 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 140 Name: f 141 ...to: 142 Address of: 143 Name: a 144 145 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 146 Name: f 147 ...to: 148 Address of: 149 Name: a 150 151 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 152 Name: f 153 ...to: 154 Address of: 155 Name: a 156 157 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 158 158 Address of: 159 159 Name: a InitAlternative: pointer to instance of struct arpk with body … … 171 171 float 172 172 173 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression173 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 174 174 Address of: 175 175 Name: a InitAlternative: pointer to instance of struct arpk with body … … 187 187 float 188 188 189 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression189 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 190 190 Address of: 191 191 Name: a InitAlternative: pointer to instance of struct arpk with body … … 203 203 float 204 204 205 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression205 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 206 206 Address of: 207 207 Name: a InitAlternative: pointer to instance of struct arpk with body … … 219 219 float 220 220 221 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression221 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 222 222 Address of: 223 223 Name: a InitAlternative: pointer to instance of struct arpk with body … … 235 235 float 236 236 237 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression237 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 238 238 Address of: 239 239 Name: a InitAlternative: pointer to instance of struct arpk with body … … 251 251 float 252 252 253 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression253 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 254 254 Address of: 255 255 Name: a InitAlternative: pointer to instance of struct arpk with body … … 267 267 float 268 268 269 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression269 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 270 270 Address of: 271 271 Name: a InitAlternative: pointer to instance of struct arpk with body … … 283 283 float 284 284 285 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression285 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 286 286 Address of: 287 287 Name: a InitAlternative: pointer to instance of struct arpk with body … … 299 299 float 300 300 301 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression301 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 302 302 Address of: 303 303 Name: a InitAlternative: pointer to instance of struct arpk with body … … 315 315 float 316 316 317 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression317 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 318 318 Address of: 319 319 Name: a InitAlternative: pointer to instance of struct arpk with body … … 324 324 float 325 325 326 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression326 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 327 327 Address of: 328 328 Name: a InitAlternative: pointer to instance of struct arpk with body … … 333 333 float 334 334 335 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression335 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 336 336 Address of: 337 337 Name: a InitAlternative: pointer to instance of struct arpk with body … … 342 342 float 343 343 344 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression344 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 345 345 Address of: 346 346 Name: a InitAlternative: pointer to instance of struct arpk with body … … 351 351 float 352 352 353 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression353 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 354 354 Address of: 355 355 Name: a InitAlternative: pointer to instance of struct arpk with body … … 360 360 float 361 361 362 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression362 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 363 363 Address of: 364 364 Name: a InitAlternative: pointer to instance of struct arpk with body … … 376 376 float 377 377 378 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression378 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 379 379 Address of: 380 380 Name: a InitAlternative: pointer to instance of struct arpk with body … … 392 392 float 393 393 394 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression394 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 395 395 Address of: 396 396 Name: a InitAlternative: pointer to instance of struct arpk with body … … 408 408 float 409 409 410 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression410 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 411 411 Address of: 412 412 Name: a InitAlternative: pointer to instance of struct arpk with body … … 424 424 float 425 425 426 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression426 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 427 427 Address of: 428 428 Name: a InitAlternative: pointer to instance of struct arpk with body … … 440 440 float 441 441 442 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression442 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 443 443 Address of: 444 444 Name: a InitAlternative: pointer to instance of struct arpk with body … … 456 456 float 457 457 458 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression458 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 459 459 Address of: 460 460 Name: a InitAlternative: pointer to instance of struct arpk with body … … 472 472 float 473 473 474 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression474 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 475 475 Address of: 476 476 Name: a InitAlternative: pointer to instance of struct arpk with body … … 488 488 float 489 489 490 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression490 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 491 491 Address of: 492 492 Name: a InitAlternative: pointer to instance of struct arpk with body … … 504 504 float 505 505 506 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression506 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 507 507 Address of: 508 508 Name: a InitAlternative: pointer to instance of struct arpk with body … … 520 520 float 521 521 522 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression522 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 523 523 Address of: 524 524 Name: a InitAlternative: pointer to instance of struct arpk with body … … 536 536 float 537 537 538 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:539 Name: ?=? 540 ...to: 541 Name: b 542 Address of: 543 Name: a 544 545 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:546 Name: ?=? 547 ...to: 548 Name: b 549 Address of: 550 Name: a 551 552 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:553 Name: ?=? 554 ...to: 555 Name: b 556 Address of: 557 Name: a 558 559 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:560 Name: ?=? 561 ...to: 562 Name: b 563 Address of: 564 Name: a 565 566 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:567 Name: ?=? 568 ...to: 569 Name: b 570 Address of: 571 Name: a 572 573 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:574 Name: ?=? 575 ...to: 576 Name: b 577 Address of: 578 Name: a 579 580 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:581 Name: ?=? 582 ...to: 583 Name: b 584 Address of: 585 Name: a 586 587 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:588 Name: ?=? 589 ...to: 590 Name: b 591 Address of: 592 Name: a 593 594 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:595 Name: ?=? 596 ...to: 597 Name: b 598 Address of: 599 Name: a 600 601 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:602 Name: ?=? 603 ...to: 604 Name: b 605 Address of: 606 Name: a 607 608 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:609 Name: ?=? 610 ...to: 611 Name: b 612 Address of: 613 Name: a 614 615 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:616 Name: ?=? 617 ...to: 618 Name: b 619 Address of: 620 Name: a 621 622 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:623 Name: ?=? 624 ...to: 625 Name: b 626 Address of: 627 Name: a 628 629 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:630 Name: ?=? 631 ...to: 632 Name: b 633 Address of: 634 Name: a 635 636 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:637 Name: ?=? 638 ...to: 639 Name: b 640 Address of: 641 Name: a 642 643 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:644 Name: ?=? 645 ...to: 646 Name: b 647 Address of: 648 Name: a 649 650 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:651 Name: ?=? 652 ...to: 653 Name: b 654 Address of: 655 Name: a 656 657 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:658 Name: ?=? 659 ...to: 660 Name: b 661 Address of: 662 Name: a 663 664 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:665 Name: ?=? 666 ...to: 667 Name: b 668 Address of: 669 Name: a 670 671 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:672 Name: ?=? 673 ...to: 674 Name: b 675 Address of: 676 Name: a 677 678 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:679 Name: ?=? 680 ...to: 681 Name: b 682 Address of: 683 Name: a 684 685 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:686 Name: ?=? 687 ...to: 688 Name: b 689 Address of: 690 Name: a 691 692 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:693 Name: ?=? 694 ...to: 695 Name: b 696 Address of: 697 Name: a 698 699 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:700 Name: ?=? 701 ...to: 702 Name: b 703 Address of: 704 Name: a 705 706 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:707 Name: ?=? 708 ...to: 709 Name: b 710 Address of: 711 Name: a 712 713 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:714 Name: ?=? 715 ...to: 716 Name: b 717 Address of: 718 Name: a 719 720 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:721 Name: f 722 ...to: 723 Name: a 724 725 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:726 Name: f 727 ...to: 728 Name: a 729 730 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:731 Name: f 732 ...to: 733 Name: a 734 735 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:736 Name: f 737 ...to: 738 Name: a 739 740 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:741 Name: f 742 ...to: 743 Name: a 744 745 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:746 Name: f 747 ...to: 748 Name: a 749 750 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:751 Name: f 752 ...to: 753 Name: a 754 755 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:756 Name: f 757 ...to: 758 Name: a 759 760 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:761 Name: f 762 ...to: 763 Name: a 764 765 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:766 Name: f 767 ...to: 768 Name: a 769 770 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:771 Name: f 772 ...to: 773 Name: a 774 775 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:776 Name: f 777 ...to: 778 Name: a 779 780 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:781 Name: f 782 ...to: 783 Name: a 784 785 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:786 Name: f 787 ...to: 788 Name: a 789 790 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:791 Name: f 792 ...to: 793 Name: a 794 795 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:796 Name: f 797 ...to: 798 Name: a 799 800 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:801 Name: f 802 ...to: 803 Name: a 804 805 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:806 Name: f 807 ...to: 808 Name: a 809 810 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:811 Name: f 812 ...to: 813 Name: a 814 815 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:816 Name: f 817 ...to: 818 Name: a 819 820 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:821 Name: f 822 ...to: 823 Name: a 824 825 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:826 Name: f 827 ...to: 828 Name: a 829 830 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:831 Name: f 832 ...to: 833 Name: a 834 835 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:836 Name: f 837 ...to: 838 Name: a 839 840 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:841 Name: f 842 ...to: 843 Name: a 844 845 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:846 Name: f 847 ...to: 848 Name: a 849 850 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression538 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 539 Name: ?=? 540 ...to: 541 Name: b 542 Address of: 543 Name: a 544 545 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 546 Name: ?=? 547 ...to: 548 Name: b 549 Address of: 550 Name: a 551 552 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 553 Name: ?=? 554 ...to: 555 Name: b 556 Address of: 557 Name: a 558 559 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 560 Name: ?=? 561 ...to: 562 Name: b 563 Address of: 564 Name: a 565 566 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 567 Name: ?=? 568 ...to: 569 Name: b 570 Address of: 571 Name: a 572 573 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 574 Name: ?=? 575 ...to: 576 Name: b 577 Address of: 578 Name: a 579 580 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 581 Name: ?=? 582 ...to: 583 Name: b 584 Address of: 585 Name: a 586 587 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 588 Name: ?=? 589 ...to: 590 Name: b 591 Address of: 592 Name: a 593 594 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 595 Name: ?=? 596 ...to: 597 Name: b 598 Address of: 599 Name: a 600 601 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 602 Name: ?=? 603 ...to: 604 Name: b 605 Address of: 606 Name: a 607 608 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 609 Name: ?=? 610 ...to: 611 Name: b 612 Address of: 613 Name: a 614 615 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 616 Name: ?=? 617 ...to: 618 Name: b 619 Address of: 620 Name: a 621 622 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 623 Name: ?=? 624 ...to: 625 Name: b 626 Address of: 627 Name: a 628 629 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 630 Name: ?=? 631 ...to: 632 Name: b 633 Address of: 634 Name: a 635 636 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 637 Name: ?=? 638 ...to: 639 Name: b 640 Address of: 641 Name: a 642 643 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 644 Name: ?=? 645 ...to: 646 Name: b 647 Address of: 648 Name: a 649 650 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 651 Name: ?=? 652 ...to: 653 Name: b 654 Address of: 655 Name: a 656 657 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 658 Name: ?=? 659 ...to: 660 Name: b 661 Address of: 662 Name: a 663 664 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 665 Name: ?=? 666 ...to: 667 Name: b 668 Address of: 669 Name: a 670 671 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 672 Name: ?=? 673 ...to: 674 Name: b 675 Address of: 676 Name: a 677 678 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 679 Name: ?=? 680 ...to: 681 Name: b 682 Address of: 683 Name: a 684 685 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 686 Name: ?=? 687 ...to: 688 Name: b 689 Address of: 690 Name: a 691 692 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 693 Name: ?=? 694 ...to: 695 Name: b 696 Address of: 697 Name: a 698 699 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 700 Name: ?=? 701 ...to: 702 Name: b 703 Address of: 704 Name: a 705 706 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 707 Name: ?=? 708 ...to: 709 Name: b 710 Address of: 711 Name: a 712 713 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 714 Name: ?=? 715 ...to: 716 Name: b 717 Address of: 718 Name: a 719 720 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 721 Name: f 722 ...to: 723 Name: a 724 725 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 726 Name: f 727 ...to: 728 Name: a 729 730 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 731 Name: f 732 ...to: 733 Name: a 734 735 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 736 Name: f 737 ...to: 738 Name: a 739 740 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 741 Name: f 742 ...to: 743 Name: a 744 745 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 746 Name: f 747 ...to: 748 Name: a 749 750 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 751 Name: f 752 ...to: 753 Name: a 754 755 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 756 Name: f 757 ...to: 758 Name: a 759 760 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 761 Name: f 762 ...to: 763 Name: a 764 765 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 766 Name: f 767 ...to: 768 Name: a 769 770 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 771 Name: f 772 ...to: 773 Name: a 774 775 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 776 Name: f 777 ...to: 778 Name: a 779 780 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 781 Name: f 782 ...to: 783 Name: a 784 785 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 786 Name: f 787 ...to: 788 Name: a 789 790 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 791 Name: f 792 ...to: 793 Name: a 794 795 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 796 Name: f 797 ...to: 798 Name: a 799 800 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 801 Name: f 802 ...to: 803 Name: a 804 805 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 806 Name: f 807 ...to: 808 Name: a 809 810 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 811 Name: f 812 ...to: 813 Name: a 814 815 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 816 Name: f 817 ...to: 818 Name: a 819 820 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 821 Name: f 822 ...to: 823 Name: a 824 825 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 826 Name: f 827 ...to: 828 Name: a 829 830 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 831 Name: f 832 ...to: 833 Name: a 834 835 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 836 Name: f 837 ...to: 838 Name: a 839 840 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 841 Name: f 842 ...to: 843 Name: a 844 845 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 846 Name: f 847 ...to: 848 Name: a 849 850 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 851 851 Name: a InitAlternative: reference to instance of struct arpk with body 852 852 ... with parameters … … 863 863 float 864 864 865 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression865 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 866 866 Name: a InitAlternative: reference to instance of struct arpk with body 867 867 ... with parameters … … 878 878 float 879 879 880 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression880 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 881 881 Name: a InitAlternative: reference to instance of struct arpk with body 882 882 ... with parameters … … 893 893 float 894 894 895 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression895 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 896 896 Name: a InitAlternative: reference to instance of struct arpk with body 897 897 ... with parameters … … 908 908 float 909 909 910 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression910 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 911 911 Name: a InitAlternative: reference to instance of struct arpk with body 912 912 ... with parameters … … 923 923 float 924 924 925 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression925 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 926 926 Name: a InitAlternative: reference to instance of struct arpk with body 927 927 ... with parameters … … 938 938 float 939 939 940 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression940 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 941 941 Name: a InitAlternative: reference to instance of struct arpk with body 942 942 ... with parameters … … 953 953 float 954 954 955 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression955 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 956 956 Name: a InitAlternative: reference to instance of struct arpk with body 957 957 ... with parameters … … 968 968 float 969 969 970 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression970 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 971 971 Name: a InitAlternative: reference to instance of struct arpk with body 972 972 ... with parameters … … 983 983 float 984 984 985 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression985 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 986 986 Name: a InitAlternative: reference to instance of struct arpk with body 987 987 ... with parameters … … 998 998 float 999 999 1000 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1000 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1001 1001 Name: a InitAlternative: reference to instance of struct arpk with body 1002 1002 ... with parameters … … 1006 1006 float 1007 1007 1008 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1008 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1009 1009 Name: a InitAlternative: reference to instance of struct arpk with body 1010 1010 ... with parameters … … 1014 1014 float 1015 1015 1016 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1016 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1017 1017 Name: a InitAlternative: reference to instance of struct arpk with body 1018 1018 ... with parameters … … 1022 1022 float 1023 1023 1024 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1024 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1025 1025 Name: a InitAlternative: reference to instance of struct arpk with body 1026 1026 ... with parameters … … 1030 1030 float 1031 1031 1032 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1032 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1033 1033 Name: a InitAlternative: reference to instance of struct arpk with body 1034 1034 ... with parameters … … 1038 1038 float 1039 1039 1040 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1040 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1041 1041 Name: a InitAlternative: reference to instance of struct arpk with body 1042 1042 ... with parameters … … 1053 1053 float 1054 1054 1055 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1055 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1056 1056 Name: a InitAlternative: reference to instance of struct arpk with body 1057 1057 ... with parameters … … 1068 1068 float 1069 1069 1070 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1070 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1071 1071 Name: a InitAlternative: reference to instance of struct arpk with body 1072 1072 ... with parameters … … 1083 1083 float 1084 1084 1085 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1085 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1086 1086 Name: a InitAlternative: reference to instance of struct arpk with body 1087 1087 ... with parameters … … 1098 1098 float 1099 1099 1100 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1100 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1101 1101 Name: a InitAlternative: reference to instance of struct arpk with body 1102 1102 ... with parameters … … 1113 1113 float 1114 1114 1115 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1115 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1116 1116 Name: a InitAlternative: reference to instance of struct arpk with body 1117 1117 ... with parameters … … 1128 1128 float 1129 1129 1130 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1130 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1131 1131 Name: a InitAlternative: reference to instance of struct arpk with body 1132 1132 ... with parameters … … 1143 1143 float 1144 1144 1145 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1145 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1146 1146 Name: a InitAlternative: reference to instance of struct arpk with body 1147 1147 ... with parameters … … 1158 1158 float 1159 1159 1160 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1160 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1161 1161 Name: a InitAlternative: reference to instance of struct arpk with body 1162 1162 ... with parameters … … 1173 1173 float 1174 1174 1175 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1175 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1176 1176 Name: a InitAlternative: reference to instance of struct arpk with body 1177 1177 ... with parameters … … 1188 1188 float 1189 1189 1190 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1190 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1191 1191 Name: a InitAlternative: reference to instance of struct arpk with body 1192 1192 ... with parameters … … 1203 1203 float 1204 1204 1205 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1206 Name: ?=? 1207 ...to: 1208 Address of: 1209 Name: b 1210 Address of: 1211 Name: a 1212 1213 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1214 Name: ?=? 1215 ...to: 1216 Address of: 1217 Name: b 1218 Address of: 1219 Name: a 1220 1221 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1222 Name: ?=? 1223 ...to: 1224 Address of: 1225 Name: b 1226 Address of: 1227 Name: a 1228 1229 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1230 Name: ?=? 1231 ...to: 1232 Address of: 1233 Name: b 1234 Address of: 1235 Name: a 1236 1237 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1238 Name: ?=? 1239 ...to: 1240 Address of: 1241 Name: b 1242 Address of: 1243 Name: a 1244 1245 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1246 Name: ?=? 1247 ...to: 1248 Address of: 1249 Name: b 1250 Address of: 1251 Name: a 1252 1253 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1254 Name: ?=? 1255 ...to: 1256 Address of: 1257 Name: b 1258 Address of: 1259 Name: a 1260 1261 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1262 Name: ?=? 1263 ...to: 1264 Address of: 1265 Name: b 1266 Address of: 1267 Name: a 1268 1269 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1270 Name: ?=? 1271 ...to: 1272 Address of: 1273 Name: b 1274 Address of: 1275 Name: a 1276 1277 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1278 Name: ?=? 1279 ...to: 1280 Address of: 1281 Name: b 1282 Address of: 1283 Name: a 1284 1285 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1286 Name: ?=? 1287 ...to: 1288 Address of: 1289 Name: b 1290 Address of: 1291 Name: a 1292 1293 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1294 Name: ?=? 1295 ...to: 1296 Address of: 1297 Name: b 1298 Address of: 1299 Name: a 1300 1301 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1302 Name: ?=? 1303 ...to: 1304 Address of: 1305 Name: b 1306 Address of: 1307 Name: a 1308 1309 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1310 Name: ?=? 1311 ...to: 1312 Address of: 1313 Name: b 1314 Address of: 1315 Name: a 1316 1317 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1318 Name: ?=? 1319 ...to: 1320 Address of: 1321 Name: b 1322 Address of: 1323 Name: a 1324 1325 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1326 Name: ?=? 1327 ...to: 1328 Address of: 1329 Name: b 1330 Address of: 1331 Name: a 1332 1333 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1334 Name: ?=? 1335 ...to: 1336 Address of: 1337 Name: b 1338 Address of: 1339 Name: a 1340 1341 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1342 Name: ?=? 1343 ...to: 1344 Address of: 1345 Name: b 1346 Address of: 1347 Name: a 1348 1349 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1350 Name: ?=? 1351 ...to: 1352 Address of: 1353 Name: b 1354 Address of: 1355 Name: a 1356 1357 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1358 Name: ?=? 1359 ...to: 1360 Address of: 1361 Name: b 1362 Address of: 1363 Name: a 1364 1365 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1366 Name: ?=? 1367 ...to: 1368 Address of: 1369 Name: b 1370 Address of: 1371 Name: a 1372 1373 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1374 Name: ?=? 1375 ...to: 1376 Address of: 1377 Name: b 1378 Address of: 1379 Name: a 1380 1381 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1382 Name: ?=? 1383 ...to: 1384 Address of: 1385 Name: b 1386 Address of: 1387 Name: a 1388 1389 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1390 Name: ?=? 1391 ...to: 1392 Address of: 1393 Name: b 1394 Address of: 1395 Name: a 1396 1397 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1398 Name: ?=? 1399 ...to: 1400 Address of: 1401 Name: b 1402 Address of: 1403 Name: a 1404 1405 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1406 Name: ?=? 1407 ...to: 1408 Address of: 1409 Name: b 1410 Address of: 1411 Name: a 1412 1413 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1414 Name: zip 1415 ...to: 1416 Name: a 1417 Name: b 1418 1419 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1420 Name: zip 1421 ...to: 1422 Name: a 1423 Name: b 1424 1425 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1426 Name: zip 1427 ...to: 1428 Name: a 1429 Name: b 1430 1431 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1432 Name: zip 1433 ...to: 1434 Name: a 1435 Name: b 1436 1437 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1438 Name: zip 1439 ...to: 1440 Name: a 1441 Name: b 1442 1443 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1444 Name: zip 1445 ...to: 1446 Name: a 1447 Name: b 1448 1449 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1450 Name: zip 1451 ...to: 1452 Name: a 1453 Name: b 1454 1455 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1456 Name: zip 1457 ...to: 1458 Name: a 1459 Name: b 1460 1461 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1462 Name: zip 1463 ...to: 1464 Name: a 1465 Name: b 1466 1467 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1468 Name: zip 1469 ...to: 1470 Name: a 1471 Name: b 1472 1473 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1474 Name: zip 1475 ...to: 1476 Name: a 1477 Name: b 1478 1479 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1480 Name: zip 1481 ...to: 1482 Name: a 1483 Name: b 1484 1485 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1486 Name: zip 1487 ...to: 1488 Name: a 1489 Name: b 1490 1491 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1492 Name: zip 1493 ...to: 1494 Name: a 1495 Name: b 1496 1497 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1498 Name: zip 1499 ...to: 1500 Name: a 1501 Name: b 1502 1503 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1504 Name: zip 1505 ...to: 1506 Name: a 1507 Name: b 1508 1509 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1510 Name: zip 1511 ...to: 1512 Name: a 1513 Name: b 1514 1515 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1516 Name: zip 1517 ...to: 1518 Name: a 1519 Name: b 1520 1521 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1522 Name: zip 1523 ...to: 1524 Name: a 1525 Name: b 1526 1527 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1528 Name: zip 1529 ...to: 1530 Name: a 1531 Name: b 1532 1533 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1534 Name: zip 1535 ...to: 1536 Name: a 1537 Name: b 1538 1539 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1540 Name: zip 1541 ...to: 1542 Name: a 1543 Name: b 1544 1545 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1546 Name: zip 1547 ...to: 1548 Name: a 1549 Name: b 1550 1551 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1552 Name: zip 1553 ...to: 1554 Name: a 1555 Name: b 1556 1557 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1558 Name: zip 1559 ...to: 1560 Name: a 1561 Name: b 1562 1563 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1564 Name: zip 1565 ...to: 1566 Name: a 1567 Name: b 1568 1205 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1206 Name: ?=? 1207 ...to: 1208 Address of: 1209 Name: b 1210 Address of: 1211 Name: a 1212 1213 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1214 Name: ?=? 1215 ...to: 1216 Address of: 1217 Name: b 1218 Address of: 1219 Name: a 1220 1221 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1222 Name: ?=? 1223 ...to: 1224 Address of: 1225 Name: b 1226 Address of: 1227 Name: a 1228 1229 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1230 Name: ?=? 1231 ...to: 1232 Address of: 1233 Name: b 1234 Address of: 1235 Name: a 1236 1237 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1238 Name: ?=? 1239 ...to: 1240 Address of: 1241 Name: b 1242 Address of: 1243 Name: a 1244 1245 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1246 Name: ?=? 1247 ...to: 1248 Address of: 1249 Name: b 1250 Address of: 1251 Name: a 1252 1253 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1254 Name: ?=? 1255 ...to: 1256 Address of: 1257 Name: b 1258 Address of: 1259 Name: a 1260 1261 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1262 Name: ?=? 1263 ...to: 1264 Address of: 1265 Name: b 1266 Address of: 1267 Name: a 1268 1269 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1270 Name: ?=? 1271 ...to: 1272 Address of: 1273 Name: b 1274 Address of: 1275 Name: a 1276 1277 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1278 Name: ?=? 1279 ...to: 1280 Address of: 1281 Name: b 1282 Address of: 1283 Name: a 1284 1285 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1286 Name: ?=? 1287 ...to: 1288 Address of: 1289 Name: b 1290 Address of: 1291 Name: a 1292 1293 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1294 Name: ?=? 1295 ...to: 1296 Address of: 1297 Name: b 1298 Address of: 1299 Name: a 1300 1301 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1302 Name: ?=? 1303 ...to: 1304 Address of: 1305 Name: b 1306 Address of: 1307 Name: a 1308 1309 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1310 Name: ?=? 1311 ...to: 1312 Address of: 1313 Name: b 1314 Address of: 1315 Name: a 1316 1317 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1318 Name: ?=? 1319 ...to: 1320 Address of: 1321 Name: b 1322 Address of: 1323 Name: a 1324 1325 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1326 Name: ?=? 1327 ...to: 1328 Address of: 1329 Name: b 1330 Address of: 1331 Name: a 1332 1333 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1334 Name: ?=? 1335 ...to: 1336 Address of: 1337 Name: b 1338 Address of: 1339 Name: a 1340 1341 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1342 Name: ?=? 1343 ...to: 1344 Address of: 1345 Name: b 1346 Address of: 1347 Name: a 1348 1349 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1350 Name: ?=? 1351 ...to: 1352 Address of: 1353 Name: b 1354 Address of: 1355 Name: a 1356 1357 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1358 Name: ?=? 1359 ...to: 1360 Address of: 1361 Name: b 1362 Address of: 1363 Name: a 1364 1365 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1366 Name: ?=? 1367 ...to: 1368 Address of: 1369 Name: b 1370 Address of: 1371 Name: a 1372 1373 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1374 Name: ?=? 1375 ...to: 1376 Address of: 1377 Name: b 1378 Address of: 1379 Name: a 1380 1381 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1382 Name: ?=? 1383 ...to: 1384 Address of: 1385 Name: b 1386 Address of: 1387 Name: a 1388 1389 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1390 Name: ?=? 1391 ...to: 1392 Address of: 1393 Name: b 1394 Address of: 1395 Name: a 1396 1397 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1398 Name: ?=? 1399 ...to: 1400 Address of: 1401 Name: b 1402 Address of: 1403 Name: a 1404 1405 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1406 Name: ?=? 1407 ...to: 1408 Address of: 1409 Name: b 1410 Address of: 1411 Name: a 1412 1413 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1414 Name: zip 1415 ...to: 1416 Name: a 1417 Name: b 1418 1419 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1420 Name: zip 1421 ...to: 1422 Name: a 1423 Name: b 1424 1425 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1426 Name: zip 1427 ...to: 1428 Name: a 1429 Name: b 1430 1431 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1432 Name: zip 1433 ...to: 1434 Name: a 1435 Name: b 1436 1437 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1438 Name: zip 1439 ...to: 1440 Name: a 1441 Name: b 1442 1443 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1444 Name: zip 1445 ...to: 1446 Name: a 1447 Name: b 1448 1449 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1450 Name: zip 1451 ...to: 1452 Name: a 1453 Name: b 1454 1455 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1456 Name: zip 1457 ...to: 1458 Name: a 1459 Name: b 1460 1461 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1462 Name: zip 1463 ...to: 1464 Name: a 1465 Name: b 1466 1467 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1468 Name: zip 1469 ...to: 1470 Name: a 1471 Name: b 1472 1473 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1474 Name: zip 1475 ...to: 1476 Name: a 1477 Name: b 1478 1479 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1480 Name: zip 1481 ...to: 1482 Name: a 1483 Name: b 1484 1485 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1486 Name: zip 1487 ...to: 1488 Name: a 1489 Name: b 1490 1491 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1492 Name: zip 1493 ...to: 1494 Name: a 1495 Name: b 1496 1497 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1498 Name: zip 1499 ...to: 1500 Name: a 1501 Name: b 1502 1503 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1504 Name: zip 1505 ...to: 1506 Name: a 1507 Name: b 1508 1509 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1510 Name: zip 1511 ...to: 1512 Name: a 1513 Name: b 1514 1515 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1516 Name: zip 1517 ...to: 1518 Name: a 1519 Name: b 1520 1521 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1522 Name: zip 1523 ...to: 1524 Name: a 1525 Name: b 1526 1527 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1528 Name: zip 1529 ...to: 1530 Name: a 1531 Name: b 1532 1533 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1534 Name: zip 1535 ...to: 1536 Name: a 1537 Name: b 1538 1539 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1540 Name: zip 1541 ...to: 1542 Name: a 1543 Name: b 1544 1545 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1546 Name: zip 1547 ...to: 1548 Name: a 1549 Name: b 1550 1551 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1552 Name: zip 1553 ...to: 1554 Name: a 1555 Name: b 1556 1557 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1558 Name: zip 1559 ...to: 1560 Name: a 1561 Name: b 1562 1563 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1564 Name: zip 1565 ...to: 1566 Name: a 1567 Name: b 1568 -
tests/array-container/.expect/dimexpr-match-cfa-ERRS.x86.txt
r2e94f3e7 rc68f6e6 1 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:2 Name: f 3 ...to: 4 Address of: 5 Name: a 6 7 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:8 Name: f 9 ...to: 10 Address of: 11 Name: a 12 13 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:14 Name: f 15 ...to: 16 Address of: 17 Name: a 18 19 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:20 Name: f 21 ...to: 22 Address of: 23 Name: a 24 25 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:26 Name: f 27 ...to: 28 Address of: 29 Name: a 30 31 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:32 Name: f 33 ...to: 34 Address of: 35 Name: a 36 37 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:38 Name: f 39 ...to: 40 Address of: 41 Name: a 42 43 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:44 Name: f 45 ...to: 46 Address of: 47 Name: a 48 49 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:50 Name: f 51 ...to: 52 Address of: 53 Name: a 54 55 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:56 Name: f 57 ...to: 58 Address of: 59 Name: a 60 61 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:62 Name: f 63 ...to: 64 Address of: 65 Name: a 66 67 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:68 Name: f 69 ...to: 70 Address of: 71 Name: a 72 73 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:74 Name: f 75 ...to: 76 Address of: 77 Name: a 78 79 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:80 Name: f 81 ...to: 82 Address of: 83 Name: a 84 85 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:86 Name: f 87 ...to: 88 Address of: 89 Name: a 90 91 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:92 Name: f 93 ...to: 94 Address of: 95 Name: a 96 97 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:98 Name: f 99 ...to: 100 Address of: 101 Name: a 102 103 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:104 Name: f 105 ...to: 106 Address of: 107 Name: a 108 109 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:110 Name: f 111 ...to: 112 Address of: 113 Name: a 114 115 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:116 Name: f 117 ...to: 118 Address of: 119 Name: a 120 121 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:122 Name: f 123 ...to: 124 Address of: 125 Name: a 126 127 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:128 Name: f 129 ...to: 130 Address of: 131 Name: a 132 133 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:134 Name: f 135 ...to: 136 Address of: 137 Name: a 138 139 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:140 Name: f 141 ...to: 142 Address of: 143 Name: a 144 145 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:146 Name: f 147 ...to: 148 Address of: 149 Name: a 150 151 array-container/dimexpr-match-cfa.cfa: 59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:152 Name: f 153 ...to: 154 Address of: 155 Name: a 156 157 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 2 Name: f 3 ...to: 4 Address of: 5 Name: a 6 7 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 8 Name: f 9 ...to: 10 Address of: 11 Name: a 12 13 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 14 Name: f 15 ...to: 16 Address of: 17 Name: a 18 19 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 20 Name: f 21 ...to: 22 Address of: 23 Name: a 24 25 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 26 Name: f 27 ...to: 28 Address of: 29 Name: a 30 31 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 32 Name: f 33 ...to: 34 Address of: 35 Name: a 36 37 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 38 Name: f 39 ...to: 40 Address of: 41 Name: a 42 43 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 44 Name: f 45 ...to: 46 Address of: 47 Name: a 48 49 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 50 Name: f 51 ...to: 52 Address of: 53 Name: a 54 55 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 56 Name: f 57 ...to: 58 Address of: 59 Name: a 60 61 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 62 Name: f 63 ...to: 64 Address of: 65 Name: a 66 67 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 68 Name: f 69 ...to: 70 Address of: 71 Name: a 72 73 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 74 Name: f 75 ...to: 76 Address of: 77 Name: a 78 79 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 80 Name: f 81 ...to: 82 Address of: 83 Name: a 84 85 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 86 Name: f 87 ...to: 88 Address of: 89 Name: a 90 91 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 92 Name: f 93 ...to: 94 Address of: 95 Name: a 96 97 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 98 Name: f 99 ...to: 100 Address of: 101 Name: a 102 103 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 104 Name: f 105 ...to: 106 Address of: 107 Name: a 108 109 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 110 Name: f 111 ...to: 112 Address of: 113 Name: a 114 115 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 116 Name: f 117 ...to: 118 Address of: 119 Name: a 120 121 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 122 Name: f 123 ...to: 124 Address of: 125 Name: a 126 127 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 128 Name: f 129 ...to: 130 Address of: 131 Name: a 132 133 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 134 Name: f 135 ...to: 136 Address of: 137 Name: a 138 139 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 140 Name: f 141 ...to: 142 Address of: 143 Name: a 144 145 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 146 Name: f 147 ...to: 148 Address of: 149 Name: a 150 151 array-container/dimexpr-match-cfa.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 152 Name: f 153 ...to: 154 Address of: 155 Name: a 156 157 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 158 158 Address of: 159 159 Name: a InitAlternative: pointer to instance of struct arpk with body … … 171 171 float 172 172 173 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression173 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 174 174 Address of: 175 175 Name: a InitAlternative: pointer to instance of struct arpk with body … … 187 187 float 188 188 189 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression189 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 190 190 Address of: 191 191 Name: a InitAlternative: pointer to instance of struct arpk with body … … 203 203 float 204 204 205 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression205 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 206 206 Address of: 207 207 Name: a InitAlternative: pointer to instance of struct arpk with body … … 219 219 float 220 220 221 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression221 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 222 222 Address of: 223 223 Name: a InitAlternative: pointer to instance of struct arpk with body … … 235 235 float 236 236 237 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression237 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 238 238 Address of: 239 239 Name: a InitAlternative: pointer to instance of struct arpk with body … … 251 251 float 252 252 253 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression253 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 254 254 Address of: 255 255 Name: a InitAlternative: pointer to instance of struct arpk with body … … 267 267 float 268 268 269 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression269 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 270 270 Address of: 271 271 Name: a InitAlternative: pointer to instance of struct arpk with body … … 283 283 float 284 284 285 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression285 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 286 286 Address of: 287 287 Name: a InitAlternative: pointer to instance of struct arpk with body … … 299 299 float 300 300 301 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression301 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 302 302 Address of: 303 303 Name: a InitAlternative: pointer to instance of struct arpk with body … … 315 315 float 316 316 317 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression317 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 318 318 Address of: 319 319 Name: a InitAlternative: pointer to instance of struct arpk with body … … 324 324 float 325 325 326 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression326 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 327 327 Address of: 328 328 Name: a InitAlternative: pointer to instance of struct arpk with body … … 333 333 float 334 334 335 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression335 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 336 336 Address of: 337 337 Name: a InitAlternative: pointer to instance of struct arpk with body … … 342 342 float 343 343 344 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression344 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 345 345 Address of: 346 346 Name: a InitAlternative: pointer to instance of struct arpk with body … … 351 351 float 352 352 353 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression353 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 354 354 Address of: 355 355 Name: a InitAlternative: pointer to instance of struct arpk with body … … 360 360 float 361 361 362 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression362 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 363 363 Address of: 364 364 Name: a InitAlternative: pointer to instance of struct arpk with body … … 376 376 float 377 377 378 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression378 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 379 379 Address of: 380 380 Name: a InitAlternative: pointer to instance of struct arpk with body … … 392 392 float 393 393 394 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression394 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 395 395 Address of: 396 396 Name: a InitAlternative: pointer to instance of struct arpk with body … … 408 408 float 409 409 410 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression410 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 411 411 Address of: 412 412 Name: a InitAlternative: pointer to instance of struct arpk with body … … 424 424 float 425 425 426 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression426 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 427 427 Address of: 428 428 Name: a InitAlternative: pointer to instance of struct arpk with body … … 440 440 float 441 441 442 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression442 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 443 443 Address of: 444 444 Name: a InitAlternative: pointer to instance of struct arpk with body … … 456 456 float 457 457 458 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression458 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 459 459 Address of: 460 460 Name: a InitAlternative: pointer to instance of struct arpk with body … … 472 472 float 473 473 474 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression474 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 475 475 Address of: 476 476 Name: a InitAlternative: pointer to instance of struct arpk with body … … 488 488 float 489 489 490 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression490 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 491 491 Address of: 492 492 Name: a InitAlternative: pointer to instance of struct arpk with body … … 504 504 float 505 505 506 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression506 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 507 507 Address of: 508 508 Name: a InitAlternative: pointer to instance of struct arpk with body … … 520 520 float 521 521 522 array-container/dimexpr-match-cfa.cfa:6 7:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression522 array-container/dimexpr-match-cfa.cfa:68:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 523 523 Address of: 524 524 Name: a InitAlternative: pointer to instance of struct arpk with body … … 536 536 float 537 537 538 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:539 Name: ?=? 540 ...to: 541 Name: b 542 Address of: 543 Name: a 544 545 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:546 Name: ?=? 547 ...to: 548 Name: b 549 Address of: 550 Name: a 551 552 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:553 Name: ?=? 554 ...to: 555 Name: b 556 Address of: 557 Name: a 558 559 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:560 Name: ?=? 561 ...to: 562 Name: b 563 Address of: 564 Name: a 565 566 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:567 Name: ?=? 568 ...to: 569 Name: b 570 Address of: 571 Name: a 572 573 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:574 Name: ?=? 575 ...to: 576 Name: b 577 Address of: 578 Name: a 579 580 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:581 Name: ?=? 582 ...to: 583 Name: b 584 Address of: 585 Name: a 586 587 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:588 Name: ?=? 589 ...to: 590 Name: b 591 Address of: 592 Name: a 593 594 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:595 Name: ?=? 596 ...to: 597 Name: b 598 Address of: 599 Name: a 600 601 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:602 Name: ?=? 603 ...to: 604 Name: b 605 Address of: 606 Name: a 607 608 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:609 Name: ?=? 610 ...to: 611 Name: b 612 Address of: 613 Name: a 614 615 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:616 Name: ?=? 617 ...to: 618 Name: b 619 Address of: 620 Name: a 621 622 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:623 Name: ?=? 624 ...to: 625 Name: b 626 Address of: 627 Name: a 628 629 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:630 Name: ?=? 631 ...to: 632 Name: b 633 Address of: 634 Name: a 635 636 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:637 Name: ?=? 638 ...to: 639 Name: b 640 Address of: 641 Name: a 642 643 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:644 Name: ?=? 645 ...to: 646 Name: b 647 Address of: 648 Name: a 649 650 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:651 Name: ?=? 652 ...to: 653 Name: b 654 Address of: 655 Name: a 656 657 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:658 Name: ?=? 659 ...to: 660 Name: b 661 Address of: 662 Name: a 663 664 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:665 Name: ?=? 666 ...to: 667 Name: b 668 Address of: 669 Name: a 670 671 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:672 Name: ?=? 673 ...to: 674 Name: b 675 Address of: 676 Name: a 677 678 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:679 Name: ?=? 680 ...to: 681 Name: b 682 Address of: 683 Name: a 684 685 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:686 Name: ?=? 687 ...to: 688 Name: b 689 Address of: 690 Name: a 691 692 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:693 Name: ?=? 694 ...to: 695 Name: b 696 Address of: 697 Name: a 698 699 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:700 Name: ?=? 701 ...to: 702 Name: b 703 Address of: 704 Name: a 705 706 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:707 Name: ?=? 708 ...to: 709 Name: b 710 Address of: 711 Name: a 712 713 array-container/dimexpr-match-cfa.cfa:7 6:1 error: Invalid application of existing declaration(s) in expression Applying untyped:714 Name: ?=? 715 ...to: 716 Name: b 717 Address of: 718 Name: a 719 720 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:721 Name: f 722 ...to: 723 Name: a 724 725 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:726 Name: f 727 ...to: 728 Name: a 729 730 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:731 Name: f 732 ...to: 733 Name: a 734 735 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:736 Name: f 737 ...to: 738 Name: a 739 740 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:741 Name: f 742 ...to: 743 Name: a 744 745 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:746 Name: f 747 ...to: 748 Name: a 749 750 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:751 Name: f 752 ...to: 753 Name: a 754 755 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:756 Name: f 757 ...to: 758 Name: a 759 760 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:761 Name: f 762 ...to: 763 Name: a 764 765 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:766 Name: f 767 ...to: 768 Name: a 769 770 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:771 Name: f 772 ...to: 773 Name: a 774 775 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:776 Name: f 777 ...to: 778 Name: a 779 780 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:781 Name: f 782 ...to: 783 Name: a 784 785 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:786 Name: f 787 ...to: 788 Name: a 789 790 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:791 Name: f 792 ...to: 793 Name: a 794 795 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:796 Name: f 797 ...to: 798 Name: a 799 800 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:801 Name: f 802 ...to: 803 Name: a 804 805 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:806 Name: f 807 ...to: 808 Name: a 809 810 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:811 Name: f 812 ...to: 813 Name: a 814 815 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:816 Name: f 817 ...to: 818 Name: a 819 820 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:821 Name: f 822 ...to: 823 Name: a 824 825 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:826 Name: f 827 ...to: 828 Name: a 829 830 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:831 Name: f 832 ...to: 833 Name: a 834 835 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:836 Name: f 837 ...to: 838 Name: a 839 840 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:841 Name: f 842 ...to: 843 Name: a 844 845 array-container/dimexpr-match-cfa.cfa:8 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:846 Name: f 847 ...to: 848 Name: a 849 850 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression538 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 539 Name: ?=? 540 ...to: 541 Name: b 542 Address of: 543 Name: a 544 545 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 546 Name: ?=? 547 ...to: 548 Name: b 549 Address of: 550 Name: a 551 552 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 553 Name: ?=? 554 ...to: 555 Name: b 556 Address of: 557 Name: a 558 559 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 560 Name: ?=? 561 ...to: 562 Name: b 563 Address of: 564 Name: a 565 566 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 567 Name: ?=? 568 ...to: 569 Name: b 570 Address of: 571 Name: a 572 573 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 574 Name: ?=? 575 ...to: 576 Name: b 577 Address of: 578 Name: a 579 580 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 581 Name: ?=? 582 ...to: 583 Name: b 584 Address of: 585 Name: a 586 587 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 588 Name: ?=? 589 ...to: 590 Name: b 591 Address of: 592 Name: a 593 594 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 595 Name: ?=? 596 ...to: 597 Name: b 598 Address of: 599 Name: a 600 601 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 602 Name: ?=? 603 ...to: 604 Name: b 605 Address of: 606 Name: a 607 608 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 609 Name: ?=? 610 ...to: 611 Name: b 612 Address of: 613 Name: a 614 615 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 616 Name: ?=? 617 ...to: 618 Name: b 619 Address of: 620 Name: a 621 622 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 623 Name: ?=? 624 ...to: 625 Name: b 626 Address of: 627 Name: a 628 629 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 630 Name: ?=? 631 ...to: 632 Name: b 633 Address of: 634 Name: a 635 636 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 637 Name: ?=? 638 ...to: 639 Name: b 640 Address of: 641 Name: a 642 643 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 644 Name: ?=? 645 ...to: 646 Name: b 647 Address of: 648 Name: a 649 650 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 651 Name: ?=? 652 ...to: 653 Name: b 654 Address of: 655 Name: a 656 657 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 658 Name: ?=? 659 ...to: 660 Name: b 661 Address of: 662 Name: a 663 664 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 665 Name: ?=? 666 ...to: 667 Name: b 668 Address of: 669 Name: a 670 671 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 672 Name: ?=? 673 ...to: 674 Name: b 675 Address of: 676 Name: a 677 678 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 679 Name: ?=? 680 ...to: 681 Name: b 682 Address of: 683 Name: a 684 685 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 686 Name: ?=? 687 ...to: 688 Name: b 689 Address of: 690 Name: a 691 692 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 693 Name: ?=? 694 ...to: 695 Name: b 696 Address of: 697 Name: a 698 699 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 700 Name: ?=? 701 ...to: 702 Name: b 703 Address of: 704 Name: a 705 706 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 707 Name: ?=? 708 ...to: 709 Name: b 710 Address of: 711 Name: a 712 713 array-container/dimexpr-match-cfa.cfa:77:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 714 Name: ?=? 715 ...to: 716 Name: b 717 Address of: 718 Name: a 719 720 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 721 Name: f 722 ...to: 723 Name: a 724 725 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 726 Name: f 727 ...to: 728 Name: a 729 730 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 731 Name: f 732 ...to: 733 Name: a 734 735 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 736 Name: f 737 ...to: 738 Name: a 739 740 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 741 Name: f 742 ...to: 743 Name: a 744 745 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 746 Name: f 747 ...to: 748 Name: a 749 750 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 751 Name: f 752 ...to: 753 Name: a 754 755 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 756 Name: f 757 ...to: 758 Name: a 759 760 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 761 Name: f 762 ...to: 763 Name: a 764 765 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 766 Name: f 767 ...to: 768 Name: a 769 770 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 771 Name: f 772 ...to: 773 Name: a 774 775 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 776 Name: f 777 ...to: 778 Name: a 779 780 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 781 Name: f 782 ...to: 783 Name: a 784 785 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 786 Name: f 787 ...to: 788 Name: a 789 790 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 791 Name: f 792 ...to: 793 Name: a 794 795 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 796 Name: f 797 ...to: 798 Name: a 799 800 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 801 Name: f 802 ...to: 803 Name: a 804 805 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 806 Name: f 807 ...to: 808 Name: a 809 810 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 811 Name: f 812 ...to: 813 Name: a 814 815 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 816 Name: f 817 ...to: 818 Name: a 819 820 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 821 Name: f 822 ...to: 823 Name: a 824 825 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 826 Name: f 827 ...to: 828 Name: a 829 830 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 831 Name: f 832 ...to: 833 Name: a 834 835 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 836 Name: f 837 ...to: 838 Name: a 839 840 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 841 Name: f 842 ...to: 843 Name: a 844 845 array-container/dimexpr-match-cfa.cfa:86:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 846 Name: f 847 ...to: 848 Name: a 849 850 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 851 851 Name: a InitAlternative: reference to instance of struct arpk with body 852 852 ... with parameters … … 863 863 float 864 864 865 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression865 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 866 866 Name: a InitAlternative: reference to instance of struct arpk with body 867 867 ... with parameters … … 878 878 float 879 879 880 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression880 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 881 881 Name: a InitAlternative: reference to instance of struct arpk with body 882 882 ... with parameters … … 893 893 float 894 894 895 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression895 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 896 896 Name: a InitAlternative: reference to instance of struct arpk with body 897 897 ... with parameters … … 908 908 float 909 909 910 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression910 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 911 911 Name: a InitAlternative: reference to instance of struct arpk with body 912 912 ... with parameters … … 923 923 float 924 924 925 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression925 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 926 926 Name: a InitAlternative: reference to instance of struct arpk with body 927 927 ... with parameters … … 938 938 float 939 939 940 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression940 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 941 941 Name: a InitAlternative: reference to instance of struct arpk with body 942 942 ... with parameters … … 953 953 float 954 954 955 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression955 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 956 956 Name: a InitAlternative: reference to instance of struct arpk with body 957 957 ... with parameters … … 968 968 float 969 969 970 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression970 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 971 971 Name: a InitAlternative: reference to instance of struct arpk with body 972 972 ... with parameters … … 983 983 float 984 984 985 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression985 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 986 986 Name: a InitAlternative: reference to instance of struct arpk with body 987 987 ... with parameters … … 998 998 float 999 999 1000 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1000 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1001 1001 Name: a InitAlternative: reference to instance of struct arpk with body 1002 1002 ... with parameters … … 1006 1006 float 1007 1007 1008 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1008 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1009 1009 Name: a InitAlternative: reference to instance of struct arpk with body 1010 1010 ... with parameters … … 1014 1014 float 1015 1015 1016 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1016 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1017 1017 Name: a InitAlternative: reference to instance of struct arpk with body 1018 1018 ... with parameters … … 1022 1022 float 1023 1023 1024 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1024 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1025 1025 Name: a InitAlternative: reference to instance of struct arpk with body 1026 1026 ... with parameters … … 1030 1030 float 1031 1031 1032 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1032 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1033 1033 Name: a InitAlternative: reference to instance of struct arpk with body 1034 1034 ... with parameters … … 1038 1038 float 1039 1039 1040 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1040 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1041 1041 Name: a InitAlternative: reference to instance of struct arpk with body 1042 1042 ... with parameters … … 1053 1053 float 1054 1054 1055 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1055 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1056 1056 Name: a InitAlternative: reference to instance of struct arpk with body 1057 1057 ... with parameters … … 1068 1068 float 1069 1069 1070 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1070 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1071 1071 Name: a InitAlternative: reference to instance of struct arpk with body 1072 1072 ... with parameters … … 1083 1083 float 1084 1084 1085 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1085 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1086 1086 Name: a InitAlternative: reference to instance of struct arpk with body 1087 1087 ... with parameters … … 1098 1098 float 1099 1099 1100 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1100 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1101 1101 Name: a InitAlternative: reference to instance of struct arpk with body 1102 1102 ... with parameters … … 1113 1113 float 1114 1114 1115 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1115 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1116 1116 Name: a InitAlternative: reference to instance of struct arpk with body 1117 1117 ... with parameters … … 1128 1128 float 1129 1129 1130 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1130 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1131 1131 Name: a InitAlternative: reference to instance of struct arpk with body 1132 1132 ... with parameters … … 1143 1143 float 1144 1144 1145 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1145 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1146 1146 Name: a InitAlternative: reference to instance of struct arpk with body 1147 1147 ... with parameters … … 1158 1158 float 1159 1159 1160 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1160 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1161 1161 Name: a InitAlternative: reference to instance of struct arpk with body 1162 1162 ... with parameters … … 1173 1173 float 1174 1174 1175 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1175 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1176 1176 Name: a InitAlternative: reference to instance of struct arpk with body 1177 1177 ... with parameters … … 1188 1188 float 1189 1189 1190 array-container/dimexpr-match-cfa.cfa:9 3:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression1190 array-container/dimexpr-match-cfa.cfa:94:1 error: Invalid application of existing declaration(s) in expression Untyped Init Expression 1191 1191 Name: a InitAlternative: reference to instance of struct arpk with body 1192 1192 ... with parameters … … 1203 1203 float 1204 1204 1205 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1206 Name: ?=? 1207 ...to: 1208 Address of: 1209 Name: b 1210 Address of: 1211 Name: a 1212 1213 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1214 Name: ?=? 1215 ...to: 1216 Address of: 1217 Name: b 1218 Address of: 1219 Name: a 1220 1221 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1222 Name: ?=? 1223 ...to: 1224 Address of: 1225 Name: b 1226 Address of: 1227 Name: a 1228 1229 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1230 Name: ?=? 1231 ...to: 1232 Address of: 1233 Name: b 1234 Address of: 1235 Name: a 1236 1237 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1238 Name: ?=? 1239 ...to: 1240 Address of: 1241 Name: b 1242 Address of: 1243 Name: a 1244 1245 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1246 Name: ?=? 1247 ...to: 1248 Address of: 1249 Name: b 1250 Address of: 1251 Name: a 1252 1253 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1254 Name: ?=? 1255 ...to: 1256 Address of: 1257 Name: b 1258 Address of: 1259 Name: a 1260 1261 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1262 Name: ?=? 1263 ...to: 1264 Address of: 1265 Name: b 1266 Address of: 1267 Name: a 1268 1269 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1270 Name: ?=? 1271 ...to: 1272 Address of: 1273 Name: b 1274 Address of: 1275 Name: a 1276 1277 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1278 Name: ?=? 1279 ...to: 1280 Address of: 1281 Name: b 1282 Address of: 1283 Name: a 1284 1285 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1286 Name: ?=? 1287 ...to: 1288 Address of: 1289 Name: b 1290 Address of: 1291 Name: a 1292 1293 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1294 Name: ?=? 1295 ...to: 1296 Address of: 1297 Name: b 1298 Address of: 1299 Name: a 1300 1301 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1302 Name: ?=? 1303 ...to: 1304 Address of: 1305 Name: b 1306 Address of: 1307 Name: a 1308 1309 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1310 Name: ?=? 1311 ...to: 1312 Address of: 1313 Name: b 1314 Address of: 1315 Name: a 1316 1317 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1318 Name: ?=? 1319 ...to: 1320 Address of: 1321 Name: b 1322 Address of: 1323 Name: a 1324 1325 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1326 Name: ?=? 1327 ...to: 1328 Address of: 1329 Name: b 1330 Address of: 1331 Name: a 1332 1333 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1334 Name: ?=? 1335 ...to: 1336 Address of: 1337 Name: b 1338 Address of: 1339 Name: a 1340 1341 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1342 Name: ?=? 1343 ...to: 1344 Address of: 1345 Name: b 1346 Address of: 1347 Name: a 1348 1349 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1350 Name: ?=? 1351 ...to: 1352 Address of: 1353 Name: b 1354 Address of: 1355 Name: a 1356 1357 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1358 Name: ?=? 1359 ...to: 1360 Address of: 1361 Name: b 1362 Address of: 1363 Name: a 1364 1365 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1366 Name: ?=? 1367 ...to: 1368 Address of: 1369 Name: b 1370 Address of: 1371 Name: a 1372 1373 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1374 Name: ?=? 1375 ...to: 1376 Address of: 1377 Name: b 1378 Address of: 1379 Name: a 1380 1381 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1382 Name: ?=? 1383 ...to: 1384 Address of: 1385 Name: b 1386 Address of: 1387 Name: a 1388 1389 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1390 Name: ?=? 1391 ...to: 1392 Address of: 1393 Name: b 1394 Address of: 1395 Name: a 1396 1397 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1398 Name: ?=? 1399 ...to: 1400 Address of: 1401 Name: b 1402 Address of: 1403 Name: a 1404 1405 array-container/dimexpr-match-cfa.cfa:10 2:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1406 Name: ?=? 1407 ...to: 1408 Address of: 1409 Name: b 1410 Address of: 1411 Name: a 1412 1413 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1414 Name: zip 1415 ...to: 1416 Name: a 1417 Name: b 1418 1419 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1420 Name: zip 1421 ...to: 1422 Name: a 1423 Name: b 1424 1425 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1426 Name: zip 1427 ...to: 1428 Name: a 1429 Name: b 1430 1431 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1432 Name: zip 1433 ...to: 1434 Name: a 1435 Name: b 1436 1437 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1438 Name: zip 1439 ...to: 1440 Name: a 1441 Name: b 1442 1443 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1444 Name: zip 1445 ...to: 1446 Name: a 1447 Name: b 1448 1449 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1450 Name: zip 1451 ...to: 1452 Name: a 1453 Name: b 1454 1455 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1456 Name: zip 1457 ...to: 1458 Name: a 1459 Name: b 1460 1461 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1462 Name: zip 1463 ...to: 1464 Name: a 1465 Name: b 1466 1467 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1468 Name: zip 1469 ...to: 1470 Name: a 1471 Name: b 1472 1473 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1474 Name: zip 1475 ...to: 1476 Name: a 1477 Name: b 1478 1479 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1480 Name: zip 1481 ...to: 1482 Name: a 1483 Name: b 1484 1485 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1486 Name: zip 1487 ...to: 1488 Name: a 1489 Name: b 1490 1491 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1492 Name: zip 1493 ...to: 1494 Name: a 1495 Name: b 1496 1497 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1498 Name: zip 1499 ...to: 1500 Name: a 1501 Name: b 1502 1503 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1504 Name: zip 1505 ...to: 1506 Name: a 1507 Name: b 1508 1509 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1510 Name: zip 1511 ...to: 1512 Name: a 1513 Name: b 1514 1515 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1516 Name: zip 1517 ...to: 1518 Name: a 1519 Name: b 1520 1521 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1522 Name: zip 1523 ...to: 1524 Name: a 1525 Name: b 1526 1527 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1528 Name: zip 1529 ...to: 1530 Name: a 1531 Name: b 1532 1533 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1534 Name: zip 1535 ...to: 1536 Name: a 1537 Name: b 1538 1539 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1540 Name: zip 1541 ...to: 1542 Name: a 1543 Name: b 1544 1545 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1546 Name: zip 1547 ...to: 1548 Name: a 1549 Name: b 1550 1551 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1552 Name: zip 1553 ...to: 1554 Name: a 1555 Name: b 1556 1557 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1558 Name: zip 1559 ...to: 1560 Name: a 1561 Name: b 1562 1563 array-container/dimexpr-match-cfa.cfa:11 5:1 error: Invalid application of existing declaration(s) in expression Applying untyped:1564 Name: zip 1565 ...to: 1566 Name: a 1567 Name: b 1568 1205 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1206 Name: ?=? 1207 ...to: 1208 Address of: 1209 Name: b 1210 Address of: 1211 Name: a 1212 1213 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1214 Name: ?=? 1215 ...to: 1216 Address of: 1217 Name: b 1218 Address of: 1219 Name: a 1220 1221 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1222 Name: ?=? 1223 ...to: 1224 Address of: 1225 Name: b 1226 Address of: 1227 Name: a 1228 1229 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1230 Name: ?=? 1231 ...to: 1232 Address of: 1233 Name: b 1234 Address of: 1235 Name: a 1236 1237 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1238 Name: ?=? 1239 ...to: 1240 Address of: 1241 Name: b 1242 Address of: 1243 Name: a 1244 1245 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1246 Name: ?=? 1247 ...to: 1248 Address of: 1249 Name: b 1250 Address of: 1251 Name: a 1252 1253 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1254 Name: ?=? 1255 ...to: 1256 Address of: 1257 Name: b 1258 Address of: 1259 Name: a 1260 1261 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1262 Name: ?=? 1263 ...to: 1264 Address of: 1265 Name: b 1266 Address of: 1267 Name: a 1268 1269 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1270 Name: ?=? 1271 ...to: 1272 Address of: 1273 Name: b 1274 Address of: 1275 Name: a 1276 1277 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1278 Name: ?=? 1279 ...to: 1280 Address of: 1281 Name: b 1282 Address of: 1283 Name: a 1284 1285 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1286 Name: ?=? 1287 ...to: 1288 Address of: 1289 Name: b 1290 Address of: 1291 Name: a 1292 1293 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1294 Name: ?=? 1295 ...to: 1296 Address of: 1297 Name: b 1298 Address of: 1299 Name: a 1300 1301 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1302 Name: ?=? 1303 ...to: 1304 Address of: 1305 Name: b 1306 Address of: 1307 Name: a 1308 1309 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1310 Name: ?=? 1311 ...to: 1312 Address of: 1313 Name: b 1314 Address of: 1315 Name: a 1316 1317 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1318 Name: ?=? 1319 ...to: 1320 Address of: 1321 Name: b 1322 Address of: 1323 Name: a 1324 1325 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1326 Name: ?=? 1327 ...to: 1328 Address of: 1329 Name: b 1330 Address of: 1331 Name: a 1332 1333 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1334 Name: ?=? 1335 ...to: 1336 Address of: 1337 Name: b 1338 Address of: 1339 Name: a 1340 1341 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1342 Name: ?=? 1343 ...to: 1344 Address of: 1345 Name: b 1346 Address of: 1347 Name: a 1348 1349 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1350 Name: ?=? 1351 ...to: 1352 Address of: 1353 Name: b 1354 Address of: 1355 Name: a 1356 1357 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1358 Name: ?=? 1359 ...to: 1360 Address of: 1361 Name: b 1362 Address of: 1363 Name: a 1364 1365 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1366 Name: ?=? 1367 ...to: 1368 Address of: 1369 Name: b 1370 Address of: 1371 Name: a 1372 1373 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1374 Name: ?=? 1375 ...to: 1376 Address of: 1377 Name: b 1378 Address of: 1379 Name: a 1380 1381 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1382 Name: ?=? 1383 ...to: 1384 Address of: 1385 Name: b 1386 Address of: 1387 Name: a 1388 1389 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1390 Name: ?=? 1391 ...to: 1392 Address of: 1393 Name: b 1394 Address of: 1395 Name: a 1396 1397 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1398 Name: ?=? 1399 ...to: 1400 Address of: 1401 Name: b 1402 Address of: 1403 Name: a 1404 1405 array-container/dimexpr-match-cfa.cfa:103:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1406 Name: ?=? 1407 ...to: 1408 Address of: 1409 Name: b 1410 Address of: 1411 Name: a 1412 1413 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1414 Name: zip 1415 ...to: 1416 Name: a 1417 Name: b 1418 1419 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1420 Name: zip 1421 ...to: 1422 Name: a 1423 Name: b 1424 1425 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1426 Name: zip 1427 ...to: 1428 Name: a 1429 Name: b 1430 1431 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1432 Name: zip 1433 ...to: 1434 Name: a 1435 Name: b 1436 1437 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1438 Name: zip 1439 ...to: 1440 Name: a 1441 Name: b 1442 1443 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1444 Name: zip 1445 ...to: 1446 Name: a 1447 Name: b 1448 1449 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1450 Name: zip 1451 ...to: 1452 Name: a 1453 Name: b 1454 1455 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1456 Name: zip 1457 ...to: 1458 Name: a 1459 Name: b 1460 1461 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1462 Name: zip 1463 ...to: 1464 Name: a 1465 Name: b 1466 1467 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1468 Name: zip 1469 ...to: 1470 Name: a 1471 Name: b 1472 1473 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1474 Name: zip 1475 ...to: 1476 Name: a 1477 Name: b 1478 1479 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1480 Name: zip 1481 ...to: 1482 Name: a 1483 Name: b 1484 1485 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1486 Name: zip 1487 ...to: 1488 Name: a 1489 Name: b 1490 1491 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1492 Name: zip 1493 ...to: 1494 Name: a 1495 Name: b 1496 1497 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1498 Name: zip 1499 ...to: 1500 Name: a 1501 Name: b 1502 1503 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1504 Name: zip 1505 ...to: 1506 Name: a 1507 Name: b 1508 1509 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1510 Name: zip 1511 ...to: 1512 Name: a 1513 Name: b 1514 1515 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1516 Name: zip 1517 ...to: 1518 Name: a 1519 Name: b 1520 1521 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1522 Name: zip 1523 ...to: 1524 Name: a 1525 Name: b 1526 1527 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1528 Name: zip 1529 ...to: 1530 Name: a 1531 Name: b 1532 1533 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1534 Name: zip 1535 ...to: 1536 Name: a 1537 Name: b 1538 1539 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1540 Name: zip 1541 ...to: 1542 Name: a 1543 Name: b 1544 1545 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1546 Name: zip 1547 ...to: 1548 Name: a 1549 Name: b 1550 1551 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1552 Name: zip 1553 ...to: 1554 Name: a 1555 Name: b 1556 1557 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1558 Name: zip 1559 ...to: 1560 Name: a 1561 Name: b 1562 1563 array-container/dimexpr-match-cfa.cfa:112:1 error: Invalid application of existing declaration(s) in expression Applying untyped: 1564 Name: zip 1565 ...to: 1566 Name: a 1567 Name: b 1568 -
tests/array-container/dimexpr-match-c.cfa
r2e94f3e7 rc68f6e6 16 16 #include "dimexpr-match.hfa" // test framework 17 17 18 #ifdef TRY_WISH_1 // "unification as-if" 19 forall( [N] ) 20 void zip( float (*a)[N], float (*b)[N] ) {} 21 #endif 22 18 23 DECLN_runTests { 19 24 … … 21 26 int mut7 = 7, mut42 = 42; 22 27 23 24 28 #define TRY_COMPAT( LV, RV ) \ 25 29 { \ … … 79 83 80 84 #ifdef TRY_WISH_1 // "unification as-if" 81 forall( [N] )82 void zip( float (*a)[N], float (*b)[N] ) {}83 84 85 #define TRY_COMPAT( LV, RV ) \ 85 86 { \ … … 93 94 94 95 #endif 95 96 97 98 96 } -
tests/array-container/dimexpr-match-cfa.cfa
r2e94f3e7 rc68f6e6 44 44 #endif 45 45 46 forall( [N] ) 47 void zip( array(float, N) & a, array(float, N) & b ) {} 46 48 47 49 DECLN_runTests { … … 50 52 int mut7 = 7, mut42 = 42; 51 53 52 53 54 #define TRY_COMPAT( LV, RV ) \ 54 55 { \ … … 103 104 #undef TRY_COMPAT 104 105 105 106 forall( [N] )107 void zip( array(float, N) & a, array(float, N) & b ) {}108 109 106 #define TRY_COMPAT( LV, RV ) \ 110 107 { \
Note:
See TracChangeset
for help on using the changeset viewer.