1%% 2%% %CopyrightBegin% 3%% 4%% Copyright Ericsson AB 1997-2016. All Rights Reserved. 5%% 6%% Licensed under the Apache License, Version 2.0 (the "License"); 7%% you may not use this file except in compliance with the License. 8%% You may obtain a copy of the License at 9%% 10%% http://www.apache.org/licenses/LICENSE-2.0 11%% 12%% Unless required by applicable law or agreed to in writing, software 13%% distributed under the License is distributed on an "AS IS" BASIS, 14%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15%% See the License for the specific language governing permissions and 16%% limitations under the License. 17%% 18%% %CopyrightEnd% 19%% 20-module(beam_compiler_4). 21-export([beam_compiler_4/0]). 22 23%% From Ulf Wiger. 24 25beam_compiler_4() -> 26 ok. 27 28selected_alarm(_Env, Parameters) -> 29 UnWebParam = x, 30 [Time, Severity, Info, Cause, 31 Type, Sender, Name, FaultId] = bar:foo(), 32 33 %% The following case generates no test heap instructions, 34 %% but the test heap generated before the call to bar:foo(), 35 %% will be moved to here. And the number of words to allocate 36 %% will be ridicously big (> 65535) and will not fit in a 16 big 37 %% word. 38 39 SenderLink = case Name of 40 "pchScheduledConnectionAlarm" -> 41 Sender; 42 "pchVpVcAlarm" -> 43 Sender; 44 "pchSystemMemoryAlarm" -> 45 Sender; 46 "uniProtocolRestartFailureAlarm" -> 47 Sender; 48 "spvcScheduledConnectionAlarm" -> 49 Sender; 50 "eqmSwitchCoreInterfaceAlarm" -> 51 Sender; 52 "atmPhysicalLayerAlarm" -> 53 Sender; 54 "atmBufferCongestionAlarm" -> 55 Sender; 56 "sdhLinkAlarm" -> 57 Sender; 58 "sdhFarEndAlarm" -> 59 Sender; 60 "sdhUpperQosAlarm" -> 61 Sender; 62 "sdhLowerQosAlarm" -> 63 Sender; 64 "eqmSwitchCoreAlarm" -> 65 Sender; 66 "eqmEtAlarm" -> 67 Sender; 68 "eqmHwIdentityFaultAlarm" -> 69 Sender; 70 "eqmOperatorBlockedEquipmentAlarm" -> 71 Sender; 72 "pdh34PathAlarm" -> 73 Sender; 74 "pdh34ObservationAlarm" -> 75 Sender; 76 "pdh34UpperQosAlarm" -> 77 Sender; 78 "pdh34LowerQosAlarm" -> 79 Sender; 80 "nsySynchRefAlarm" -> 81 Sender; 82 "nsySynchRefBlockedAlarm" -> 83 Sender; 84 "nsySynchNodeHoldoverAlarm" -> 85 Sender; 86 "nsySynchNodeNotWorkingAlarm" -> 87 Sender; 88 "eqmAtbAlarm" -> 89 Sender; 90 "eqmCbEtAlarm" -> 91 Sender; 92 "eqmCpAlarm" -> 93 Sender; 94 "eqmCpInterfaceAlarm" -> 95 Sender; 96 "eqmCbClkAlarm" -> 97 Sender; 98 "eqmCbClkInterfaceAlarm" -> 99 Sender; 100 "eqmCbClkVelocityAlarm" -> 101 Sender; 102 "eqmCbClkPhaseDiffAlarm" -> 103 Sender; 104 "eqmHwNotFoundAlarm" -> 105 Sender; 106 "eqmPduAlarm" -> 107 Sender; 108 "eqmFanAlarm" -> 109 Sender; 110 "eqmLocAlarm" -> 111 Sender; 112 "eqmCustomerDefined1Alarm" -> 113 Sender; 114 "eqmCustomerDefined2Alarm" -> 115 Sender; 116 "eqmCustomerDefined3Alarm" -> 117 Sender; 118 "eqmCustomerDefined4Alarm" -> 119 Sender; 120 "eqmOperatorBlockedLinkAlarm" -> 121 Sender; 122 "eqmPowerFilterAlarm" -> 123 Sender; 124 "eqmCbAbrAlarm" -> 125 Sender; 126 "eqmAlarmCutOffAlarm" -> 127 Sender; 128 OtherAlarm -> 129 Sender 130 end, 131 132 %% The testHeap instruction generated here will move up to before 133 %% the case. 134 135 bar:foo("<TABLE> 136 <TR><TD ALIGN=LEFT>Fault id: 137 <TD>" ++ FaultId ++ " 138 <TR><TD ALIGN=LEFT>Name: 139 <TD>" ++ Name ++ " 140 <TR><TD ALIGN=LEFT>Sender: 141 <TD>" ++ SenderLink ++ " 142 <TR><TD ALIGN=LEFT>Class: 143 <TD>" ++ Type ++ " 144 <TR><TD ALIGN=LEFT>Cause: 145 <TD>" ++ Cause ++ " 146 <TR><TD ALIGN=LEFT>Severity: 147 <TD>" ++ Severity ++ " 148 <TR><TD ALIGN=LEFT>Information: 149 <TD>" ++ Info ++ " 150 <TR><TD ALIGN=LEFT>Time: 151 <TD>" ++ Time). 152