Keil 5 ARMCC编译错误和警告解释大全(2) 序列号1000 您所在的位置:网站首页 对象包含与成员函数不兼容的类型限定符 Keil 5 ARMCC编译错误和警告解释大全(2) 序列号1000

Keil 5 ARMCC编译错误和警告解释大全(2) 序列号1000

2024-07-18 05:37| 来源: 网络整理| 查看: 265

 1001:由 using 声明指定的类成员必须在直接基类中可见

1003:Sun 模式与 cfront 模式不兼容

1004:严格模式与 Sun 模式不兼容

1005:只有在编译 C++ 时才允许使用太阳模式

1006: 模板模板参数不能与其模板参数之一同名

1007:默认参数的递归实例化

1009: 不是可以定义的实体

1010:析构函数名称必须是限定的

1011:朋友类名不能用“typename”引入

1012: using-declaration 不能命名构造函数或析构函数

1013:限定的好友模板声明必须引用先前声明的特定模板

1014:类模板声明中的说明符无效

1015:参数与形式参数不兼容

1016:此位置不允许使用 ARM 函数限定符的前缀形式

1017:不允许重复的 ARM 函数限定符

1018:此声明/定义中不允许使用 ARM 函数限定符

ARM 函数限定符的示例包括 __svc、__pure 和 __irq。

请参阅《armcc 用户指南》中的以下内容:

关键字和运算符.

1019:函数限定符 不允许用于非静态成员函数

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 到 0xffffff,对于 Thumb 代码,SVC 编号限制为 0 到 0xFF。

对于标准半托管 SVC,0x123456用于 ARM 代码,0xAB 用于 Thumb 代码。

1026:不允许获取全局寄存器变量的地址

1027:__svc_indirect函数必须有参数

1028:全局注册声明与冲突

1029:__packed 忽略非指针参数

1030: 以前声明时未__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: 编译位置无关时无法动态初始化

1043: 不能是 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:从类 开始的“运算符>”函数序列循环

1046:没有成员类

1047:全局范围没有名为 的类

1048:模板默认参数的递归实例化

1049:访问声明和使用声明不能出现在联合中

1050: 不是类成员

1051:不允许非标准杆件常量声明

1052:选项“ignore_std”只能在编译C++时使用

1053:选项“parse_templates”只能在编译C++时使用

1054:选项“dep_name”不能与“no_parse_templates”一起使用

1055:指定的语言模式不兼容

1056:嵌套类的无效重新声明

1057:不允许包含未知大小数组的类型

1058:不能在内联函数中定义具有静态存储持续时间的变量

1059: 具有内部链接的实体不能在具有外部链接的内联函数中引用

1060: 参数类型 与此类型泛型函数宏不匹配

1062:好友声明不能在上一个声明中添加默认参数

1063:不能在此范围内声明

1064:保留标识符只能在函数内部使用

1065:此通用字符不能以标识符开头

1066:应为字符串文本

1067:无法识别的 STDC 编译指示

1068:预期的“开”、“关”或“默认”

1069:STDC 编译指示只能出现在全局作用域中的声明之间,或块作用域中的任何语句或声明之前

1070:不正确地使用va_copy

1071: 只能与浮点类型一起使用

1072:不允许使用复杂类型

1073:无效的指示符类型

1074: 浮点值无法准确表示

1075:复数浮点运算结果超出范围

1076:实数和虚数之间的转换结果为零

1077: 不能为灵活数组成员指定初始值设定项

1078:imaginary *= imaginary 将左操作数设置为零

1079:standard 要求通过后续声明(假定为“int”)为指定类型

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:基类 是

1124:基类 不是

1125: 没有成员函数

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: 已在编译

1186:已在另一个翻译单元中定义

1187:非静态局部变量不能在__based规范中使用

1188:编译多于一个翻译单元时,未必指定列出 makefile 依赖项的选项

1190:编译多于一个翻译单元时,不得指定生成预处理输出的选项

1191: 不能在具有用户声明构造函数的类中声明与其类同名的字段

1192:“implicit_include”不能在编译多于一个翻译单元时使用

1193:导出的模板文件已损坏

1194: 无法实例化 -- 它已显式专用于包含导出定义的翻译单元

1196: 对象具有与成员

1197:没有 实例与参数列表和对象匹配(该对象具有阻止匹配的类型限定符)

1198:属性指定与

1199:没有指定宽度的类型

1200:属性指定的对齐值无效

1201:  的属性无效

1202:

1204:属性不带参数

1206:需要属性名称

1207:未知属性

1208:此处可能不会显示属性

1209:属性 的参数无效

1211:在“goto *expr”中,expr 必须具有“void *”类型

1212:“goto *expr”不标准

1213:获取标签地址不规范

1214:多次指定文件名:

1215:#warning 指令:

1217:“transparent_union”属性只适用于联合,不是联合

1218: “transparent_union”属性在不完整的类型上被忽略

1219: 不能透明,因为 的大小与第一个字段的大小不同

1220: 不能是透明的,因为它有一个类型为 的字段,该字段的大小与第一个字段的大小不同

1222:属性不适用于局部变量

