-
Notifications
You must be signed in to change notification settings - Fork 335
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compile error: error: left shift of negative value #6
Comments
Thanks for digging a little. Does this patch fix it:
|
This is also sifive/freedom-e-sdk#10 |
timsifive
added a commit
that referenced
this issue
Dec 2, 2016
Change-Id: If890a6d62fdd55befb9057f83726f60721ac8078
Please close this issue if it works for you now. |
Thanks, that indeed fixed the issue :) |
timsifive
pushed a commit
that referenced
this issue
Apr 9, 2018
…oo far Without this, we have some types promoted to `int` when they need to be `unsigned int`. Here's some ubsan output hitting this: Unfortunately, what happens is that things get promoted to `int`, but need to be `unsigned int`. Here's the ubsan output: src/helper/types.h:126:65: runtime error: left shift of 255 by 24 places cannot be represented in type 'int' #0 0x55978a612060 in le_to_h_u32 src/helper/types.h:126 #1 0x55978a61ff9e in stlink_usb_read_reg src/jtag/drivers/stlink_usb.c:1539 #2 0x55978a8cfd45 in adapter_load_core_reg_u32 src/target/hla_target.c:67 #3 0x55978a9f48e3 in armv7m_read_core_reg src/target/armv7m.c:236 #4 0x55978a8d24fc in adapter_load_context src/target/hla_target.c:372 #5 0x55978a8d261b in adapter_debug_entry src/target/hla_target.c:396 #6 0x55978a8d3123 in adapter_poll src/target/hla_target.c:457 #7 0x55978a528357 in target_poll src/target/target.c:535 #8 0x55978a539fd4 in target_wait_state src/target/target.c:2914 #9 0x55978a556e20 in jim_target_wait_state src/target/target.c:5256 #10 0x55978a5cca62 in command_unknown src/helper/command.c:1030 #11 0x55978aaed894 in JimInvokeCommand /home/cody/d/openocd-code/jimtcl/jim.c:10364 Change-Id: I24f6abfd26b6980100657397d69c84f2b80a005a Signed-off-by: Cody P Schafer <[email protected]> Reviewed-on: http://openocd.zylin.com/4455 Reviewed-by: Tomas Vanek <[email protected]> Tested-by: jenkins Reviewed-by: Christopher Head <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hello,
I got the following error when compiling the openocd tools:
In file included from /home/rik/Documents/freedom-e-sdk/openocd/src/target/riscv/riscv.c:11:0: /home/rik/Documents/freedom-e-sdk/openocd/src/target/riscv/riscv.c: In function ‘riscv_examine’: /home/rik/Documents/freedom-e-sdk/openocd/src/target/riscv/riscv.c:24:69: error: left shift of negative value [-Werror=shift-negative-value] #define get_field(reg, mask) (((reg) & (mask)) / ((mask) & ~((mask) << (1)))) ^ /home/rik/Documents/freedom-e-sdk/openocd/src/helper/log.h:108:5: note: in definition of macro ‘LOG_DEBUG’ expr); \ ^~~~ /home/rik/Documents/freedom-e-sdk/openocd/src/target/riscv/riscv.c:1727:31: note: in expansion of macro ‘get_field’ LOG_DEBUG(" abussize=0x%x", get_field(dminfo, DMINFO_ABUSSIZE));
I had a look and found out it is being caused by the following line:
LOG_DEBUG(" abussize=0x%x", get_field(dminfo, DMINFO_ABUSSIZE));
More specific:
#define DMINFO_ABUSSIZE (0x7f<<25)
If I comment the LOG_DEBUG line it compiles fine.
The text was updated successfully, but these errors were encountered: