我想加两个int
数字。如果溢出,抛出异常。当我抛出异常时,代码无法编译。但如果我不写其他代码,也没关系。
#include <iostream>
#include <stdexcept>
int main()
{
int a,b;
std::cin >> a >> b;
asm("movl %0, %%eax;\n\t"
"addl %1, %%eax\n\t"
"jno _L_NO_OVERFLOW_\n\t;"
:
:"m"(a),"m"(b)
:"%eax");
throw std::overflow_error("overflow");
//std::cout << "overflow" << std::endl;//it's OK
asm("_L_NO_OVERFLOW_:\n\t"
"movl %%eax, %0\n\t"
:"=m"(a));
std::cout << a << std::endl;
return 0;
}
错误信息是undefined reference to L_NO_OVERFLOW_