1224:函数定义中不允许使用属性

1226:大小写范围中的第二个常量必须大于第一个常量

1227:函数定义中不允许使用 ASM 名称

1228:在 typedef 中忽略 ASM 名称

1229:未知注册名称“”

1230:修饰符字母“在 ASM 操作数中被忽略

1231:未知的 ASM 约束修饰符“”

1232:未知的 ASM 约束字母“”

1233:ASM 操作数没有约束字母

1234:ASM 输出操作数必须具有“=”或“+”修饰符之一

1235:ASM 输入操作数可能没有“=”或“+”修饰符

1237:ASM 语句中的冒号过多

1238:注册“”多次使用

1239:寄存器“”既被使用又被破坏

1240:注册“”不止一次被破坏

1241:注册“”具有固定用途,不得在ASM声明中使用

1242:寄存器“”有固定用途,不得在ASM声明中删减

1243:必须完全省略空的 clobbers 列表

1244:预期有 ASM 操作数

1245:期待寄存器敲击

1246:“format”属性需要省略号参数

1247:第一个替换参数不是第一个变量参数

1248:格式参数索引大于参数数

1249:format 参数没有字符串类型

1250:用于消除句法歧义的“template”关键字只能在模板中使用

1253:属性不适用于非函数类型

1254:指向 void 或函数类型的指针上的算术运算

1255:存储类必须是自动或寄存器

1256: 在通过省略号参数传递时,将提升为 ;请改用后一种类型

1257: 不是基类成员

1258:__super不能出现在 \“::\” 之后

1259:__super 只能在类范围内使用

1260:__super 后面必须跟 \“::\”

1262:残缺的名字太长了

1263:偏移量必须与半字对齐

1264:偏移量必须双字对齐

1265:不允许使用 --fpu=none 与浮点类型相互转换

1266:操作数应为常量表达式

1267:隐式物理寄存器应定义为变量

1268:声明别名为未定义的实体

1269:声明与其别名 不匹配

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:弃用声明 - 给出 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: 头文件由“”保护,但不 #define 它

例:

#ifndef MYHEADER_H //#define MYHEADER_H #endif

