本文主要是介绍Keil 5 ARMCC编译错误和警告解释大全(2) 序列号1000-2000,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1001
:
由 using 声明指定的类成员必须在直接基类中可见
1003
:
Sun 模式与 cfront 模式不兼容
1004
:
严格模式与 Sun 模式不兼容
1005
:
只有在编译 C++ 时才允许使用太阳模式
1006
:
模板模板参数不能与其模板参数之一同名
1007
:
默认参数的递归实例化
1009
:
<entity> 不是可以定义的实体
1010
:
析构函数名称必须是限定的
1011
:
朋友类名不能用“typename”引入
1012
:
using-declaration 不能命名构造函数或析构函数
1013
:
限定的好友模板声明必须引用先前声明的特定模板
1014
:
类模板声明中的说明符无效
1015
:
参数与形式参数不兼容
1016
:
此位置不允许使用 ARM 函数限定符的前缀形式
1017
:
不允许重复的 ARM 函数限定符
1018
:
此声明/定义中不允许使用 ARM 函数限定符
ARM 函数限定符的示例包括 __svc
、__pure
和 __irq
。
请参阅《armcc 用户指南》中的以下内容:
关键字和运算符.
1019
:
函数限定符 <entity>不允许用于非静态成员函数
1020
:
__irq 函数不得带任何参数
1021
:
__irq 函数不得返回任何结果
1022
:
不能有指针,也不能引用<实体>功能
1023
:
__global_reg 此声明不允许
1024
:
无效的全局寄存器号;允许 1 到 8
个
__global_reg
中使用了无效的寄存器。
例:
__global_reg(786) int x;
1025
:
__svc参数<实体>不在 ARM SVC 指令允许的范围(0 到 )内
对于 ARM 代码,SVC 编号限制为 0 到
,对于 Thumb 代码,0xffffff
SVC
编号限制为 0 到
。0xFF
对于标准半托管 SVC,0x123456
用于 ARM 代码,
用于 Thumb 代码。0xAB
1026
:
不允许获取全局寄存器变量的地址
1027
:
__svc_indirect函数必须有参数
1028
:
全局注册声明与<实体>冲突
1029
:
__packed 忽略非指针参数
1030
:
<entity> <type>以前声明时未__packed
1031
:
必须__packed包装<类型>中<类型>的定义
编译器对包含在已打包父结构中的非打包子结构进行错误处理。这包括子结构是数组的情况。
例如:
typedef struct ChildStruct {int a;} ChildStruct;
typedef __packed struct ParentStruct {ChildStruct child[1];} ParentStruct;
结果显示以下消息:
Error: #1031: Definition of "ChildStruct" in packed "ParentStruct" must be __packed
请参阅《armcc 用户指南》中的以下内容:
__包装好的.
1032
:
必须__packed打包<类型>中嵌套的匿名<实体>
的定义
1033
:
<实体>与函数定义不兼容
1034
:
__irq 函数不得是函数调用的目标
1035
:
单精度操作数隐式转换为双精度
1037
:
__global_reg 在此声明中无效
1038
:
指定的对齐无效;只允许 2 的整数幂
1039
:
与<实体>冲突的对齐声明
1040
:
不允许未对齐
1041
:
自动对象的对齐方式不得大于 8
例如:
int main(void){__align(16) int foo = 10;
}
局部变量 foo
不允许__align
,因此给出了错误。
请参阅《armcc 用户指南》中的以下内容:
__對齊.
1042
:
<entity> 编译位置无关时无法动态初始化
1043
:
<entity> 不能是 const,因为它包含可变成员
例如:
struct foo { int a; mutable int b; };
extern const struct foo bar;
当编译器处于 ROPI 或 RWPI 模式时,它不允许 const
对象包含可变
成员。
此限制的原因是,在这些模式下,编译器处理只读数据的方式与读写数据不同。因此,它必须知道对象是在 RO 还是 RW 数据部分中。在以下示例中,此限制意味着 bar
不能包含任何可变
成员,因此位于 RO 数据部分中:
struct foo;
extern const struct foo bar;
const struct foo *get_foo() { return &bar; }
请参阅《armcc 用户指南》中的以下内容:
--apcs=限定符...限定 符.
1044
:
选项“dep_name”只能在编译C++时使用
1045
:
从类 <type> 开始的“运算符>”函数序列循环
1046
:
<entity>没有成员类 <entity>
1047
:
全局范围没有名为 <entity> 的类
1048
:
模板默认参数的递归实例化
1049
:
访问声明和使用声明不能出现在联合中
1050
:
<entity> 不是类成员
1051
:
不允许非标准杆件常量声明
1052
:
选项“ignore_std”只能在编译C++时使用
1053
:
选项“parse_templates”只能在编译C++时使用
1054
:
选项“dep_name”不能与“no_parse_templates”一起使用
1055
:
指定的语言模式不兼容
1056
:
嵌套类的无效重新声明
1057
:
不允许包含未知大小数组的类型
1058
:
不能在内联函数中定义具有静态存储持续时间的变量
1059
:
具有内部链接的实体不能在具有外部链接的内联函数中引用
1060
:
参数类型 <type> 与此类型泛型函数宏不匹配
1062
:
好友声明不能在上一个声明中添加默认参数
1063
:
<实体>不能在此范围内声明
1064
:
保留标识符<实体>只能在函数内部使用
1065
:
此通用字符不能以标识符开头
1066
:
应为字符串文本
1067
:
无法识别的 STDC 编译指示
1068
:
预期的“开”、“关”或“默认”
1069
:
STDC 编译指示只能出现在全局作用域中的声明之间,或块作用域中的任何语句或声明之前
1070
:
不正确地使用va_copy
1071
:
<entity> 只能与浮点类型一起使用
1072
:
不允许使用复杂类型
1073
:
无效的指示符类型
1074
:
浮点值无法准确表示
1075
:
复数浮点运算结果超出范围
1076
:
实数和虚数之间的转换结果为零
1077
:
不能为灵活数组成员指定初始值设定项
1078
:
imaginary *= imaginary 将左操作数设置为零
1079
:
standard 要求通过后续声明(假定为“int”)为<entity>指定类型
1080
:
内联<实体需要定义>
1081
:
从整数到更小指针的转换
1082
:
浮点类型必须包含在_Complex或_Imaginary类型的类型说明符中
1083
:
内联汇编程序语法错误
在 ARM 编译器 4.1p2 及更早版本中,当内联汇编代码包含内联汇编程序不支持的指令(例如 WFI
指令)时,可能会生成此错误。在 4.1p3 及更高版本(包括所有 ARM 编译器 5 版本)中,会引发以下错误:
1084: This instruction not permitted in inline assembler
1084
:
此指令不允许在内联汇编程序中使用
1085
:
缺少操作数
1086
:
操作数类型错误
1087
:
操作数应该是恒定的
1088
:
操作数数错误
1089
:
无效的 PSR 操作数
1090
:
预期的 PSR 操作数
1091
:
指定的班次无效
1092
:
应为 acc0
1093
:
必须是可修改的左值
1094
:
预期为寄存器表达式
1095
:
需要标签或函数名称
1096
:
指令不能是有条件的
1097
:
预期为 [ 或 ]
1098
:
预计轮班操作
1099
:
出乎意料 ]
1100
:
不允许注册指定的班次
1101
:
不允许预先索引寻址
1102
:
不允许后索引寻址
1103
:
寻址模式下不允许写回
1104
:
预期 {
1105
:
预期 }
1106
:
寄存器列表中的寄存器过多
1107
:
只有^在这里有效
1108
:
无法在寄存器列表中混合虚拟寄存器和 C/C++ 表达式
1109
:
在寄存器范围内只能指定虚拟寄存器
1110
:
内联汇编程序不支持用户模式寄存器选择/CPSR 更新。使用嵌入式汇编程序或离线汇编程序
1111
:
应为协处理器名称
1112
:
需要协处理器寄存器名称
如果发生以下任一情况,则内联汇编程序会给出这些错误:
-
MCR
或MRC
指令中意外遗漏了协处理器编号 -
给出了无效的协处理器编号或协处理器寄存器编号。
这是正确使用的示例:
void foo()
{int reg0;__asm{MRC p15, 0, reg0, c1, c0, 0}
}
1113
:
生成 Thumb 代码时不允许使用内联汇编程序
1114
:
目标体系结构/处理器不支持此功能
使用 armcc --cpu 4T
编译时的示例:
int main(void) {int a,b,c;__asm {QADD a,b,c}return(a);
}
导致错误消息,因为饱和添加指令仅在 ARMv5TE 及更高版本中受支持。
1115
:
无法分配给常量操作数
1116
:
寄存器列表不能为空
1117
:
不允许使用不合格的虚拟函数
1118
:
预期为换行符
1119
:
函数中不允许引用静态变量__asm
1120
:
__asm函数中不允许引用静态函数
1121
:
函数中不允许指向数据成员的指针__asm
1123
:
基类 <type> 是 <type 的虚拟基类>
1124
:
基类 <type> 不是 <type 的虚拟基类>
1125
:
<entity> 没有成员函数 <entity>
1126
:
本声明中不允许使用“__asm”
1127
:
不允许__asm构造函数使用成员初始值设定项列表
1128
:
不允许对 __asm 构造函数使用 try 块
1129
:
操作数的顺序与以前的编译器版本不兼容
1130
:
__align typedef 中不允许
1131
:
不可移植指令(LDM 在注册列表中具有写回和基数,基数的最终值不可预测)
1132
:
不可移植指令(STM有写回和基数,不是在注册列表中的第一位,基数的存储值不可预测)
1133
:
虚拟基寄存器不允许使用表达式操作数
1134
:
字面意思被视为“长长”
常量太大,无法用有符号的
long 表示,因此被视为(有符号
的)long long
。
例如:
int foo(unsigned int bar)
{ return (bar == 2147483648);
}
给出警告,因为 2147483648 大于有符号长整型
允许的最大值。若要消除警告,如果应将常量视为(64 位)long
long 类型而不是带
符号的 long,请显式添加 ll
或 LL
后缀,或者,如果应将其视为无符号
整数,请添加 U
后缀。
例如:
int foo(unsigned int bar)
{ return (bar == 2147483648U);
}
请参阅《armcc 用户指南》中的以下内容:
长 长.
1135
:
字面意思被视为“无符号长长”
常量太大,无法用有符号的
long long 表示,因此被赋予了类型无符号的 long long
。另请参阅错误编号 1134。
1137
:
应为逗号
1138
:
此表达式后出现意外的逗号
1139
:
MRRC 操作操作码必须位于 0-15 范围内
1140
:
MCRR 操作操作码必须在 0-15 范围内
1141
:
CDP 操作操作码必须位于 0-15 范围内
1142
:
MRC 操作操作码必须位于 0-7 范围内
1143
:
MCR 操作操作码必须在 0-7 范围内
1144
:
opcode_2 必须在 0-7 范围内
1145
:
LDC/STC 额外操作码必须在 0-255 范围内
1146
:
LDC/STC 偏移量必须在 -1020 至 +1020 范围内,并且字对齐
1147
:
常量操作数超出范围
1148
:
不允许使用 --fpu=none 的浮点运算符
1149
:
函数定义中不允许使用 --fpu=none 的浮点返回类型
1150
:
函数定义中不允许使用 --fpu=none 输入浮点参数
1151
:
不允许使用 --fpu=none 定义带有初始值设定项的浮点变量
1152
:
多态基类也需要导出
1153
:
无法在此寄存器列表中分配物理寄存器
1154
:
此处只能指定偶数的物理寄存器
1155
:
此处只能指定对物理寄存器的分配
1156
:
此处只能指定物理寄存器的分配
1157
:
只能在损坏的寄存器列表中指定物理寄存器
1158
:
PSR 操作数在此处无效
1159
:
应为明确的标签或函数名称
1160
:
对临时析构函数的调用将覆盖此指令更新的条件标志
1161
:
无法直接修改堆栈指针 SP (r13)
1162
:
无法直接修改链路寄存器 LR (r14)
1163
:
无法直接修改程序计数器 PC (r15)
1164
:
偏移量必须与字对齐
1165
:
不能在匿名联合中声明类型
1166
:
返回指向局部变量的指针
1167
:
将指针返回到本地临时
1168
:
选项“导出”只能在编译 C++ 时使用
1169
:“
导出”选项不能与“no_dep_name”一起使用
1170
:“
导出”选项不能与“implicit_include”一起使用
1171
:
<实体>的声明与另一个翻译单元的声明不相容
1172
:
另一个声明是<实体>
1175
:
字段声明不能具有涉及可变长度数组的类型
1176
:
<实体>的声明在<实体的编制过程中具有不同的含义>
1177
:
预期的“模板”
1178
:“
导出”不能用于显式实例化
1179
:“
出口”不能用于此声明
1180
:
不能将未命名命名空间的成员声明为“导出”
1181
:
模板在定义后不能声明为“导出”
1182
:
声明不能有标签
1183
:
禁用对导出模板的支持
1185
:
<entity> 已在编译 <entity 期间定义>
1186
:
<实体>已在另一个翻译单元中定义
1187
:
非静态局部变量不能在__based规范中使用
1188
:
编译多于一个翻译单元时,未必指定列出 makefile 依赖项的选项
1190
:
编译多于一个翻译单元时,不得指定生成预处理输出的选项
1191
:
不能在具有用户声明构造函数的类中声明与其类同名的字段
1192
:“
implicit_include”不能在编译多于一个翻译单元时使用
1193
:
导出的模板文件<实体>已损坏
1194
:
<entity> 无法实例化 -- 它已显式专用于包含导出定义的翻译单元
1196
:
对象具有与成员<实体不兼容的类型限定符>
1197
:
没有 <Entity> 实例与参数列表和对象匹配(该对象具有阻止匹配的类型限定符)
1198
:
属性指定与 <type 不兼容的模式>
1199
:
没有指定宽度的类型
1200
:
属性指定的对齐值无效
1201
:
<type> 的属性无效
1202
:
<实体的属性无效>
1204
:
属性<实体>不带参数
1206
:
需要属性名称
1207
:
未知属性<attribute>
1208
:
此处可能不会显示属性
1209
:
属性 <entity> 的参数无效
1211
:
在“goto *expr”中,expr 必须具有“void *”类型
1212
:“
goto *expr”不标准
1213
:
获取标签地址不规范
1214
:多次指定文件名:
1215
:
#warning 指令:<实体>
1217
:“
transparent_union”属性只适用于联合,<type>不是联合
1218
:
“transparent_union”属性在不完整的类型上被忽略
1219
:
<type> 不能透明,因为 <entity> 的大小与第一个字段的大小不同
1220
:
<type> 不能是透明的,因为它有一个类型为 <type> 的字段,该字段的大小与第一个字段的大小不同
1222
:
属性<属性>不适用于局部变量
1224
:
函数定义中不允许使用属性
1226
:
大小写范围中的第二个常量必须大于第一个常量
1227
:
函数定义中不允许使用 ASM 名称
1228
:
在 typedef 中忽略 ASM 名称
1229
:
未知注册名称“<entity>”
1230
:
修饰符字母“<entity>在 ASM 操作数中被忽略
1231
:
未知的 ASM 约束修饰符“<entity>”
1232
:
未知的 ASM 约束字母“<entity>”
1233
:
ASM 操作数没有约束字母
1234
:
ASM 输出操作数必须具有“=”或“+”修饰符之一
1235
:
ASM 输入操作数可能没有“=”或“+”修饰符
1237
:
ASM 语句中的冒号过多
1238
:
注册“<entity>”多次使用
1239
:
寄存器“<entity>”既被使用又被破坏
1240
:
注册“<实体>”不止一次被破坏
1241
:
注册“<entity>”具有固定用途,不得在ASM声明中使用
1242
:
寄存器“<entity>”有固定用途,不得在ASM声明中删
减
1243
:
必须完全省略空的 clobbers 列表
1244
:
预期有 ASM 操作数
1245
:
期待寄存器敲击
1246
:“
format”属性需要省略号参数
1247
:
第一个替换参数不是第一个变量参数
1248
:
格式参数索引大于参数数
1249
:
format 参数没有字符串类型
1250
:
用于消除句法歧义的“template”关键字只能在模板中使用
1253
:
属性不适用于非函数类型 <type>
1254
:
指向 void 或函数类型的指针上的算术运算
1255
:
存储类必须是自动或寄存器
1256
:
<type> 在通过省略号参数传递时,将提升为 <type>;请改用后一种类型
1257
:
<entity> 不是基类成员
1258
:
__super不能出现在 \“::\”
之后
1259
:
__super 只能在类范围内使用
1260
:
__super 后面必须跟 \“::\”
1262
:
残缺的名字太长了
1263
:
偏移量必须与半字对齐
1264
:
偏移量必须双字对齐
1265
:
不允许使用 --fpu=none 与浮点类型相互转换
1266
:
操作数应为常量表达式
1267
:
隐式物理寄存器<实体>应定义为变量
1268
:
声明别名为未定义的实体 <entity>
1269
:
声明与其别名 <entity> 不匹配
1270
:
声明为别名的实体不能有定义
1271
:
可变长度数组字段类型将被视为零长度数组字段类型
1272
:
忽略左值上的非标准强制转换
1273
:
无法识别的旗帜名称
1274
:
void 返回类型无法限定
1275
:
此处忽略自动说明符(在标准 C/C++ 中无效)
1276
:
忽略没有“packed”属性的对齐减少
1277
:
对应于<实体>的成员模板在另一个翻译单元中被声明为不同类型的模板
1278
:
忽略多余的初始值设定项
1279
:
va_start只能出现在带有省略号参数的函数中
1280
:“
short_enums”选项只在 GNU C 和 GNU C++ 模式下有效
1281
:
导出信息文件 %sq1 在行号 %s2 处无效
1282
:
变量<实体>不能在寄存器范围内使用
1283
:
这里需要一个物理寄存器名称
1284
:
此处不能指定寄存器范围
1285
:
未定义隐式物理寄存器<实体>
1286
:
LDRD/STRD 指令将扩展
当 LDRD 和 STRD
指令用于内联汇编程序时,编译器会将它们扩展为两个 LDR
或 STR
指令,然后再通过编译器优化阶段。
优化阶段通常将两个LDR或STR
指令组合回单个LDRD或STRD指令,但在某些情况下可能不使用 LDRD
或STRD
。
1287
:
LDM/STM指令可以扩展
编译器在经过编译器优化阶段之前,将内联汇编代码中的 LDM 和 STM
指令扩展为多个 LDR
或 STR
指令。
优化阶段通常会将 LDR 或 STR
指令改回 LDM 或 STM 指令,但在某些情况下可能不使用单个 LDM
或 STM
指令。
1288
:
由于名称冲突,未定义隐式 ARM 寄存器<实体>
1289
:
语句表达式只允许在块作用域中使用
1291
:
在非寄存器自动变量上忽略 ASM 名称
1293
:
在条件中分配
在需要布尔值的上下文中,例如,在 if
、while
或 for
语句的控制表达式中,或条件表达式的第一个操作数中,该表达式包含以下值之一:
-
按位非运算符 (
~
)。很可能是逻辑非运算符 (!
) 的意图。 -
赋值运算符 (
=
)。这可能是键入错误的相等运算符 (==
)。例如:int main(void) { int a,b; if (a=b); }
无论哪种情况,如果有意使用运算符,都可以通过添加与零的显式比较来禁止显示警告。
例如,将示例中的 if
语句更改为:
if ((a=b)!=0);
也可以使用 --diag_suppress 1293
选项来抑制此警告。
另请参阅消息编号 187,该消息在与常量进行比较时适用。
1294
:
旧式函数<实体>
编译器接受旧式和新式函数声明。以下示例显示了它们之间的区别:
// new style
int add2(int a, int b)
{ return a+b;
}
// old style
int oldadd2(a,b)
int a;
int b;
{ return a+b;
}
在 C 模式下编译旧式函数时,编译器会报告:
Warning: #1294-D: Old-style function oldadd2
1295
:
弃用声明 <entity> - 给出 arg 类型
当在 ANSI C 模式下遇到没有参数类型的声明时,通常会发出此警告。在 ANSI C 中,不推荐使用此类声明。但是,在移植旧代码时,使用 --diag_suppress 1295
选项禁止显示此警告有时很有用。
在 C++ 中:
void foo();
方法:
void foo(void);
并且不会生成任何警告。
1296
:
使用的扩展常量初始值设定项
用作常量初始值设定项的表达式可能不可移植。
这警告说,存在一个不遵循 ANSI C 严格规则的常量初始值设定项。
解决方案是重写代码以符合 ANSI。
以下示例显示了生成此警告的代码,并建议了使用 ANSI C 兼容代码实现相同目标的潜在替代方法。
使用 --diag_suppress 1296
进行编译会禁止显示警告。
示例 1:
当 x
和 y
是静态对象(即全局变量或静态局部变量)时,此代码会生成警告 1296,因为 C 标准不允许在常量表达式中强制转换指向整数的指针:
int x;
int y = (int) &x;
ANSI C 要求静态对象的初始值设定项是常量表达式。(int) &x
不被视为常量表达式。
请注意,地址不是算术类型,因此 ANSI C 不允许使用此示例 C 代码。 不幸的是,这是其他编译器中常见的 ANSI 不合规,并且可能导致在将旧代码移植到 ARM 时出现问题。这就是 ARM 编译器发出警告而不是错误的原因。
符合 ANSI C 的替代方法是重写代码,使 y
成为指向 x
的指针:
int x;
int* y = &x;
示例 2:
使用 --c90
开关编译的此代码会生成警告 1296:
const int foo_table[] = { (int)"foo", 0, 1, 2};
符合 ANSI C 的替代方法是重写代码,如下所示:
const char* foo_table[] = { "foo", 0, (char*)1, (char*)2};
示例 3:
此代码生成警告 1296,因为 C 标准不允许在常量表达式中强制转换指向长整数的指针:
char value;
long array[] = {(long)&value,(long)"string"
};
符合 ANSI C 的替代方法是重写代码以使用指针:
char value;
char *array[] = {(char*)&value,(char*)"string"
};
此解决方案之所以有效,是因为 C 语言中允许指针到指针的强制转换。
1297
:
头文件未防止多重包含
当 #included 未受保护的头文件时,会发出此警告。
未受保护的头文件是未包装在声明中的头文件,例如:
#ifdef foo_h
#define foo_h
/* body of include file */
#endif
默认情况下,此警告处于关闭状态。可以通过以下方式启用它:
--diag_warning 1297
1298
:
头文件由“<entity>”保护,但不 #define 它
例:
#ifndef MYHEADER_H
//#define MYHEADER_H
#endif
若要更正代码,请删除注释斜杠 (//
)。默认情况下,此警告处于关闭状态。可以通过以下方式启用它:
--diag_warning 1298
1299
:
成员和基类将按声明顺序初始化,而不是按成员初始化列表顺序初始化
1300
:
<entity> 继承隐式虚拟
当派生类的非虚拟成员函数隐藏父类的虚拟成员时,会发出此警告。例如:
struct Base { virtual void f(); };
struct Derived : Base { void f(); };
结果显示以下消息:
Warning: #1300-D: f inherits implicit virtual
struct Derived : Base { void f(); };^
在派生类中添加 virtual
关键字可防止出现警告。对于C++,指定 --diag_suppress 1300
选项会禁止隐式虚拟警告。
1301
:
在结构中插入填充<实体>
为了使结构的成员正确对齐,在成员之间插入了一些填充。默认情况下,此警告处于关闭状态,可以使用 --diag_warning 1301
或 --remarks
启用。
例如:
struct X {char x;int y;
}
结果显示以下消息:
Warning: #1301-D: padding inserted in struct X
编译器还可以警告在结构末尾或结构
之间添加填充,请参阅消息编号 2530。
1302
:
类型太大,无法在寄存器中返回 - __value_in_regs忽略
1303
:
使用 --force_new_nothrow:添加了 “throw()”
1304
:
操作员新缺少异常规范
1305
:
使用 --force_new_nothrow:添加了“(::std::nothrow)”
1307
:
不允许使用 --fpu=none 的浮点参数
1308
:
必须__packed__packed类<类型>的基类<类型>
1309
:
无法识别的 UPC 编译指示
1310
:
共享块大小与先前指定的块大小不匹配
1311
:
括号内的表达式被假定为块大小规范,而不是数组维度
1312
:
共享阵列的块大小必须大于零
1313
:
不允许多个块大小
1314
:
严格或宽松需要共享
1315
:
在此上下文中不允许使用线程
1316
:
指定的块大小超出了 <entity 的最大值>
1317
:
不允许函数返回共享
1319
:
当线程数非常数时,共享类型数组的一个维度必须是 THREADS 的倍
数
1320
:
不允许在结构或联合中使用共享类型
1321
:
参数可能没有共享类型
1322
:
动态 THREADS 维度需要确定的块大小
1323
:
共享变量必须是静态的或外部
的
1324
:
upc_blocksizeof的参数是指向共享类型(不是共享类型本身)的指针
1325
:
嵌套upc_forall中忽略的亲和力表达式
1326
:
不允许分支到upc_forall环路或分支出
1327
:
亲和表达式必须具有共享类型或指向共享类型
1328
:
关联具有共享类型(不是指向共享的指针)
1329
:
共享的空洞*类型只能进行比较以达到相等性
1330
:
UPC 模式与 C++ 和 K&R 模式不兼容
1331
:
忽略输入行中的空(零)字符
1332
:
字符串或字符常量中的空(零)字符
1333
:
标头名称中的空(零)字符
1334
:
for-initializer 中的声明隐藏了周围作用域中的声明
1335
:
隐藏的声明是<实体>
1336
:
<entity>fd 的原型声明在重新声明后被忽略
1338
:
<entity>pd 必须具有外部 C 链接
1339
:
变量声明隐藏 for-initializer 中的声明
1340
:
typedef <entity> 不能用于详细说明的类型说明符
1341
:
忽略零常量的调用
1342
:
参数<实体>不能在函数 try 块的 catch 子句中重新声明
1343
:
必须在包含模板的命名空间中声明<实体>的初始显式专用化
1344
:
\“cc\” clobber 被忽略
1345
:“
template”后面必须跟一个标识符
1346
:
在此上下文中不允许使用 MYTHREAD
1347
:
布局限定符无法限定指向共享的指针
1348
:
布局限定符无法限定不完整的数组
1349
:
声明<实体>隐藏处理程序参数
1350
:
忽略非标准强制转换为数组类型
1351
:
此编译指示不能在_Pragma运算符中使用(必须使用 #pragma 指令)
1352
:
字段使用基类的尾部填充
1353
:
GNU C++ 编译器可能使用位字段填充
1355
:
抽象类 <type> 具有非虚拟析构函数,在指向此类的指针上调用 delete 是未定义的行为
1356
:
非静态成员声明中不允许使用 ASM 名称
1357
:
使用 <entity> 的地址静态初始化 <entity>可能会导致链路失败 -ropi
请参阅错误编号 1359。
1358
:
对于 ROPI,不能降低使用 <entity> 地址的外部常量 <entity> 的静态初始化
1359
:
使用<entity>地址对<entity>进行静态初始化可能会导致链路故障 -rwpi
警告 1357 和 1359 突出显示了与位置无关 (PI) 的代码构造,这些构造可能会导致后续链接步骤失败。
使用 --apcs /ropi
编译时,以下代码:
char *str = "test"; /* global pointer */
结果显示以下消息:
Warning: #1357-D: static initialisation of variable "str" using address of string literal may cause link failure --ropi
因为全局指针 str
必须初始化为 .constdata
部分中 char 字符串测试
的地址,但绝对地址不能在 PI 系统中使用。
使用 --apcs /rwpi
编译时,以下代码:
int bar;
int *foo = &bar; /* global pointer */
结果显示以下消息:
Warning: #1359-D: static initialisation of variable "foo" using address of bar may cause link failure --rwpi
因为全局指针 foo
必须初始化为 .data
部分中 bar
的地址,但绝对地址不能在 PI SYSTEM 中使用。
以下解决方法是可能的:
-
更改代码以避免使用全局指针。例如,您可以改用全局数组或本地指针。
-
在运行时进行初始化,例如:
int bar; int *foo;
然后在设置
foo = &bar;
的函数中编写代码。这是因为在生成代码而不是静态初始化数据时,编译器可以绕过 ROPI/RWPI 约束。
另请参阅链接器错误 L6248E。
1360
:
对于RWPI,不能降低使用<entity>地址的外部常量<entity>的静态初始化
例如,当使用 --apcs /rwpi
编译时:
extern int y;
int* const x = &y;
int* foo()
{return(x);
}
生成警告,因为 Y
前面加上 extern
会阻止编译器在变量 x
和 y
之间定义直接地址偏移。
1361
:
<entity> 被宣布为“已弃用”
1362
:
忽略无法识别的格式函数类型<实体>
1363
:
基类 <entity> 使用基类 <entity> 的尾部填充
1364
:“
init_priority\”属性只能用于定义类类型的静态数据成员和命名空间范围变量
1365
:
请求的初始化优先级保留供内部使用
1366
:
这个匿名的联合/结构字段被<实体隐藏>
1367
:
无效的错误号
1368
:
无效的错误标记
1369
:
应为错误号或错误标记
1370
:
类的大小受尾部填充的影响
1371
:
标签只能在函数定义中引用
1372
:
不允许将控制权转移到语句表达式中
1374
:
此语句不允许在语句表达式中
1375
:
语句表达式中不允许使用非 POD 类定义
1376
:
语句表达式中不允许存在可破坏的实体
1377
:
语句表达式中不允许使用动态初始化的局部静态变量
1378
:
语句表达式中不允许有可变长度的数组
1379
:
默认参数中不允许使用语句表达式
1381
:
结果操作数的类型比实际结果窄
1382
:
指向函数的指针和指向数据的指针之间的非标准转换
1383
:
接口类型不能有虚拟基类
1384
:
接口类型不能指定“私有”或“受保护”
1385
:
接口类型只能派生自其他接口类型
1386
:
<type> 是接口类型
1387
:
接口类型不能有 typedef 成员
1388
:
接口类型不能有用户声明的构造函数或析构函数
1389
:
接口类型不能有用户声明的成员算子
1390
:
不能在函数中声明接口类型
1392
:
接口类型不能有数据成员
1393
:
接口类型不能包含友元声明
1395
:
接口类型不能是嵌套类类型
1396
:
接口类型不能有成员模板
1397
:
接口类型不能有静态成员函数
1398
:
此编译指示不能在__pragma运算符中使用(必须使用 #pragma 指令)
1399
:
限定符必须是 <type 的基类>
1400
:
声明必须对应于指定基类中的纯虚拟成员函数
1401
:
由于<类型的大小或复杂性,内部计算中出现整数溢出>
1402
:
内部计算中的整数溢出
1403
:
__w64 只能在 int、long 和指针类型上指定
1404
:
在 int、long 或指针类型宽度为 64 位的环境中编译时,可能会缩小转换
范围
1405
:
编译指示包的当前值为<实体>
1406
:
忽略 pragma pack(show) 的参数
1409
:
忽略较早的 __declspec(align(...))
1410
:
应为 <entity> 属性参数的参数值
1411
:
<entity> 属性参数的参数值无效
1412
:
应为 <entity> 属性参数的布尔值
1413
:
位置参数不能跟在属性中的命名参数后面
1414
:
属性<entity>没有名为 <entity> 的参数
1415
:
预期为 <entity> 属性的参数列表
1416
:
应为“,”或“]”
1417
:
属性参数 <entity> 已被赋予值
1418
:
无法将值分配给 <entity> 属性
1419
:
抛出表达式可能没有指向不完整类型的指针
1420
:
应用于不完整类型的对齐运算符
1421
:
<实体>只能用作独立属性
此处不能使用 1422
:
<entity> 属性
1424
:
此处不允许使用属性
1425
:
<entity> 属性参数的参数值无效
1426
:
属性参数过多
1427
:
不允许从不可访问的基类<类型>转换
1428
:“
导出”选项需要不同的模板签名
1429
:
具有不同字符类型的字符串文字不能连接
1430
:
GNU 布局错误未被模拟,因为它将虚拟基础 <entity> 置于 <entity> 对象边界之外
1431
:
虚拟基础<实体>放置在<实体>对象边界之外
1432
:
命名空间成员声明中的非标准限定名称
1433
:
忽略对齐减少
1434
:
忽略 const 限定符
1436
:
__breakpoint 参数必须是整数编译时常量
1437
:
__breakpoint 编译 ARM 时,参数必须在 0-65535 之间
1438
:
__breakpoint 编译 Thumb 时,参数必须在 0-255 之间
1439
:
目标体系结构/处理器不支持 BKPT 指令
1440
:
超大位域布局将更改 -- 请考虑以“<entity>:0;”开头
1441
:
左值上的非标准铸造
C 规范指出“赋值运算符应具有可修改的左左值”和“强制转换不产生左值”。
1442
:
如果要将多态基类用于导出派生,则需要导出它们
1443
:
需要导出通过虚拟派生继承的多态基类
1444
:
通过虚派生继承的多态基类需要导出所有虚函数
1445
:
无效的 GNU asm 限定符
1446
:
通过省略号传递的非 POD 类类型
1447
:
非 POD 类类型无法被va_arg提取
ISO C++ 标准定义可变参数函数的非必需参数必须是普通旧数据 (POD) 类型,例如 int
或 char
,但不能是结构或类。
为了避免错误或警告,可以改为提供类
或结构
的地址。
1448
:
在定点文字中,“u”或“U”后缀必须出现在“l”或“L”后缀之前
1449
:
选项“fixed_point”只能在编译 C 时使用
1450
:
整数操作数可能导致定点溢出
1451
:
定点常数超出范围
1452
:
定点值无法准确表示
1453
:
常量对于长长来说太大;给定无符号长长类型(非标准)
1454
:
布局限定符无法限定指向共享无效的指针
1455
:
多维数组类型的重复 THREADS
1456
:
强 using 指令可能只出现在命名空间作用域中
1457
:
<entity>声明一个非模板函数 -- 添加<>以引用模板实例
1458
:
操作可能导致定点溢出
1459
:
表达式必须具有积分类型、枚举类型或定点类型
1460
:
表达式必须具有整数或定点类型
1461
:
用“noreturn”声明的函数返回
1462
:
ASM 名称被忽略,因为它与以前的声明冲突
1463
:
类成员 typedef 不能重新声明
1464
:
获取临时地址
1465
:
属性在不是定义的类声明中被忽略
1466
:
隐式转换为浮点类型的定点值
1467
:
定点类型没有分类
1468
:
模板参数可能没有定点类型
1469
:
不允许使用十六进制浮点常量
1470
:
选项“named_address_spaces”只能在编译 C 时使用
1471
:
浮点值不适合所需的定点类型
1472
:
值不能完全转换为定点值
1473
:
定点转换导致符号变化
1474
:
整数值不适合所需的定点类型
1475
:
定点运算结果超出范围
1476
:
多个命名地址空间
1477
:
具有自动存储持续时间的变量不能存储在命名地址空间中
1478
:
不能使用命名地址空间限定类型
1479
:
函数类型不能用命名地址空间限定
1480
:
字段类型不能用命名地址空间限定
1481
:
定点值不适合所需的浮点类型
1482
:
定点值不适合所需的整数类型
1483
:
值不适合所需的定点类型
1484
:
选项“named_registers”只能在编译 C 时使用
1485
:
此处不允许使用命名寄存器存储类
1486
:
<实体>使用不兼容的命名寄存器存储类重新声明
1487
:
不能为别名变量指定 named-register 存储类
1488
:
named-register 存储说明符已在使用中
1489
:
选项“embedded_c”不能与控制单个嵌入式 C 功能的选项组合使用
1490
:
无效EDG_BASE目录:
1492
: <entity>行的预定义宏条目无效: <reason>
1493
:
无效的宏模式名称 <entity>
1494
:
预定义宏<实体>的不兼容重定义
1495
:
重新声明<实体>缺少命名寄存器存储类
1496
:
命名寄存器对于变量的类型来说太小
1497
:
不能使用命名寄存器存储类声明数组
1498
:
const_cast枚举类型是非标准的
1499
:
选项“embedded_c”只能在编译 C 时使用
1500
:
__svc 参数 <entity> 不在 Thumb SVC 指令的允许范围内(0 到 )
1501
:
__svc或__svc_indirect函数的参数过多
1502
:
__svc或__svc_indirect函数的参数必须具有整数类型
1503
:
__svc_indirect函数必须有参数
1504
:
函数的第一个参数必须具有整__svc_indirect类型
1505
:
__svc或__svc_indirect函数的结果必须在整数寄存器中返回
1506
:
源文件<实体>格式不正确
1507
:
写入 <entity> 文件时出错:<reason>
1508
:
不能重载仅由函数限定符区分的函数
1509
:
函数限定符 <entity> 不允许在虚拟成员函数上使用
1510
:
函数“__attribute__((__<entity>__))”存在于覆盖的虚函数<entity>上必须存在于覆盖函数上
1511
:
函数限定符 <entity> 在重写的虚拟函数 <entity> 上不相同
1512
:
函数限定符 <entity> 存在于覆盖的虚函数 <entity> 上必须存在于覆盖函数上
1513
:
此处不允许使用命名地址空间限定符
1514
:
空初始值设定项对于未指定绑定的数组无效
1515
:
函数返回不完整的类类型 <type>
1516
:
<entity> 已初始化;类外初始值设定项将被忽略
1517
:
声明隐藏<实体>
1518
:
不能在命名地址空间中分配参数
1519
:
定点或浮点常量上的后缀无效
1520
:
寄存器变量不能在命名地址空间中分配
1521
:
预期的“SAT”或“默认”
1522
:
<entity>没有相应的成员运算符 delete<entity>(如果在初始化已分配对象期间引发异常,则调用)
1523
:
线程局部变量不能用“dllimport”或“dllexport”声明
1524
:
函数返回类型不能使用命名地址空间进行限定
1525
:
不能为元素具有非平凡析构函数的灵活数组成员指定初始值设定项
1526
:
不能为间接灵活数组成员指定初始值设定项
1527
:
无效的 GNU 版本号:
1528
:
忽略在带括号的初始值设定项之后出现的变量属性
1529
:
此转换的结果不能用作左值
1530
:
否定无符号定点值
1531
:
此时不允许使用此运算符;使用括号
1533
:
寄存器名称只能用于寄存器变量
1534
:
named-register 变量不能具有 void 类型
1536
:
参数不能有链接范围说明符
1537
:
多链接范围说明符
1538
:
链接范围说明符只能出现在具有外部链接的函数和变量上
1539
:
重新声明不能削弱链接范围
1540
:
此声明不允许使用链接范围说明符
1541
:
全局范围声明中的非标准限定名称
1542
:
将 64 位整数类型隐式转换为更小的整数类型(潜在的可移植性问题)
1543
:
将 64 位整数类型显式转换为较小的整数类型(潜在的可移植性问题)
1544
:
从指针转换为相同大小的整数类型(潜在的可移植性问题)
1546
:
类定义中不允许使用友元说明符;忽略友元说明符
1547
:
只有静态变量和外部变量可以使用线程本地存储
1548
:
多个线程本地存储说明符
1549
:
未定义虚拟<实体>(并且无法在其他地方定义,因为它是未命名命名空间的成员)
1550
:
注释或字符/字符串文本之外的源行中的回车符
1551
:
表达式必须具有定点类型
1552
:
访问说明符的无效使用被忽略
1553
:
指针转换为布尔值
1554
:
指向成员的指针转换为 bool
1555
:
存储说明符被忽略
1556
:
在类模板上忽略 DLLEXPORT 和 DLLIMPORT
1557
:
基类 DLLexport/DLLIMPORT 规范与派生类的规范不同
1558
:
重新声明无法将 dllexport/dllimport 添加到 <entity>
如果禁止显示此消息,则行为就像省略了 dllexport
或 dllimport
一样。例如:
void f(void);
__declspec(dllimport) void f(void) { } /* suppress treats asvoid f(void) { } */
1559
:
假定 dllexport/dllimport 与 <entity>od; dllexport 冲突
这表示实体同时标记为 dllimport
和 dllexport
。在这种情况下,编译器假定实体是 dllexport
。
在以下示例中,函数定义 foo(
) 与声明 __declspec(dllimport) void foo()
冲突。在这种情况下,编译器假定 dllexport
。
---test.cpp---
__declspec(dllimport) void foo();
void foo()
{
}
------------
armcc -c test.cpp
"test.cpp", line 3: Warning: #1559-D: dllexport/dllimport conflict with "foo" (declared at line 1); dllexport assumed
fromelf -s test.o
...
# Symbol Name Value Bind Sec Type Vis Size
====================================================================
6 _Z3foov 0x00000000 Gb 1 Code Pr 0x4
...
警告消息和符号可见性表明函数 foo()
是假定为 dllexport
的。
1560
:
无法定义 dllimport 实体
1561
:
DLLexport/DLLIMPORT 需要外部链接
1562
:
用 dllexport/dllimport 声明的类的成员本身不能用这样的说明符声明
1563
:
在具有 DLL 接口的类中使用不带 DLL 接口的类类型的字段
1564
:
括号内的成员声明不规范
1565
:
忽略行拼接中的反斜杠和换行符之间的空格
1566
:
dllexport/dllimport 与 <entity>od; dllimport/dllexport 冲突已删除
1567
:
匿名成员类的无效成员 -- 类<类型>具有不允许的成员函数
1568
:
非标准reinterpret_cast
1569
:
位置格式说明符不能为零
1570
:
局部类无法从封闭函数引用可变长度数组类型
1571
:
成员<实体>已具有显式 dllexport/dllimport 说明符
1572
:
函数返回类型中不允许使用可变长度数组
1573
:
指向类型为 <type> 的成员的指针中不允许使用可变长度数组类型
1574
:
语句表达式的结果不能具有涉及可变长度数组的类型
1575
:
内联汇编程序不支持加载/存储转换。使用嵌入式汇编程序或离线汇编程序
1576
:
内联汇编程序不支持标志设置乘法指令。使用嵌入式汇编程序或离线汇编程序
1577
:
内联汇编程序不支持使用常量操作数设置标志的 MOV/MVN 指令。使用嵌入式汇编程序或离线汇编程序
1578
:
自动变量上忽略 ASM 名称
1579
:无法内联:未知的异常处理代码
1581
:无法优化:此函数禁止循环分析 - 需要最大值作为内部函数
1582
:无法优化:此可变大小专用数组禁止并发
1583
:
不允许写入输出文件。输出抑制
1584
:无法优化:无法转换临时变量
1585
:
与功能相关的错误
1586
:
用户禁用一个循环中的混合数据大小
1587
:无法优化:此行中的数据类型会阻止循环优化
1588
:无法优化:无法转换此循环出口
1589
:
非法数组维度
1590
:无法优化:太大而无法优化 - 减小文件或循环大小
1591
:
非法算术表达式
1592
:
不平衡括号
1593
:无法优化:使用无符号索引会阻止优化
1594
:无法优化:循环参数必须为整数才能进行完全优化
1595
:
内在函数的参数数量非法
1596
:无法优化:函数引用阻止高级循环优化
1597
:
不允许长度为 0 的字符串
1598
:无法优化:从一个循环传递到另一个循环传递的标量值反馈
1599
:无法优化:没有足够的有用工作来优化
1600
:无法优化:无法转换此类型转换
1601
:
不正确的 elseif 语句
1602
:
非法子程序
1603
:
循环嵌套不当
1604
:无法优化:引用此函数会禁止优化
1605
:
语句将行扩展超过缓冲区的大小
1606
:
写入输出文件时出现问题 -- 检查权限
1607
:
数组未声明
1608
:
切换错误 - 关键字不正确
1609
:无法优化:例程对于某些优化来说太大
1610
:
环路没有出口
1611
:
规范语句中的语法非法
1612
:无法优化:潜在的多存储冲突
1613
:无法优化:多存储冲突
1614
:
非法符号
1615
:无法优化:循环迭代之间的潜在反馈
1616
:无法优化:数组元素的反馈
1617
:无法优化:循环太复杂
1618
:无法优化:具有非单位步幅的混合数据类型
1619
:
声明和使用的下标数量不匹配
1620
:内部故障:转换失败。请联系您的供应商
1621
:优化:消除死代码
1622
:
未引用的标签
1623
:
缺少标签
1624
:无法优化:重叠条件过多,无法进行高效翻译
1625
:
未处理条件散射
1627
:无法优化:循环参数太复杂
1628
:无法优化:字符数据类型阻止优化
1629
:无法优化:迭代计数太短,无法进行数组优化
1630
:
缺少>
1631
:
未知语句
1632
:优化:取消了提升标量
1633
:
没有为此符号提供隐式数据类型
1634
:无法优化:分支到循环
1635
:无法优化:循环嵌套太深
1636
:无法优化:变量的复杂使用
1637
:
未知编译指示 - 忽略
1638
:
无法确定临时标量的最后一个值
1639
:
如果可能,使用 nolstval 指令
1640
:无法优化:在不同条件下使用标量会导致反馈
1641
:无法优化:数据依赖关系问题过多
1642
:可能无法优化:由于等效性,可能存在数据依赖性 - 请检查
1643
:优化:推广环绕标量
1644
:
预期的左括号
1645
:
预期的变量名称
1646
:
预期的数组下标
1647
:
预期的右括号
1648
:
预计生产线结束
1649
:
等价错误
1651
:无法优化:此循环中使用的数据类型不可用
1652
:
全局流遍历(前向)失败
1653
:
全局流遍历(向后)失败
1654
:
形式参数可能不等价
1655
:优化:使用运行时单位步幅测试制作的矢量版本
1656
:
编译指示语法中的问题
1657
:
内在函数参数的类型错误
1658
:
硬件不支持 32 位整数乘
法
1659
:无法优化:存储重叠加载 - 无法分析对齐方式
1661
:无法优化:无法优化向后传输
1662
:无法优化:需要提升标量的最后一个值
1663
:无法优化:循环外的分支阻止转换
1665
:优化:消除重复子表达式
1666
:
参数形状不匹配
1667
:
间接寻址已关闭
1668
:优化:阵列去线性化
1669
:
非法函数语句
1670
:优化:if循环转换为for循环
1671
:
找不到输入文件
1672
:无法优化:不支持大于 int 的数据大小
1673
:优化:If 循环转换为 while 循环
1674
:
不允许使用假定的形状、大小、可分配或指针
1675
:无法优化:外循环已使用循环索引
1676
:无法优化:此语句阻止循环优化
1677
: 内部错误:未知的词法处理状态。请联系您的供应商
1678
:无法优化:此循环无法进行矢量化
1679
:优化:循环矢量化
1680
:
共同数组的维数值必须为常数
1681
:
开关输入错误
1682
:无法优化:拆分条件缩减会阻止循环转换
1683
:无法优化:存储到函数中
1684
:
忽略数组上的 & 运算符
1685
:
操作数和运算符不匹配
1686
:无法优化:冒号语法阻止分析
1687
:无法优化:约简函数被抑制 - 需要关联转换
1688
:
已解决不明确的下标问题
1689
:
不支持的操作
1690
:无法优化:显式向量运算不支持的数据类型
1691
:优化:循环与上一个循环融合
1692
:
空 int
1693
:
零大小的物体
1694
:无法优化:循环过大
1695
:非法字符:
1696
:
数组元素的反馈,第 %s1 行发生冲突。(%s2)
1697
:无法优化:此 I/O 语句阻止循环优化
1698
:
回报不可优化
1699
:
停止不可优化
1700
:
不能为常量参数赋值
1701
:优化:使用分支删除
1702
:
已使用但此时未定义的变量
1703
:
未使用此定义
1704
:
此处不允许使用用户功能
1705
:
已使用但从未定义的变量
1706
:
非法声明
1707
:无法优化:分支太复杂,无法在此优化级别进行优化
1708
:无法优化:行太长 - 拆分为更小的行
1709
:无法优化:条件标量阻止优化外部循环
1710
:无法优化:迭代计数中的用户函数引用
1711
:
空循环体
1712
:
内部临时淘汰
1713
:无法优化:外部循环设置内部循环迭代计数
1714
:无法优化:外循环有条件地执行内循环
1715
:无法优化:自动阵列阻止内联扩展
1716
:无法优化:行太长 - 拆分为更小的行
1717
:内部故障:程序转换停止。请联系您的供应商
1718
:无法优化:与循环变量关联的指针会阻止分析
1719
:
自动阵列不能放在公共区域
1720
:无法优化:此语句禁止循环转换
1724
:
用户逻辑指令阻止翻译
1729
:
存储到位宽变量的潜在位溢出
1730
:
沿此循环未执行索引
1731
:无法优化:内部依赖产生外部依赖
1732
:
常量是数字或字符过多
1733
:
在指令中使用但未声明的数组
1734
:
不平衡端
1735
:
缺少 endif(s)
1736
:无法优化:分支到 if 块
1739
:
编译指示后面的多余字符
1740
:
变量已定义但从未使用
1741
:无法优化:潜在反馈(等价)
1742
:无法优化:数组元素的反馈(等价数组)
1743
:无法优化:循环参数在循环中重置
1745
:无法优化:由于指针导致的潜在数据依赖性,如果正常,请使用限制限定符
1746
:
子程序名称不能用作变量
1749
:
函数引用中的参数数量不一致
1750
:优化:循环重新滚动
1751
:可能无法优化:输入包含保留字
1752
:
非法使用 =
1754
:
不处理 Dim 和 mask 参数
1755
:无法优化:无法处理这些向量常量
1756
:无法优化:无法转换此转换函数
1757
:优化:处理此函数所需的关联转换
1759
:无法优化:非单位步幅干扰矢量优化
1760
:
此指令的指定范围无效 - 忽略
1771
:无法优化:挥发性项目阻止分析
1773
:无法优化:生成的表达式太复杂
1774
:
超出优化后允许的最大符号数
1775
:无法优化:GNU 扩展阻止内联
1789
:无法优化:数组维度太小,无法优化
1790
:
无效的参数语句
1791
:
未找到例程的源
1792
:
读取扩展文件时出错
1793
:
扩展例程太大,无法自动扩展
1794
:
解析扩展例程时遇到错误
1795
:
扩展调用时的参数表达式无效
1796
:
参数目录表溢出
1797
:
调用和扩展例程之间的参数不匹配
1798
:无法优化:嵌套级别太深,无法自动扩展
1799
:内部故障:生成的新标签过多。请联系您的供应商
1800
:无法优化:超出了扩展函数的最大数量
1801
:优化:功能扩展
1802
:
在输入文件中找不到函数的源
1803
:无法优化:循环增量为 0
1805
:无法优化:未处理位常量
1807
:无法优化:内联扩展中的表溢出
1808
:
变量仅作为形式参数出现
1809
:
扩展例程中的函数与非函数冲突
1810
:
迭代计数表达式中的溢出
1811
:
赋值语句左侧的参数常数
1812
:
参数数量冲突的函数引用
1813
:
函数定义冲突
1814
:无法优化:代码大小影响优化
1816
:
缺少 if 或大括号
1819
年:
缺少 的结尾
1820
:
这两种数据类型之间无法转换
1821
:
逻辑表达式错误
1822
:无法优化:数据太复杂,无法进行此缩减操作的矢量化
1823
:无法优化:函数作为参数传递
1824
:无法优化:没有足够的向量运算来证明翻译的合理性
1825
:无法优化:无法矢量化复杂条件
1826
:无法优化:并行语法阻止扩展
1828
:
在这种情况下,字符是非法的
1829
:无法优化:字节数据类型不支持矢量化
1831
:优化:常数传播
1832
年:
定义已删除
1833
:
生成函数的声明冲突
1834
:
打开输出文件时出错(权限可能被拒绝)
1835
:
指令放置不当 - 被忽略
1838
:
排列指令的不恰当参数 - 被忽略
1840
年:
算术运算的顺序可能已更改
1841
年:
此循环需要剥离挖掘
1842
:
重复的重新维度声明 - 指令被忽略
1843
:
扩展例程中的重复标签
1844
年:
扩展例程中的标签过多
1845
:
算术表达式减少为非法除以 0
1846
:
整数常数不在允许的范围内
1847
:无法优化:使用指针变量
1849
:
参数必须是非负整数常量或参数
1850
:无法优化:展开参数过大
1853
:无法优化:循环包含太多语句,无法展开
1858
:无法优化:约简标量类型不匹配
1861
:无法优化:此存储到数组中会阻止优化外部循环
1864
:无法优化:没有足够的工作来证明并发优化的合理性
1866
:无法优化:非整数下标
1877
:无法优化:在循环外使用循环索引
1885
:无法优化:循环边界超出数组尺寸
1886
:优化:使用并行截面优化的循环
1887
年:
需要预订
1888
:无法优化:矢量化数据类型不合适
1889
:无法优化:由于程序大小,禁止生成备用代码
1890
:
嵌套大于 9 的命令文件
1891
:
程序语句无效
1892
:无法优化:使用逻辑数组会阻止矢量化
1893
:
-k 选项中的错误 -- 忽略
1894
:优化:为了避免依赖,迭代从循环中剥离
出来
1895
:优化:如果消除,则为冗余
1896
年
:优化:简化逻辑子句
1902
年:
实际参数维度小于临时参数维度
1903
:
参数的数据类型不匹配
1904
:无法优化:标量实际参数传递给临时数组参数
1909
:无法优化:临时数组的宽度与实际数组的宽度不匹配
1910
:无法优化:语句抑制扩展
1911
:无法优化:用作函数引用的子例程
1912
:无法优化:调用语句中使用的函数阻止扩展
1913
年:
指令中的参数列表不正确
1915
:无法优化:Switch 使用字符参数抑制扩展
1916
:无法优化:常量参数抑制内联扩展
1917
:无法优化:常量参数是读取的目标
1918
:无法优化:用户并行指令禁止转换
1919
:无法优化:无法确定字符子字符串长度
1920
:
不允许在 include 语句上使用标签
1921
:
可在定义之前使用
1922
:无法优化:无法确定临时数组和/或实际数组的宽度
1923
:无法优化:如果语句未展开,则算术中的函数
1924
:
实际阵列宽度和临时阵列宽度之间的潜在差异
1925
年:
非法使用未下标的阵列
1926
年:
不能在赋值的左侧有常量或函数
1927
年:
赋值左侧的参数是非法的
1928
年:
作业的左侧有1个以上的操作数
1930
年:
预期等号,忽略行的余数
1931
年:
预期的右括号,假设一个
1932
:无法优化:自动扩展的符号太多
1933
年
:无法优化:传递给 do-loop 索引的数组或常量参数会阻止扩展
1935
年:
指令具有无效或缺失的参数列表
1936
:
预期的正整数 - 无效的参数
1937
:
预期变量 - 参数无效
1938
:
未找到变量
1939
年:
表溢出
1942
:无法优化:没有足够的可矢量化工作来证明翻译的合理性
1945
年
:无法优化:找到内联装配块
1947
:无法优化:无法转换数据类型和操作的这种组合
1948
年
:PGO:热循环;优化默认值被覆盖。
1949
年
:PGO:冷回路;优化被抑制。
1950
年
:PGO:热函数;优化默认值被覆盖。
1951
年
:PGO:冷功能;优化被抑制。
1952
年
:PGO:热回路;不变IF去除完成。
1953
年
:PGO:冷回路;抑制不变的IF去除。
1954
年
:PGO:热循环;默认内联条件被覆盖。
1955
年
:PGO:冷回路;内联抑制。
1956
年
:PGO:热循环;启用展开。
1970
:无法优化:符合性问题
1971
年:
不允许重复开关参数
1972
:无法优化:语句函数包含优化抑制剂
1973
年
:优化:在内部循环之外移动不变
1974
年
:优化:剥离内环,剥离环移出外环
1975
年
:无法优化:存储到缺少下标的数组中会抑制外部循环
1976
年
:无法优化:无法使条件数组符合
1977
年
:无法优化:内循环问题阻止了外循环的优化
1978
:无法优化:无法优化用户选择的循环
1979
:无法优化:此操作禁止循环转换
1980
年
:优化:在外循环之外移动不变
1981
年
:无法优化:不兼容的选项(固定、免费)阻止扩展
1982
年
:无法优化:不兼容的选项(onetrip、noonetrip)阻止扩展
1983
年
:无法优化:不兼容的选项(混合、混合)阻止扩展
1984
年
:无法优化:不兼容的选项(autodbl)阻止扩展
1985
年
:优化:循环切碎(大小)
1986
年
:优化:循环斩断(固有)
1987
年
:优化:循环切换
1988
年
:优化:生成替代代码
1991
年:
数据语句中数据项多于变量
1992
年:
数据语句中的变量多于数据项
1993
年:
参数数量不匹配
1994
年:
参数数据类型不匹配
1995
年:
常量或表达式传递给修改后的变量
1997
年
:优化:展开恒定长度循环
1999
:优化:循环将被拆分,以避免数组之间的缓存冲突
2000
:
声明了局部变量,但从未使用
这篇关于Keil 5 ARMCC编译错误和警告解释大全(2) 序列号1000-2000的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!