若要更正代码,请删除注释斜杠 (//)。默认情况下,此警告处于关闭状态。可以通过以下方式启用它:

--diag_warning 1298

1299:成员和基类将按声明顺序初始化,而不是按成员初始化列表顺序初始化

1300: 继承隐式虚拟

当派生类的非虚拟成员函数隐藏父类的虚拟成员时,会发出此警告。例如:

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: 指定的块大小超出了

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:fd 的原型声明在重新声明后被忽略

1338:pd 必须具有外部 C 链接

1339:变量声明隐藏 for-initializer 中的声明

1340:typedef 不能用于详细说明的类型说明符

1341:忽略零常量的调用

1342:参数不能在函数 try 块的 catch 子句中重新声明

1343:必须在包含模板的命名空间中声明的初始显式专用化

1344:\“cc\” clobber 被忽略

1345:“template”后面必须跟一个标识符

1346:在此上下文中不允许使用 MYTHREAD

1347:布局限定符无法限定指向共享的指针

1348:布局限定符无法限定不完整的数组

1349:声明隐藏处理程序参数

1350:忽略非标准强制转换为数组类型

1351:此编译指示不能在_Pragma运算符中使用(必须使用 #pragma 指令)

1352:字段使用基类的尾部填充

1353:GNU C++ 编译器可能使用位字段填充

1355: 抽象类 具有非虚拟析构函数,在指向此类的指针上调用 delete 是未定义的行为

1356:非静态成员声明中不允许使用 ASM 名称

1357:使用 的地址静态初始化 可能会导致链路失败 -ropi

请参阅错误编号 1359。

1358:对于 ROPI,不能降低使用 地址的外部常量 的静态初始化

1359: 使用地址对进行静态初始化可能会导致链路故障 -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,不能降低使用地址的外部常量的静态初始化

例如,当使用 --apcs /rwpi 编译时:

extern int y; int* const x = &y; int* foo() { return(x); }

生成警告,因为 Y 前面加上 extern 会阻止编译器在变量 x 和 y 之间定义直接地址偏移。

1361: 被宣布为“已弃用”

1362:忽略无法识别的格式函数类型

1363:基类 使用基类 的尾部填充

1364:“init_priority\”属性只能用于定义类类型的静态数据成员和命名空间范围变量

1365:请求的初始化优先级保留供内部使用

1366:这个匿名的联合/结构字段被

1367:无效的错误号

1368:无效的错误标记

1369:应为错误号或错误标记

1370:类的大小受尾部填充的影响

1371:标签只能在函数定义中引用

1372:不允许将控制权转移到语句表达式中

1374:此语句不允许在语句表达式中

1375:语句表达式中不允许使用非 POD 类定义

1376:语句表达式中不允许存在可破坏的实体

1377:语句表达式中不允许使用动态初始化的局部静态变量

1378:语句表达式中不允许有可变长度的数组

1379:默认参数中不允许使用语句表达式

1381: 结果操作数的类型比实际结果窄

1382:指向函数的指针和指向数据的指针之间的非标准转换

1383:接口类型不能有虚拟基类

1384: 接口类型不能指定“私有”或“受保护”

1385:接口类型只能派生自其他接口类型

1386: 是接口类型

1387:接口类型不能有 typedef 成员

1388: 接口类型不能有用户声明的构造函数或析构函数

1389:接口类型不能有用户声明的成员算子

1390:不能在函数中声明接口类型

1392:接口类型不能有数据成员

1393:接口类型不能包含友元声明

1395:接口类型不能是嵌套类类型

1396:接口类型不能有成员模板

1397:接口类型不能有静态成员函数

1398:此编译指示不能在__pragma运算符中使用(必须使用 #pragma 指令)

1399:限定符必须是

1400:声明必须对应于指定基类中的纯虚拟成员函数

1401:由于

1402:内部计算中的整数溢出

1403:__w64 只能在 int、long 和指针类型上指定

1404:在 int、long 或指针类型宽度为 64 位的环境中编译时,可能会缩小转换范围

1405:编译指示包的当前值为

1406:忽略 pragma pack(show) 的参数

1409:忽略较早的 __declspec(align(...))

1410:应为 属性参数的参数值

1411:  属性参数的参数值无效

1412:应为 属性参数的布尔值

1413: 位置参数不能跟在属性中的命名参数后面

1414:属性没有名为 的参数

1415:预期为 属性的参数列表

1416:应为“,”或“]”

1417:属性参数 已被赋予值

1418:无法将值分配给 属性

1419: 抛出表达式可能没有指向不完整类型的指针

1420:应用于不完整类型的对齐运算符

1421:只能用作独立属性

此处不能使用 1422: 属性

1424:此处不允许使用属性

1425: 属性参数的参数值无效

1426:属性参数过多

1427:不允许从不可访问的基类转换

1428:“导出”选项需要不同的模板签名

1429:具有不同字符类型的字符串文字不能连接

1430: GNU 布局错误未被模拟,因为它将虚拟基础 置于 对象边界之外

1431:虚拟基础放置在对象边界之外

1432:命名空间成员声明中的非标准限定名称

1433:忽略对齐减少

1434:忽略 const 限定符

1436:__breakpoint 参数必须是整数编译时常量

1437:__breakpoint 编译 ARM 时,参数必须在 0-65535 之间

1438:__breakpoint 编译 Thumb 时,参数必须在 0-255 之间

1439:目标体系结构/处理器不支持 BKPT 指令

1440:超大位域布局将更改 -- 请考虑以“: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:声明一个非模板函数 -- 添加以引用模板实例

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: 行的预定义宏条目无效:

1493: 无效的宏模式名称

1494:预定义宏的不兼容重定义

1495:重新声明缺少命名寄存器存储类

1496:命名寄存器对于变量的类型来说太小

1497:不能使用命名寄存器存储类声明数组

1498:const_cast枚举类型是非标准的

1499:选项“embedded_c”只能在编译 C 时使用

1500:__svc 参数 不在 Thumb SVC 指令的允许范围内(0 到 )

1501:__svc或__svc_indirect函数的参数过多

1502:__svc或__svc_indirect函数的参数必须具有整数类型

1503:__svc_indirect函数必须有参数

1504:函数的第一个参数必须具有整__svc_indirect类型

1505:__svc或__svc_indirect函数的结果必须在整数寄存器中返回

1506:源文件格式不正确

1507:写入 文件时出错:

1508:不能重载仅由函数限定符区分的函数

1509:函数限定符 不允许在虚拟成员函数上使用

1510:函数“__attribute__((____))”存在于覆盖的虚函数上必须存在于覆盖函数上

1511:函数限定符 在重写的虚拟函数 上不相同

1512:函数限定符 存在于覆盖的虚函数 上必须存在于覆盖函数上

1513:此处不允许使用命名地址空间限定符

1514: 空初始值设定项对于未指定绑定的数组无效

1515:函数返回不完整的类类型

1516: 已初始化;类外初始值设定项将被忽略

1517:声明隐藏

1518: 不能在命名地址空间中分配参数

1519:定点或浮点常量上的后缀无效

1520: 寄存器变量不能在命名地址空间中分配

1521:预期的“SAT”或“默认”

1522:没有相应的成员运算符 delete(如果在初始化已分配对象期间引发异常,则调用)

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 添加到

如果禁止显示此消息,则行为就像省略了 dllexport 或 dllimport 一样。例如:

void f(void); __declspec(dllimport) void f(void) { } /* suppress treats as void f(void) { } */

1559:假定 dllexport/dllimport 与 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 与 od; dllimport/dllexport 冲突已删除

1567: 匿名成员类的无效成员 -- 类具有不允许的成员函数

1568:非标准reinterpret_cast

1569:位置格式说明符不能为零

1570: 局部类无法从封闭函数引用可变长度数组类型

1571:成员已具有显式 dllexport/dllimport 说明符

1572: 函数返回类型中不允许使用可变长度数组

1573:指向类型为 的成员的指针中不允许使用可变长度数组类型

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:声明了局部变量,但从未使用 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有